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.
5 % @section data_tree_creator_restriction Sub-tree definition
7 % The copied tree can be defined as a sub-tree of the original by restricting it to certain
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.
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.
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.
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
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.
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.
46 % node: the freshly generated p-part element of type .DataTree.PpartNode
47 node = create_tpart_node(this, t_part_map, initvalues);
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.
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.
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.
64 % node: the freshly generated p-part element of type .DataTree.IdMapNode
65 node = create_idmap_node(this, id_map, initvalues);
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.
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.
82 % node: the freshly generated p-part element of type .DataTree.PpartNode
83 node = create_ppart_node(this, p_part_map, initvalues);
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.
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
99 % node: the freshly generated
leaf element of type .DataTree.ILeafNode.
100 node = create_leaf_node(
this, arg_node, basepath, mu_cube, tslice);