|
Peano
|
Refine the mesh - solver-agnostic - down to a regular grid of a given resolution. More...


Public Member Functions | |
| __init__ (self, float cell_size, descend_invocation_order=0, parallel=True, str guard="true", str includes="") | |
| user_should_modify_template (self) | |
| Is the user allowed to modify the output. | |
| get_body_of_createGridControlEventsForNextTraversal (self) | |
| Return the grid control events that this action set wants to trigger. | |
| get_includes (self) | |
| Return include statements that you need. | |
| get_action_set_name (self) | |
| Return unique action set name. | |
Public Member Functions inherited from peano4.api.solversteps.ActionSet.ActionSet | |
| get_constructor_body (self) | |
| Define a tailored constructor body. | |
| get_static_initialisations (self, full_qualified_classname) | |
| get_destructor_body (self) | |
| get_implementation_of_createGridControlEventsForNextTraversal (self) | |
| Return the C++ implementation of createGridControlEventsForNextTraversal() | |
| get_body_of_prepareTraversal (self) | |
| get_implementation_of_prepareTraversal (self) | |
| Return the C++ implementation of prepareTraversal() | |
| get_body_of_unprepareTraversal (self) | |
| get_implementation_of_unprepareTraversal (self) | |
| Return the C++ implementation of unprepareTraversal() | |
| get_body_of_operation (self, operation_name) | |
| Return actual C++ code snippets to be inserted into C++ code. | |
| 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. | |
| get_attributes (self) | |
| Return attributes as copied and pasted into the generated class. | |
Data Fields | |
| cell_size | |
| guard | |
| includes | |
Data Fields inherited from peano4.api.solversteps.ActionSet.ActionSet | |
| descend_invocation_order | |
| parallel | |
Refine the mesh - solver-agnostic - down to a regular grid of a given resolution.
Unlike the dynamic mesh refinement action sets that evaluate a solver's adaptivity criterion (exahype2.api.AdaptivityCriterion, see exahype2.api.blockstructured.DynamicMeshRefinement), this action set does not evaluate any solver data (there is none yet while the grid is still being built): it only ever looks at a cell's size and decides to refine or keep based on cell_size alone. That is what makes it "generic" - solver-independent - and hence a candidate to sit in peano4.api.actionsets rather than one of the discretisation- or extension-specific actionsets packages (e.g. exahype2.api.fv.actionsets).
The resulting C++ file will be really simplistic, basically consisting of only a few lines of code in the touchVertexFirstTime operation, the beginTraversal() event and the routine that returns the grid control events.
Definition at line 6 of file ConstructRegularGrid.py.
| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.__init__ | ( | self, | |
| float | cell_size, | ||
descend_invocation_order = 0, |
|||
parallel = True, |
|||
| str | guard = "true", |
||
| str | includes = "" |
||
| ) |
| cell_size | float Upper bound on the edge length of the cells of the regular grid. Peano refines every cell whose edge length is greater than or equal to cell_size, i.e. the resulting cells are strictly smaller than cell_size. Peano always refines the root cell at least once. |
| guard | str C++ boolean expression. The action set only returns its refinement instruction for the next traversal if the expression holds. Otherwise, it does not ask for any refinement, i.e. the mesh construction pauses. The expression is evaluated in createGridControlEventsForNextTraversal(). By default, the action set always refines. |
| includes | str Include statements required by guard. |
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 28 of file ConstructRegularGrid.py.
References peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.__init__().
Referenced by peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.__init__().


| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.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 86 of file ConstructRegularGrid.py.
| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.get_body_of_createGridControlEventsForNextTraversal | ( | self | ) |
Return the grid control events that this action set wants to trigger.
Please consult the documentation of grid control events for details on what these events are and how they are used.
Reimplemented from peano4.api.solversteps.ActionSet.ActionSet.
Definition at line 64 of file ConstructRegularGrid.py.
Referenced by peano4.api.solversteps.ActionSet.ActionSet.get_implementation_of_createGridControlEventsForNextTraversal().

| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.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 81 of file ConstructRegularGrid.py.
References exaparty.api.particle.AlgorithmStep.AlgorithmStep.includes, peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.includes, peano4.api.dastgen2.MPIAndStorageAspect.MPIAndStorageAspect.includes, peano4.api.datamodel.PatchToDoubleArray.PatchToDoubleArray.includes, and test_derive_load_store_compute_flag._FakeGenerator.includes.
| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.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 61 of file ConstructRegularGrid.py.
| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.cell_size |
Definition at line 57 of file ConstructRegularGrid.py.
| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.guard |
Definition at line 58 of file ConstructRegularGrid.py.
Referenced by api.ReconstructPatchWithHalo.ReconstructPatchWithHalo._add_action_set_entries_to_dictionary(), solvers.aderdg.actionsets.Correction.Correction.get_body_of_operation(), solvers.aderdg.actionsets.Prediction.Prediction.get_body_of_operation(), solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), solvers.fv.actionsets.InitialCondition.InitialCondition.get_body_of_operation(), solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.get_body_of_operation(), solvers.fv.actionsets.PreprocessSolution.VolumeWisePreprocessSolution.get_body_of_operation(), solvers.fv.EnclaveTasking.MergeEnclaveTaskOutcome.get_body_of_operation(), solvers.limiting.actionsets.SaveNewCellData.SaveNewCellData.get_body_of_operation(), solvers.limiting.actionsets.SpreadLimiterStatus.SpreadLimiterStatus.get_body_of_operation(), solvers.limiting.actionsets.VerifyTroubledness.VerifyTroubledness.get_body_of_operation(), solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), solvers.rkdg.actionsets.ComputeFinalLinearCombination.ComputeFinalLinearCombination.get_body_of_operation(), solvers.rkdg.actionsets.InitialCondition.InitialCondition.get_body_of_operation(), solvers.rkdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution.get_body_of_operation(), solvers.rkdg.actionsets.PostprocessSolution.CellWisePostprocessSolution.get_body_of_operation(), solvers.rkdg.actionsets.PreprocessSolution.DoFWisePreprocessSolution.get_body_of_operation(), solvers.rkdg.actionsets.PreprocessSolution.CellWisePreprocessSolution.get_body_of_operation(), solvers.fv.actionsets.InitialCondition.InitialCondition.get_body_of_prepareTraversal(), exagrype.api.actionsets.AddKreissOligerDissipation.AddKreissOligerDissipation.get_guard_of_operation(), exahype2.api.blockstructured.DynamicMeshRefinement.DynamicMeshRefinement.get_guard_of_operation(), exahype2.api.fv.actionsets.ApplyDirichletBoundaryConditions.ApplyDirichletBoundaryConditions.get_guard_of_operation(), exahype2.api.fv.actionsets.ComputeGlobalCFLCondition.ComputeGlobalCFLCondition.get_guard_of_operation(), exahype2.api.fv.actionsets.DiscardPatchInterior.DiscardPatchInterior.get_guard_of_operation(), exahype2.api.fv.actionsets.InitialCondition.InitialCondition.get_guard_of_operation(), exahype2.api.fv.actionsets.InitialiseNewCells.InitialiseNewCells.get_guard_of_operation(), exahype2.api.fv.actionsets.InsertPatchInterior.InsertPatchInterior.get_guard_of_operation(), exahype2.api.fv.actionsets.ReadjustTimeStepSizeForOptimisticGlobalTimestepping.ReadjustTimeStepSizeForOptimisticGlobalTimestepping.get_guard_of_operation(), exahype2.api.fv.actionsets.SpawnTaskToUpdateCellInterior.SpawnTaskToUpdateCellInterior.get_guard_of_operation(), exahype2.api.fv.actionsets.UpdateCell.UpdateCell.get_guard_of_operation(), exahype2.api.fv.actionsets.UpdateCellInterior.UpdateCellInterior.get_guard_of_operation(), exahype2.api.fv.actionsets.UpdateCellShell.UpdateCellShell.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.AddLopsidedAdvection.AddLopsidedAdvection.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.ApplyDirichletBoundaryConditions.ApplyDirichletBoundaryConditions.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.ComputeLinearCombination.ComputeLinearCombination.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.ComputeMaxEigenvalue.ComputeMaxEigenvalue.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.ComputeTimeStepSize.ComputeTimeStepSize.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.EvaluateRightHandSide.EvaluateRightHandSide.get_guard_of_operation(), exahype2.api.rkfd4.actionsets.InitialCondition.InitialCondition.get_guard_of_operation(), api.InterpolateHangingFaces.InterpolateHangingFaces.get_guard_of_operation(), api.ProjectPatchWithHaloOntoFaces.ProjectPatchWithHaloOntoFaces.get_guard_of_operation(), api.ReconstructPatchWithHalo.ReconstructPatchWithHalo.get_guard_of_operation(), and api.RestrictHangingFaces.RestrictHangingFaces.get_guard_of_operation().
| peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.includes |
Definition at line 59 of file ConstructRegularGrid.py.
Referenced by peano4.api.datamodel.PatchToDoubleArray.PatchToDoubleArray._get_dictionary_for_output(), peano4.api.dastgen2.MPIAndStorageAspect.MPIAndStorageAspect.get_include(), and peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.get_includes().