rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
vi_gen_reduced_data.m
1 function reduced_data = vi_gen_reduced_data(model,detailed_data)
2 %function reduced_data = vi_gen_reduced_data(model,detailed_data)
3 %
4 % function generating all parameter independent reduced data for
5 % the RB-Method for Parametrized Variational Inequalities.
6 %
7 % Generated fields of reduced_data:
8 % AN_comp: components of matrix AN
9 % fN_comp: components of vector fN
10 % gN_comp: components of vector gN
11 % BN: this matrix needs no decomposition
12 
13 % I.Maier 31.05.2011
14 
15 reduced_data = [];
16 
17 % due to lack of full offline-online for error estimator, large
18 % data is required...
19 if model.enable_error_estimator
20  reduced_data = detailed_data;
21 % reduced_data.X = detailed_data.X;
22 % reduced_data.dx = detailed_data.dx;
23 % reduced_data.RB_U = detailed_data.RB_U;
24 % reduced_data.RB_L = detailed_data.RB_L;
25 end;
26 
27 model.decomp_mode = 1;
28 
29 [A_comp,B,f_comp,g_comp] = model.operators(model,detailed_data);
30 
31 Q_A = length(A_comp);
32 Q_f = length(f_comp);
33 Q_g = length(g_comp);
34 
35 reduced_data.AN_comp = cell(1,Q_A);
36 for q = 1:Q_A
37  AN_comp_q = detailed_data.RB_U' * A_comp{q} * ...
38  detailed_data.RB_U;
39  % symmetrize
40  reduced_data.AN_comp{q} = 0.5*(AN_comp_q + AN_comp_q');
41 end;
42 
43 reduced_data.fN_comp = cell(1,Q_f);
44 for q = 1:Q_f
45  reduced_data.fN_comp{q} = detailed_data.RB_U' * f_comp{q};
46 end;
47 
48 reduced_data.BN = detailed_data.RB_U' * B * detailed_data.RB_L;
49 
50 reduced_data.gN_comp = cell(1,Q_g);
51 for q = 1:Q_g
52  reduced_data.gN_comp{q} = detailed_data.RB_L' * g_comp{q};
53 end;
54 
55 reduced_data.N = size(detailed_data.RB_U,2);
56