![]() |
Peano
|
One step. More...
Public Member Functions | |
__init__ (self, name, add_user_defined_actions=True) | |
By default, the step generates at least one action set for the user. | |
remove_all_actions (self) | |
Each step holds a set of actions. | |
add_action_set (self, action_set) | |
Add a new action set to this mesh traversal step. | |
set_project (self, project) | |
Tie step to project. | |
use_cell (self, submodel) | |
use_face (self, submodel) | |
use_vertex (self, submodel) | |
highest_descend_invocation_order (self) | |
Return max descend_invocation_order over all action sets associated with this step. | |
lowest_descend_invocation_order (self) | |
Return minimum descend_invocation_order over all action sets associated with this step. | |
get_vertex_operations_signature (self) | |
get_face_operations_signature (self) | |
get_cell_operations_signature (self) | |
get_touch_cell_signature (self) | |
construct_output (self, output) | |
Each solver step basically gives us two big files/classes: A class which handles the actual data movements, i.e. | |
copy_action_sets_from_other_step (self, other_step) | |
Data Fields | |
name | |
cell_data | |
face_data | |
vertex_data | |
action_sets | |
action_set_generator | |
observer_generator | |
project | |
namespace | |
subdirectory | |
Private Member Functions | |
__sort (self) | |
Simple bubble sort the action sets, such that their descend_invocation_order is preserved. | |
One step.
Most generic version of a solver step. A solverstep describes what Peano 4 should do when it runs over the grid. As users have to specify which pieces of data from the data model are used by the solver step, it can handle all the user data stack flow.
This class also is responsible to generate all function signatures of all the steps, observers and action sets. In the Peano terminology, a step corresponds to an observer. For any given step, we run through the mesh and pass the traversal automaton an observer which accepts events (aka state transition observations).
It is the observer's job to then distribute these observations, broken down into grid actions such as "touch vertex first time", among the action sets that are tied to this observer. In Python you can have one action set and associate it with several observers. In the C++ code, we will flatten such a relation, i.e. create the corresponding action set multiple times.
name: String This name is used to create the underlying action set later on
peano4.solversteps.Step.Step.__init__ | ( | self, | |
name, | |||
add_user_defined_actions = True ) |
|
private |
Simple bubble sort the action sets, such that their descend_invocation_order is preserved.
Definition at line 74 of file Step.py.
References peano4.solversteps.Step.Step.action_sets.
Referenced by peano4.solversteps.Step.Step.add_action_set(), peano4.solversteps.Step.Step.highest_descend_invocation_order(), and peano4.solversteps.Step.Step.lowest_descend_invocation_order().
peano4.solversteps.Step.Step.add_action_set | ( | self, | |
action_set ) |
Add a new action set to this mesh traversal step.
Each step holds a set of action_sets. They describe what the step actually should do whenever it loads a vertex, runs into a cell, and so forth. By default, the step holds one user-defined action_set (UserActionSet) which means that a stub is generated where users can insert their functionality. It is important in which order you add your action_sets: The whole tree traversal is a top-down/depth-first tree traversal. So all the enter, create, ... operations of a action_set are invoked exactly in the order you add them to the step. All the delete, leave, ... operations are invokved in reversed order.
I used to have a flag append_at_end with the default True, but this one is now replaced, as each action set knows its priority.
Definition at line 93 of file Step.py.
References peano4.solversteps.Step.Step.__sort(), and peano4.solversteps.Step.Step.action_sets.
peano4.solversteps.Step.Step.construct_output | ( | self, | |
output ) |
Each solver step basically gives us two big files/classes: A class which handles the actual data movements, i.e.
is an implementation of the tree visitor pattern over the Peano4 tree. The other type is an interface which provides plugin points into the created data transitions from a user's perspective.
Definition at line 221 of file Step.py.
References peano4.solversteps.Step.Step.action_set_generator, peano4.solversteps.Step.Step.action_sets, peano4.solversteps.Step.Step.construct_output(), and peano4.solversteps.Step.Step.observer_generator.
Referenced by peano4.solversteps.Step.Step.construct_output().
peano4.solversteps.Step.Step.copy_action_sets_from_other_step | ( | self, | |
other_step ) |
Definition at line 239 of file Step.py.
References peano4.solversteps.Step.Step.action_sets.
peano4.solversteps.Step.Step.get_cell_operations_signature | ( | self | ) |
Definition at line 187 of file Step.py.
References peano4.datamodel.Model.Model.cell_data, peano4.solversteps.Step.Step.cell_data, peano4.visualisation.input.PatchFileParser.UnknownAttributes.cell_data, peano4.datamodel.Model.Model.face_data, peano4.solversteps.Step.Step.face_data, peano4.datamodel.Model.Model.vertex_data, and peano4.solversteps.Step.Step.vertex_data.
peano4.solversteps.Step.Step.get_face_operations_signature | ( | self | ) |
Definition at line 173 of file Step.py.
References peano4.datamodel.Model.Model.cell_data, peano4.solversteps.Step.Step.cell_data, peano4.visualisation.input.PatchFileParser.UnknownAttributes.cell_data, peano4.datamodel.Model.Model.face_data, peano4.solversteps.Step.Step.face_data, peano4.datamodel.Model.Model.vertex_data, and peano4.solversteps.Step.Step.vertex_data.
peano4.solversteps.Step.Step.get_touch_cell_signature | ( | self | ) |
Definition at line 203 of file Step.py.
References peano4.datamodel.Model.Model.cell_data, peano4.solversteps.Step.Step.cell_data, peano4.visualisation.input.PatchFileParser.UnknownAttributes.cell_data, peano4.datamodel.Model.Model.face_data, peano4.solversteps.Step.Step.face_data, peano4.datamodel.Model.Model.vertex_data, and peano4.solversteps.Step.Step.vertex_data.
peano4.solversteps.Step.Step.get_vertex_operations_signature | ( | self | ) |
Definition at line 161 of file Step.py.
References peano4.datamodel.Model.Model.cell_data, peano4.solversteps.Step.Step.cell_data, peano4.visualisation.input.PatchFileParser.UnknownAttributes.cell_data, peano4.datamodel.Model.Model.face_data, peano4.solversteps.Step.Step.face_data, peano4.datamodel.Model.Model.vertex_data, and peano4.solversteps.Step.Step.vertex_data.
peano4.solversteps.Step.Step.highest_descend_invocation_order | ( | self | ) |
Return max descend_invocation_order over all action sets associated with this step.
Definition at line 135 of file Step.py.
References peano4.solversteps.Step.Step.__sort(), and peano4.solversteps.Step.Step.action_sets.
peano4.solversteps.Step.Step.lowest_descend_invocation_order | ( | self | ) |
Return minimum descend_invocation_order over all action sets associated with this step.
Definition at line 148 of file Step.py.
References peano4.solversteps.Step.Step.__sort(), and peano4.solversteps.Step.Step.action_sets.
peano4.solversteps.Step.Step.remove_all_actions | ( | self | ) |
Each step holds a set of actions.
They describe what the step actually should do whenever it loads a vertex, runs into a cell, and so forth. By default, the step holds one user-defined actions which means that a stub is generated where users can insert their functionality. You can remove this one (or any other one added so far) with this routine.
Definition at line 64 of file Step.py.
References peano4.solversteps.Step.Step.action_sets.
peano4.solversteps.Step.Step.set_project | ( | self, | |
project ) |
peano4.solversteps.Step.Step.use_cell | ( | self, | |
submodel ) |
Definition at line 126 of file Step.py.
References peano4.datamodel.Model.Model.cell_data, peano4.solversteps.Step.Step.cell_data, and peano4.visualisation.input.PatchFileParser.UnknownAttributes.cell_data.
peano4.solversteps.Step.Step.use_face | ( | self, | |
submodel ) |
Definition at line 129 of file Step.py.
References peano4.datamodel.Model.Model.face_data, and peano4.solversteps.Step.Step.face_data.
peano4.solversteps.Step.Step.use_vertex | ( | self, | |
submodel ) |
Definition at line 132 of file Step.py.
References peano4.datamodel.Model.Model.vertex_data, and peano4.solversteps.Step.Step.vertex_data.
peano4.solversteps.Step.Step.action_set_generator |
Definition at line 61 of file Step.py.
Referenced by peano4.solversteps.Step.Step.construct_output().
peano4.solversteps.Step.Step.action_sets |
Definition at line 58 of file Step.py.
Referenced by peano4.solversteps.Step.Step.__sort(), peano4.solversteps.Step.Step.add_action_set(), peano4.solversteps.Step.Step.construct_output(), peano4.solversteps.Step.Step.copy_action_sets_from_other_step(), peano4.solversteps.Step.Step.highest_descend_invocation_order(), peano4.solversteps.Step.Step.lowest_descend_invocation_order(), and peano4.solversteps.Step.Step.remove_all_actions().
peano4.solversteps.Step.Step.cell_data |
Definition at line 54 of file Step.py.
Referenced by peano4.datamodel.Model.Model.__str__(), peano4.datamodel.Model.Model.add_cell(), peano4.visualisation.input.PatchFileParser.UnknownAttributes.append_patch(), peano4.datamodel.Model.Model.clear(), peano4.datamodel.Model.Model.construct_output(), peano4.solversteps.Step.Step.get_cell_operations_signature(), peano4.solversteps.Step.Step.get_face_operations_signature(), peano4.solversteps.Step.Step.get_touch_cell_signature(), peano4.solversteps.Step.Step.get_vertex_operations_signature(), peano4.visualisation.input.PatchFileParser.UnknownAttributes.set_celldata(), and peano4.solversteps.Step.Step.use_cell().
peano4.solversteps.Step.Step.face_data |
Definition at line 55 of file Step.py.
Referenced by peano4.datamodel.Model.Model.__str__(), peano4.datamodel.Model.Model.add_face(), peano4.datamodel.Model.Model.clear(), peano4.datamodel.Model.Model.construct_output(), peano4.solversteps.Step.Step.get_cell_operations_signature(), peano4.solversteps.Step.Step.get_face_operations_signature(), peano4.solversteps.Step.Step.get_touch_cell_signature(), peano4.solversteps.Step.Step.get_vertex_operations_signature(), and peano4.solversteps.Step.Step.use_face().
peano4.solversteps.Step.Step.name |
Definition at line 53 of file Step.py.
Referenced by exahype2.solvers.aderdg.kernels.Gemms.Gemms.__repr__(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.AlgorithmStep.AlgorithmStep.__str__(), peano4.datamodel.DoF.DoF.additional_load_and_store_arguments_for_other_dof(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.tests.DastgenTestDummyParticle.DastgenTestDummyParticle.algorithm_steps(), peano4.solversteps.UserActionSet.UserActionSet.get_action_set_name(), peano4.datamodel.DoF.DoF.get_full_qualified_type(), peano4.datamodel.DoF.DoF.get_logical_type_name(), dastgen2.attributes.Enumeration.Enumeration.get_to_string(), and swift2.particle.Particle.Particle.readme_descriptor().
peano4.solversteps.Step.Step.namespace |
Definition at line 123 of file Step.py.
Referenced by peano4.output.Observer.Observer.__generate_header(), peano4.output.ActionSet.ActionSet.__get_full_qualified_class_name(), peano4.datamodel.Model.Model.add_cell(), peano4.datamodel.Model.Model.add_face(), peano4.datamodel.Model.Model.add_global_object(), peano4.Project.Project.add_subproject(), peano4.datamodel.Model.Model.add_vertex(), peano4.datamodel.DoF.DoF.configure(), and peano4.datamodel.DoF.DoF.get_full_qualified_type().
peano4.solversteps.Step.Step.observer_generator |
Definition at line 62 of file Step.py.
Referenced by peano4.solversteps.Step.Step.construct_output().
peano4.solversteps.Step.Step.project |
Definition at line 122 of file Step.py.
Referenced by peano4.runner.DefaultSequence.DefaultSequence.construct_output().
peano4.solversteps.Step.Step.subdirectory |
Definition at line 124 of file Step.py.
Referenced by peano4.output.ActionSet.ActionSet.__generate_header(), peano4.output.Observer.Observer.__generate_header(), peano4.datamodel.Model.Model.add_cell(), peano4.datamodel.Model.Model.add_face(), peano4.datamodel.Model.Model.add_global_object(), peano4.datamodel.Model.Model.add_vertex(), peano4.output.ActionSet.ActionSet.generate(), peano4.output.InvokeExternalTool.InvokeExternalTool.generate(), peano4.output.Jinja2TemplatedHeaderFile.Jinja2TemplatedHeaderFile.generate(), peano4.output.Jinja2TemplatedHeaderImplementationFilePair.Jinja2TemplatedHeaderImplementationFilePair.generate(), peano4.output.Observer.Observer.generate(), peano4.output.TemplatedHeaderFile.TemplatedHeaderFile.generate(), peano4.output.TemplatedHeaderImplementationFilePair.TemplatedHeaderImplementationFilePair.generate(), peano4.output.ActionSet.ActionSet.get_cpp_file_name(), peano4.output.Observer.Observer.get_cpp_file_name(), and peano4.datamodel.DoF.DoF.subnamespace().
peano4.solversteps.Step.Step.vertex_data |
Definition at line 56 of file Step.py.
Referenced by peano4.datamodel.Model.Model.__str__(), peano4.datamodel.Model.Model.add_vertex(), peano4.datamodel.Model.Model.clear(), peano4.datamodel.Model.Model.construct_output(), peano4.solversteps.Step.Step.get_cell_operations_signature(), peano4.solversteps.Step.Step.get_face_operations_signature(), peano4.solversteps.Step.Step.get_touch_cell_signature(), peano4.solversteps.Step.Step.get_vertex_operations_signature(), and peano4.solversteps.Step.Step.use_vertex().