rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
vi_reduced_data_subset.m
1 function reduced_data_subset = vi_reduced_data_subset(model,reduced_data)
2 %function reduced_data_subset = vi_reduced_data_subset(model,reduced_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 % B. Haasdonk 29.09.2011
14 
15 reduced_data_subset = reduced_data;
16 
17 if reduced_data.N ~= model.N
18  % extract correct N-sized submatrices and subvectors from reduced_data
19  if model.N > length(reduced_data.AN_comp{1})
20  error('N too large for current size of reduced basis!');
21  end;
22  N = model.N;
23  if isfield(reduced_data, 'AN_comp')
24  reduced_data_subset.AN_comp = subblock_sequence(reduced_data.AN_comp,1:N,1:N);
25  end
26  if isfield(reduced_data, 'fN_comp')
27  reduced_data_subset.fN_comp = subblock_sequence(reduced_data.fN_comp,1:N);
28  end
29  if isfield(reduced_data, 'gN_comp')
30 % reduced_data_subset.gN_comp = subblock_sequence(reduced_data.gN_comp,1:N);
31  reduced_data_subset.gN_comp = reduced_data.gN_comp;
32  end
33  if isfield(reduced_data, 'BN')
34  reduced_data_subset.BN = reduced_data.BN(1:N,:);
35  end
36 
37  reduced_data_subset.N = N;
38 
39 end