rbmatlab  1.13.10
 All Classes Namespaces Files Functions Variables Groups Pages
ICreator.m
1 classdef ICreator < handle
2  % interface for a class used to create a new (sub-)tree from an old one with the
3  % DataTree.INode.create_tree() method.
4  %
5  % @section data_tree_creator_restriction Sub-tree definition
6  %
7  % The copied tree can be defined as a sub-tree of the original by restricting it to certain
8  % - IDs,
9  % - parameters,
10  % - or time instants.
11  %
12  % This can be useful if you want to reorder your tree. For the computation of
13  % a single trajectory of an instationary problem for example, you are
14  % interested in the reduced basis spaces for all time instants, but a
15  % specific parameter only.
16  %
17  % All three restrictions can be optionally added as arguments to the
18  % DataTree.INode.create_tree() method.
19  % - The IDs are restricted by a cell array of allowed ID strings. (c.f.
20  % .DataTree::IdMapNode)
21  % - The parameters are restricted by a cell array of two parameter vectors
22  % describing two points of a cube in the parameter space. All DataTree
23  % nodes for parameters in this cube are allowed. (c.f.
24  % .DataTree::PpartNode)
25  % - The time instants are restricted by a '1x2' vector of time instants
26  % defining a time interval. All time instants lying in this interval are
27  % allowed. (c.f. .DataTree::TpartNode)
28 
29 
30  methods (Abstract)
31  % function node = create_tpart_node(this, t_part_map, initvalues);
32  % is called on @ref DataTree.PpartNode elements of a DataTree and
33  % returns a new p-part node out of it.
34  %
35  % Parameters:
36  % t_part_map: the DataTree.TpartNode.tpart_map of the original
37  % t-part node. Optionally this map can be restricted by a
38  % time interval as described in
39  % @ref data_tree_creator_restriction.
40  % initvalues: the @ref DataTree.TpartNode.values "children vector" of the original
41  % t-part node. Optionally this map can be restricted by a
42  % time interval as described in
43  % @ref data_tree_creator_restriction.
44  %
45  % Return values:
46  % node: the freshly generated p-part element of type .DataTree.PpartNode
47  node = create_tpart_node(this, t_part_map, initvalues);
48 
49  % function node = create_idmap_node(this, id_map, initvalues);
50  % is called on @ref DataTree.IdMapNode elements of a DataTree and
51  % returns a new ID mapped node out of it.
52  %
53  % Parameters:
54  % id_map: the @ref DataTree.IdMapNode.idmap "ID map" of the
55  % original node. Optionally this map can be restricted by a
56  % cell array of restricted IDs as described in
57  % @ref data_tree_creator_restriction.
58  % initvalues: the @ref DataTree.IdMapNode.values "children vector" of the original
59  % node. Optionally this map can be restricted by a
60  % cell array of restricted IDs as described in
61  % @ref data_tree_creator_restriction.
62  %
63  % Return values:
64  % node: the freshly generated p-part element of type .DataTree.IdMapNode
65  node = create_idmap_node(this, id_map, initvalues);
66 
67  % function node = create_ppart_node(this, p_part_map, initvalues);
68  % is called on @ref DataTree.PpartNode elements of a DataTree and
69  % returns a new p-part node out of it.
70  %
71  % Parameters:
72  % p_part_map: the DataTree.PpartNode.ppart_map of the original
73  % p-part node. Optionally this map can be restricted by a
74  % parameter cube as described in
75  % @ref data_tree_creator_restriction.
76  % initvalues: the @ref DataTree.PpartNode.values "children vector" of the original
77  % p-part node. Optionally this map can be restricted by a
78  % parameter cube as described in
79  % @ref data_tree_creator_restriction.
80  %
81  % Return values:
82  % node: the freshly generated p-part element of type .DataTree.PpartNode
83  node = create_ppart_node(this, p_part_map, initvalues);
84 
85  % function node = create_leaf_node(this, arg_node, basepath, mu_cube, tslice);
86  % is called on @ref .DataTree.ILeafNode "leaf elements" of a DataTree and
87  % returns a new leaf out of it.
88  %
89  % Parameters:
90  % arg_node: original leaf of type DataTree.ILeafNode which shall be used
91  % as basis for the creation of a new one.
92  % basepath: path from the root element to the current leaf.
93  % mu_cube: restriction of the parameter as described in
94  % @ref data_tree_creator_restriction
95  % tslice: restriction of the time domain as described in
96  % @ref data_tree_creator_restriction
97  %
98  % Return values:
99  % node: the freshly generated leaf element of type .DataTree.ILeafNode.
100  node = create_leaf_node(this, arg_node, basepath, mu_cube, tslice);
101  end
102 end