rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
stokes_infsup_rbf_interpolant.m
1 function [infsup, varargout] = stokes_infsup_rbf_interpolant(model, model_data)
2 %function [infsup, varargout] = stokes_infsup_rbf_interpolant(model, model_data)
3 %
4 
5 varargout = cell(1, nargout-1);
6 
7 if isfield(model, 'RB_infsup_interpol_method')
8  method = model.RB_infsup_interpol_method;
9 elseif isfield(model, 'descr') && isfield(model.descr, 'RB_infsup_interpol_method')
10  method = model.descr.RB_infsup_interpol_method;
11 else
12  % default
13  method = 'adaptive_cgrid';
14 end
15 
16 switch method
17  case 'adaptive_cgrid'
18  %infsup = stokes_infsup_adaptive_cgrid(model, model_data);
19  params = model;
20  params.range = model.mu_ranges;
21  for i = 1:length(params.range)
22  params.range{i} = [0 1];
23  end
24  func = @(mu) infsup_func(mu, model, model_data);
25  [infsup, varargout{:}] = cubegrid_interp_greedy(func, params);
26  case 'greedy_ccriterion'
27  infsup = stokes_infsup_greedy_ccriterion(model, model_data);
28  otherwise
29  error('stokes_infsup_rbf_interpolation:method unknown.');
30 end
31 
32 end
33 
34 function res = infsup_func(mu, model, model_data)
35 for i = 1:length(mu)
36  mu(i) = model.mu_ranges{i}(1) + (model.mu_ranges{i}(2)-model.mu_ranges{i}(1))*mu(i);
37 end
38 model = set_mu(model, mu);
39 res = model.infsup_constant(model, model_data);
40 end
function [ interp_func , varargout ] = cubegrid_interp_greedy(func, params)
method determining interpolation points for rbf (radial basis function) interpolation of a given func...