Peano
Loading...
Searching...
No Matches
peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid Class Reference

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

Inheritance diagram for peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid:
Collaboration diagram for peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid:

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
 

Additional Inherited Members

- Static Public Attributes inherited from peano4.api.solversteps.ActionSet.ActionSet
int descend_invocation_order = 0
 
bool parallel = False
 
str OPERATION_BEGIN_TRAVERSAL = "beginTraversal"
 
str OPERATION_END_TRAVERSAL = "endTraversal"
 
str OPERATION_CREATE_PERSISTENT_VERTEX = "createPersistentVertex"
 
str OPERATION_DESTROY_PERSISTENT_VERTEX = "destroyPersistentVertex"
 
str OPERATION_CREATE_HANGING_VERTEX = "createHangingVertex"
 
str OPERATION_DESTROY_HANGING_VERTEX = "destroyHangingVertex"
 
str OPERATION_CREATE_PERSISTENT_FACE = "createPersistentFace"
 
str OPERATION_DESTROY_PERSISTENT_FACE = "destroyPersistentFace"
 
str OPERATION_CREATE_HANGING_FACE = "createHangingFace"
 
str OPERATION_DESTROY_HANGING_FACE = "destroyHangingFace"
 
str OPERATION_CREATE_CELL = "createCell"
 
str OPERATION_DESTROY_CELL = "destroyCell"
 
str OPERATION_TOUCH_VERTEX_FIRST_TIME = "touchVertexFirstTime"
 
str OPERATION_TOUCH_VERTEX_LAST_TIME = "touchVertexLastTime"
 
str OPERATION_TOUCH_FACE_FIRST_TIME = "touchFaceFirstTime"
 
str OPERATION_TOUCH_FACE_LAST_TIME = "touchFaceLastTime"
 
str OPERATION_TOUCH_CELL_FIRST_TIME = "touchCellFirstTime"
 
str OPERATION_TOUCH_CELL_LAST_TIME = "touchCellLastTime"
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ __init__()

peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.__init__ (   self,
float  cell_size,
  descend_invocation_order = 0,
  parallel = True,
str   guard = "true",
str   includes = "" 
)
Parameters
cell_sizefloat 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.
guardstr 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.
includesstr 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__().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ get_action_set_name()

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.

◆ get_body_of_createGridControlEventsForNextTraversal()

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().

Here is the caller graph for this function:

◆ get_includes()

peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.get_includes (   self)

◆ user_should_modify_template()

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.

Field Documentation

◆ cell_size

peano4.api.actionsets.ConstructRegularGrid.ConstructRegularGrid.cell_size

Definition at line 57 of file ConstructRegularGrid.py.

◆ guard

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().

◆ includes


The documentation for this class was generated from the following file: