1 function rb_sim_data = rb_reconstruction_dictionary(model, RB_dict,rb_sim_data)%dict_extracted_reduced_data , rb_sim_data)
2 %
function rb_sim_data = rb_reconstruction_dictionary(model_data, detailed_data, rb_sim_data)
4 %
function computing a detailed reconstruction by linear
5 % combination of the coefficients in the simulation data with the
6 % reduced basis vector extracted from the dicitonary.
7 % The sensitivity derivative solution is also reconstructed. Either
using
8 % the common reduced basis or separte derivative information reduced bases.
10 % Required fields of RB_dict:
11 % Phi: The dictionary reduced basis
13 % Optional fields of RB_dict:
14 % Phi_der: The basis
for derivative information in the dictionary
16 % Required fileds in dict_extracted_reduced_data:
17 % extraction_vector: Vector containing the indices of elements extracted
20 % Required fields of rb_sim_data:
21 % a: The coefficient vector from rb_simulation.
24 % Markus Dihlmann 30.10.2011
26 RB = [RB_dict.init_base,RB_dict.Phi];
27 RB = RB(:,rb_sim_data.extraction_vector);
28 rb_sim_data.U = RB * rb_sim_data.a;
30 if model.compute_derivative_info
31 if ~isfield(RB_dict,
'Phi_der')
32 for i = 1:size(rb_sim_data.c,3)
33 rb_sim_data.U_der(:,:,i) = RB* rb_sim_data.c(:,:,i);
36 indx_mu=find(model.optimization.params_to_optimize);
37 for i = 1:sum(model.optimization.params_to_optimize)
38 RB_der = [RB_dict.init_base, RB_dict.Phi_der{indx_mu(i)}];
39 rb_sim_data.U_der(:,:,i) = RB_der(:,dict_extracted_reduced_data.extraction_vector) * rb_sim_data.c{i}(:,:);
45 v = model.operators_output(model,RB_dict);
46 rb_sim_data.output = (v(:)
') * rb_sim_data.U;
47 if model.compute_derivative_info
48 for i=1:size(rb_sim_data.U_der,3)
49 rb_sim_data.output_derivative(:,i) = (v(:)') * rb_sim_data.U_der(:,:,i);