|
Peano
|
Marker which ends a group of action sets that run in parallel. More...


Public Member Functions | |
| __init__ (self) | |
| get_constructor_body (self) | |
| Define a tailored constructor body. | |
| get_destructor_body (self) | |
| get_body_of_prepareTraversal (self) | |
| get_body_of_unprepareTraversal (self) | |
| get_body_of_operation (self, operation_name) | |
| Return actual C++ code snippets to be inserted into C++ code. | |
| get_action_set_name (self) | |
| Return unique action set name. | |
| user_should_modify_template (self) | |
| Is the user allowed to modify the output. | |
| get_attributes (self) | |
| Return attributes as copied and pasted into the generated class. | |
| get_includes (self) | |
| Return include statements that you need. | |
Public Member Functions inherited from peano4.api.solversteps.ActionSet.ActionSet | |
| get_static_initialisations (self, full_qualified_classname) | |
| get_body_of_createGridControlEventsForNextTraversal (self) | |
| Return the grid control events that this action set wants to trigger. | |
| get_implementation_of_createGridControlEventsForNextTraversal (self) | |
| Return the C++ implementation of createGridControlEventsForNextTraversal() | |
| get_implementation_of_prepareTraversal (self) | |
| Return the C++ implementation of prepareTraversal() | |
| get_implementation_of_unprepareTraversal (self) | |
| Return the C++ implementation of unprepareTraversal() | |
| get_guard_of_operation (self, operation_name) | |
| Return the guard of an operation. | |
| get_implementation_of_operation (self, operation_name) | |
| Return the C++ implementation of an operation. | |
| bool | may_run_in_background_task (self) |
| May a task graph compiler move touchCellFirstTime() into a task. | |
Marker which ends a group of action sets that run in parallel.
The generated observer invokes the action sets of a step one by one. Consecutive action sets with parallel=True form a task group instead: Per event, their code is spawned as one task per action set, and the observer waits for all of these tasks before it continues (peano4.api.solversteps.SynchroniseActionSets.get_task_groups()). An action set with parallel=False ends a group, too, but it is then invoked itself.
This marker ends a group without invoking anything. Use it to separate two task groups which follow each other directly. Without the marker, they would merge into one group, i.e. action sets of the second group might run concurrently to the ones of the first group although they depend on them. peano4.api.taskgraph.compiler.FuseSteps inserts such markers.
The marker is ignored when we generate the C++ code: It yields neither an action set class nor any code in the observer. Append it directly to a step's action_sets. Do not use peano4.api.solversteps.Step.Step.add_action_set(), as this routine sorts the action sets according to their descend_invocation_order, i.e. it might move the marker.
Definition at line 8 of file SynchroniseActionSets.py.
| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.__init__ | ( | self | ) |
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 37 of file SynchroniseActionSets.py.
References peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.__init__().
Referenced by peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.__init__().


| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_action_set_name | ( | self | ) |
Return unique action set name.
Returns a description (word) for the mapping which is also used as class name for the generated type. As a consequence, the result should be one word (if possible) and uppercase. Also, every subclass should overwrite this routine.
The generator will take the result and construct eventually classes similar to MyStep2Dummy.h and MyStep2Dummy.cpp or similar for the example below, where we return Dummy.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 55 of file SynchroniseActionSets.py.
| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_attributes | ( | self | ) |
Return attributes as copied and pasted into the generated class.
Please note that action sets are not persistent, i.e. there is one object creation per grid sweep per tree.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 61 of file SynchroniseActionSets.py.
| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_body_of_operation | ( | self, | |
| operation_name | |||
| ) |
Return actual C++ code snippets to be inserted into C++ code.
See class' string constants starting with OPERATION_ for possible values of operation_name. The snippet is executed if and only if the guard returned by get_guard_of_operation() holds, i.e. the body should not evaluate the guard itself. See the section "Guard and body" in the class documentation.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 52 of file SynchroniseActionSets.py.
Referenced by peano4.api.solversteps.ActionSet.ActionSet.get_implementation_of_operation().

| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_body_of_prepareTraversal | ( | self | ) |
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 46 of file SynchroniseActionSets.py.
Referenced by peano4.api.solversteps.ActionSet.ActionSet.get_implementation_of_prepareTraversal().

| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_body_of_unprepareTraversal | ( | self | ) |
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 49 of file SynchroniseActionSets.py.
Referenced by peano4.api.solversteps.ActionSet.ActionSet.get_implementation_of_unprepareTraversal().

| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_constructor_body | ( | self | ) |
Define a tailored constructor body.
By default, the constructor of an action set is empty. If you you assign attributes to your action set, you however might want to initialise them here. We do not support initialisation lists, to all has to be done via setters unless you create attributes on the heap.
The constructor's signature will look similar to
EnumerateAndInitSolution2petsc_actionsets_InitVertexDoFs0(int treeNumber);
where the treeNumber is -1 if this is the global instance of the action set owned by a rank, or a number greater or equal 0 if this action set is a clone of the glocal action set that's used by one tree traversal.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 40 of file SynchroniseActionSets.py.
| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_destructor_body | ( | self | ) |
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 43 of file SynchroniseActionSets.py.
| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.get_includes | ( | self | ) |
Return include statements that you need.
All of these includes will eventually end up in the header of the generated C++ code.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 64 of file SynchroniseActionSets.py.
| peano4.api.solversteps.SynchroniseActionSets.SynchroniseActionSets.user_should_modify_template | ( | self | ) |
Is the user allowed to modify the output.
Return whether you expect the user to modify the generated code. If this is the case, then the API places the generated output in the directory actions. Otherwise, it goes into the observer directory and will be overwritten in each and every Python run.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 58 of file SynchroniseActionSets.py.