rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
rb_reconstruction_derivative.m
1 function rb_sim_data = rb_reconstruction_derivative(model, detailed_data, rb_sim_data)
2 %function rb_sim_data = rb_reconstruction_default(model_data, detailed_data, rb_sim_data)
3 %
4 % function computing a detailed reconstruction by linear
5 % combination of the coefficients in the simulation data with the
6 % orthonormal reduced basis RB
7 % The sensitivity derivative solution is also reconstructed. Either using
8 % the common reduced basis or separte derivative information reduced bases.
9 
10 % Markus Dihlmann 24.06.2010
11 
12 rb_sim_data.U = detailed_data.RB(:,1:size(rb_sim_data.a,1)) * rb_sim_data.a;
13 
14 if model.compute_derivative_info
15  if ~isfield(detailed_data,'RB_der')
16  for i = 1:size(rb_sim_data.c,3)
17  rb_sim_data.U_der(:,:,i) = detailed_data.RB(:,1:size(rb_sim_data.a,1)) * rb_sim_data.c(:,:,i);
18  end
19  else
20  indx_mu=find(model.optimization.params_to_optimize);
21  for i = 1:sum(model.optimization.params_to_optimize)
22  rb_sim_data.U_der(:,:,i) = detailed_data.RB_der{indx_mu(i)}(:,1:size(rb_sim_data.c{i},1)) * rb_sim_data.c{i}(:,:);
23  end
24  end
25 end
26 %calculate output
27 model.decomp_mode=0;
28 v = model.operators_output(model,detailed_data);
29  rb_sim_data.output = (v(:)') * rb_sim_data.U;
30  if model.compute_derivative_info
31  for i=1:size(rb_sim_data.U_der,3)
32  rb_sim_data.output_derivative(:,i) = (v(:)') * rb_sim_data.U_der(:,:,i);
33  end
34  end
35 
36 %| \docupdate
function rb_sim_data = rb_reconstruction_default(model, detailed_data, rb_sim_data)
(trivial) function computing a detailed reconstruction by linear combination of the coefficients in t...