rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
EiTpart.m
1 classdef EiTpart < Greedy.Interface
2  properties (SetAccess=private, Dependent)
3  generated_basis_type;
4  end
5 
6  properties (Access = private)
7  data_injection_path = [];
8  end
9 
10  properties (Access = private)
11  child;
12  tpart_map;
13  end
14 
15  methods
16  function eitpbg = EiTpart(child_basis_generation)
17  eitpbg = eitpbg@Greedy.Interface(child_basis_generation.model);
18  eitpbg.child = child_basis_generation;
19  eitpbg.tpart_map = [0 child_basis_generation.model.T];
20  end
21 
22  function set_trainingsset(this, paramset)
23  set_trainingsset(this.child, paramset);
24  end
25 
26  function update_trainingsset(this, paramset)
27  update_trainingsset(this.child, paramset);
28  end
29 
30  function set_validation_generator(this, val_gen)
31  set_validation_generator(this.child, val_gen);
32  end
33 
34  function prepare(this, model_data)
35  prepare(this.child, model_data);
36  end
37 
38  function detailed_data = gen_detailed_data(this, detailed_data)
39  end
40 
41  function detailed_data = init_basis(this, model_data)
42  detailed_data = init_basis(this.child, model_data);
43  detailed_data = inject_tpart_into_detailed_data(this, detailed_data);
44  injected_ei_dd = get_injected_detailed_data(this, detailed_data);
45  end
46 
47  end
48  methods (Access = private)
49  function detailed_data = inject_tpart_into_detailed_data(this, detailed_data)
50  ei_child = detailed_data;
51  if isempty(this.injection_path)
52  while true
53  if length(ei_child) > 1
54  error('%s\n',...
55  'EiTpart is not allows to be used on top of another',...
56  'basis generation algorithm paritioning the EI bases.');
57  elseif isequal(this.child.generated_basis_type, 'ei')
58  break;
59  elseif isequal(this.child.generated_basis_type, 'eirb')
60  if isa(ei_child, 'Greedy.DataTree.Detailed.PODEILeafNode')
61  ei_child = ei_child.ei;
62  else
63  ei_child = get(ei_child, 1);
64  this.injection_path = [this.injection_path, 1];
65  end
66  elseif isequal(this.child.generated_basis_type, 'rb')
67  error('%s\n',...
68  'You tried to use EiTpart on top of a basis generation', ...
69  'algorithm producing no empirical interpolation basis');
70  end
71  end
72 
73  injected_dd_ei = Greedy.DataTree.Detailed.TpartNode(ei_child, tpart_map);
74 
75 
76  end
77  end
78  end
79 end
Interface class for all kind of reduced basis generation algorithms
Definition: Interface.m:18
Customizable implementation of an abstract greedy algorithm.
Definition: DuneRBLeafNode.m:1