rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
lin_evol_opt_gen_reduced_data_separate_bases.m
1 function reduced_data = lin_evol_opt_gen_reduced_data_separate_bases(model,detailed_data)
2 %function reduced_data = lin_evol_opt_gen_reduced_data_separate_bases(model,detailed_data)
3 %
4 % method which produces reduced_data, which is the data, that will be passed to
5 % an online-algorithm. Therefore, no quantities dependent on the high-dimension
6 % H may be included here. Neither may online-data include parameter-dependent
7 % mu-quantities. So no complete grid or detailed solutions or reduced basis
8 % vectors may be stored here. So online data is produced in the offline stage,
9 % but may be used in online-stages. So the computation time may depend on H,
10 % but the results may not depend on this complexity.
11 %
12 % allowed dependency of generated data: Nmax
13 % not allowed dependency of data: H
14 % allowed dependency of computation: Nmax, H
15 % Unknown at this stage: mu, N
16 %
17 % This reduced_data generation function is suited for the use with separate
18 % bases in sensitivity derivative calculation.
19 %
20 % optional fields of model:
21 % compute_derivative_info = 0 if derivative information is not needed
22 % = 1 if derivative information is needed
23 
24 % Markus Dihlmann 30.03.2011
25 
26 if ~isfield(model,'compute_derivative_info')
27  model.compute_derivative_info=1;
28 end
29 
30 if ~isfield(model,'t')
31  model.t=0;
32 end
33 
34 model.decomp_mode = 1;
35 if model.compute_derivative_info
36  [reduced_data.a0, reduced_data.c0] = rb_init_values(model, detailed_data);%lin_evol_opt_rb_init_values_separate_bases(model, detailed_data);
37 else
38  reduced_data.a0 = rb_init_values(model, detailed_data);
39 end
40 
41 if model.compute_derivative_info
42  [reduced_data.LL_I, reduced_data.LL_E, reduced_data.bb, ...
43  reduced_data.M_E, reduced_data.M_b, ...
44  reduced_data.M_EE, reduced_data.M_Eb, reduced_data.M_bb, ...
45  reduced_data.M_I, reduced_data.M_II, reduced_data.M_IE, reduced_data.M_Ib, ...
46  reduced_data.L_E_dd, reduced_data.L_I_dd, reduced_data.dL_E_sd, reduced_data.dL_I_sd, reduced_data.db,...
47  reduced_data.K_E, reduced_data.K_I, reduced_data.K_EE, reduced_data.K_II, reduced_data.K_IE,...
48  reduced_data.K_EdEd, reduced_data.K_IdId, reduced_data.K_bdbd, ...
49  reduced_data.K_Ed, reduced_data.K_Id, reduced_data.K_bd, reduced_data.K_IEd, ...
50  reduced_data.K_IId, reduced_data.K_Ibd, reduced_data.K_EEd, reduced_data.K_EId, ...
51  reduced_data.K_Ebd, reduced_data.K_EdId, reduced_data.K_Edbd, ...
52  reduced_data.K_Idbd] = rb_operators(model, detailed_data);
53 else
54  [reduced_data.LL_I, reduced_data.LL_E, reduced_data.bb, ...
55  reduced_data.M_E, reduced_data.M_b, ...
56  reduced_data.M_EE, reduced_data.M_Eb, reduced_data.M_bb, ...
57  reduced_data.M_I, reduced_data.M_II, reduced_data.M_IE, reduced_data.M_Ib] ...
58  = rb_operators(model, detailed_data);
59 end
60 
61 
62 
63 if isfield(model,'name_output_functional')
64  reduced_data = rb_output_functional_prep(model,reduced_data,detailed_data);
65 end;
66 
67 reduced_data.N = model.get_rb_size(model,detailed_data);
68 
69 
70