rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
lin_evol_opt_gen_reduced_data.m
1 function reduced_data = lin_evol_opt_gen_reduced_data(model,detailed_data)
2 %function reduced_data = lin_evol_opt_gen_reduced_data(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 % optional fields of model:
18 % compute_derivative_info = 0 if derivative information is not needed
19 % = 1 if derivative information is needed
20 
21 % Markus Dihlmann 10.06.2010, Oliver Zeeb 14.10.10
22 
23 if ~isfield(model,'compute_derivative_info')
24  model.compute_derivative_info=1;
25 end
26 
27 model.decomp_mode = 1;
28 reduced_data.a0 = rb_init_values(model, detailed_data);
29 
30 % assuming that components do not change in time, so wlg t = 0!!!
31 %model = set_time(model,0);
32 
33 % OLI 10.11.10 IF ANWEISUNG NEU!!!
34 if model.compute_derivative_info
35  [reduced_data.LL_I, reduced_data.LL_E, reduced_data.bb, ...
36  reduced_data.M_E, reduced_data.M_b, ...
37  reduced_data.M_EE, reduced_data.M_Eb, reduced_data.M_bb, ...
38  reduced_data.M_I, reduced_data.M_II, reduced_data.M_IE, reduced_data.M_Ib, ...
39  reduced_data.M_EdEd, reduced_data.M_IdId, reduced_data.M_bdbd, ...
40  reduced_data.M_Ed, reduced_data.M_Id, reduced_data.M_bd, reduced_data.M_IEd, ...
41  reduced_data.M_IId, reduced_data.M_Ibd, reduced_data.M_EEd, reduced_data.M_EId, ...
42  reduced_data.M_Ebd, reduced_data.M_EdId, reduced_data.M_Edbd, ...
43  reduced_data.M_Idbd] = rb_operators(model, detailed_data);
44 else
45  [reduced_data.LL_I, reduced_data.LL_E, reduced_data.bb, ...
46  reduced_data.M_E, reduced_data.M_b, ...
47  reduced_data.M_EE, reduced_data.M_Eb, reduced_data.M_bb, ...
48  reduced_data.M_I, reduced_data.M_II, reduced_data.M_IE, reduced_data.M_Ib] ...
49  = rb_operators(model, detailed_data);
50 end
51 
52 %original, 10.11.10:
53 % [reduced_data.LL_I, reduced_data.LL_E, reduced_data.bb, ...
54 % reduced_data.M_E, reduced_data.M_b, ...
55 % reduced_data.M_EE, reduced_data.M_Eb, reduced_data.M_bb, ...
56 % reduced_data.M_I, reduced_data.M_II, reduced_data.M_IE, reduced_data.M_Ib, ...
57 % reduced_data.M_EdEd, reduced_data.M_IdId, reduced_data.M_bdbd, ...
58 % reduced_data.M_Ed, reduced_data.M_Id, reduced_data.M_bd, reduced_data.M_IEd, ...
59 % reduced_data.M_IId, reduced_data.M_Ibd, reduced_data.M_EEd, reduced_data.M_EId, ...
60 % reduced_data.M_Ebd, reduced_data.M_EdId, reduced_data.M_Edbd, ...
61 % reduced_data.M_Idbd] = rb_operators(model, detailed_data);
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 %| \docupdate