|
Peano
|
The action set to realise AMR. More...


Public Member Functions | |
| __init__ (self, solver, guard, build_up_new_refinement_instructions, implement_previous_refinement_instructions, called_by_grid_construction, event_lifetime=2) | |
| :: Attributes | |
| get_body_of_getGridControlEvents (self) | |
| get_body_of_operation (self, operation_name) | |
| Return actual C++ code snippets to be inserted into C++ code. | |
| event_lifetime (self) | |
| event_lifetime (self, value) | |
| By default, a refinement/coarsening event is only alive for one grid sweep. | |
| get_attributes (self) | |
| Return attributes as copied and pasted into the generated class. | |
| get_action_set_name (self) | |
| You should replicate this function in each subclass, so you get meaningful action set names (otherwise, it will be AbstractFVActionSet0,1,2,...). | |
| get_includes (self) | |
| Return include statements that you need. | |
Public Member Functions inherited from exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet | |
| user_should_modify_template (self) | |
| Is the user allowed to modify the output. | |
Public Member Functions inherited from peano4.solversteps.ActionSet.ActionSet | |
| get_constructor_body (self) | |
| Define a tailored constructor body. | |
| get_static_initialisations (self, full_qualified_classname) | |
| get_destructor_body (self) | |
| get_body_of_prepareTraversal (self) | |
| get_body_of_unprepareTraversal (self) | |
Data Fields | |
| guard | |
Data Fields inherited from peano4.solversteps.ActionSet.ActionSet | |
| descend_invocation_order | |
| parallel | |
Protected Attributes | |
| _build_up_new_refinement_instructions | |
| _implement_previous_refinement_instructions | |
| _event_lifetime | |
| _called_by_grid_construction | |
Protected Attributes inherited from exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet | |
| _solver | |
The action set to realise AMR.
AMR is a multistep process in ExaHyPE. Most of the relevant documentation on it is documented in the class exahype2::RefinementControl.
There are different phases in ExaHyPE: grid generation (either with refinement or without), initialisation, plotting and time stepping. It depends on your solver in which time stepping to use AMR, but the there are some things to take into account that are in common for all schemes:
Please consult EnclaveTasking.create_action_sets for details regarding the handling of AMR within the enclave tasking concept.
Definition at line 8 of file AdaptivityCriterion.py.
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.__init__ | ( | self, | |
| solver, | |||
| guard, | |||
| build_up_new_refinement_instructions, | |||
| implement_previous_refinement_instructions, | |||
| called_by_grid_construction, | |||
| event_lifetime = 2 ) |
:: Attributes
_implement_previous_refinement_instructions: Boolean This name might be misleading. Consult exahype2::RefinementControl for a description of the control flow. This flag controls if instructions are picked up from the RefinementControl database.
:: Arguments
guard: C++ expression which evaluates to true or false A per cell decision whether we should study a cell or not.
build_up_new_refinement_instructions: Boolean See remarks on multistep realisation of AMR in C++ class exahype2::RefinementControl.
implement_previous_refinement_instructions: Boolean See remarks on multistep realisation of AMR in C++ class exahype2::RefinementControl.
event_lifetime: Int See setter below
Reimplemented from exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet.
Definition at line 109 of file AdaptivityCriterion.py.
References exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.__init__().
Referenced by exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.__init__().


| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime | ( | self | ) |
Definition at line 196 of file AdaptivityCriterion.py.
References exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime.
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime | ( | self, | |
| value ) |
By default, a refinement/coarsening event is only alive for one grid sweep.
After that one, the set of refine/coarsen commands is reset and we start again. If you work with local time stepping, subcycling, multiphysics codes, you might want to keep an event for more steps. In this case, you have to invoke this setter.
Definition at line 201 of file AdaptivityCriterion.py.
References exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.aderdg.actionsets.AbstractADERDGActionSet.AbstractADERDGActionSet._solver, exahype2.solvers.fv.actionsets.AbstractFVActionSet.AbstractFVActionSet._solver, exahype2.solvers.fv.EnclaveTasking.UpdateCell._solver, exahype2.solvers.fv.SingleSweep.UpdateCell._solver, exahype2.solvers.limiting.actionsets.AbstractLimiterActionSet.AbstractLimiterActionSet._solver, exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet._solver, exahype2.solvers.rkfd.actionsets.AbstractRKFDActionSet.AbstractRKFDActionSet._solver, exahype2.solvers.rkfd.actionsets.PreprocessSolution.PreprocessReconstructedSolutionWithHalo._solver, exahype2.solvers.rkfd.OneSweepPerRungeKuttaStep.UpdateCell._solver, exahype2.solvers.rkfd.SeparateSweeps.UpdateCell._solver, and exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.UpdateCell._solver.
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_action_set_name | ( | self | ) |
You should replicate this function in each subclass, so you get meaningful action set names (otherwise, it will be AbstractFVActionSet0,1,2,...).
Reimplemented from exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet.
Definition at line 220 of file AdaptivityCriterion.py.
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.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.solversteps.ActionSet.ActionSet.
Definition at line 214 of file AdaptivityCriterion.py.
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_getGridControlEvents | ( | self | ) |
Reimplemented from peano4.solversteps.ActionSet.ActionSet.
Definition at line 152 of file AdaptivityCriterion.py.
References exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._implement_previous_refinement_instructions, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion._implement_previous_refinement_instructions, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._implement_previous_refinement_instructions, and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion._implement_previous_refinement_instructions.
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.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.
Reimplemented from peano4.solversteps.ActionSet.ActionSet.
Definition at line 163 of file AdaptivityCriterion.py.
References exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._build_up_new_refinement_instructions, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion._build_up_new_refinement_instructions, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._build_up_new_refinement_instructions, exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion._build_up_new_refinement_instructions, exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._called_by_grid_construction, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion._called_by_grid_construction, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._called_by_grid_construction, exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion._called_by_grid_construction, exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion._event_lifetime, exahype2.solvers.aderdg.actionsets.AbstractADERDGActionSet.AbstractADERDGActionSet._solver, exahype2.solvers.fv.actionsets.AbstractFVActionSet.AbstractFVActionSet._solver, exahype2.solvers.fv.EnclaveTasking.UpdateCell._solver, exahype2.solvers.fv.SingleSweep.UpdateCell._solver, exahype2.solvers.limiting.actionsets.AbstractLimiterActionSet.AbstractLimiterActionSet._solver, exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet._solver, exahype2.solvers.rkfd.actionsets.AbstractRKFDActionSet.AbstractRKFDActionSet._solver, exahype2.solvers.rkfd.actionsets.PreprocessSolution.PreprocessReconstructedSolutionWithHalo._solver, exahype2.solvers.rkfd.OneSweepPerRungeKuttaStep.UpdateCell._solver, exahype2.solvers.rkfd.SeparateSweeps.UpdateCell._solver, exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.UpdateCell._solver, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.guard, exahype2.solvers.fv.actionsets.HandleBoundary.HandleBoundary.guard, exahype2.solvers.fv.actionsets.InitialCondition.InitialCondition.guard, exahype2.solvers.fv.actionsets.PostprocessSolution.EmptyPostprocessSolution.guard, exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.guard, exahype2.solvers.fv.actionsets.PreprocessSolution.EmptyPreprocessSolution.guard, exahype2.solvers.fv.actionsets.PreprocessSolution.VolumeWisePreprocessSolution.guard, exahype2.solvers.fv.EnclaveTasking.MergeEnclaveTaskOutcome.guard, exahype2.solvers.limiting.actionsets.SaveNewCellData.SaveNewCellData.guard, exahype2.solvers.limiting.actionsets.SpreadLimiterStatus.SpreadLimiterStatus.guard, exahype2.solvers.limiting.actionsets.VerifyTroubledness.VerifyTroubledness.guard, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.guard, exahype2.solvers.rkdg.actionsets.ComputeFinalLinearCombination.ComputeFinalLinearCombination.guard, exahype2.solvers.rkdg.actionsets.InitialCondition.InitialCondition.guard, exahype2.solvers.rkdg.actionsets.PostprocessSolution.EmptyPostprocessSolution.guard, exahype2.solvers.rkdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution.guard, exahype2.solvers.rkdg.actionsets.PostprocessSolution.CellWisePostprocessSolution.guard, exahype2.solvers.rkdg.actionsets.PreprocessSolution.EmptyPreprocessSolution.guard, exahype2.solvers.rkdg.actionsets.PreprocessSolution.DoFWisePreprocessSolution.guard, exahype2.solvers.rkdg.actionsets.PreprocessSolution.CellWisePreprocessSolution.guard, exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.guard, exahype2.solvers.rkfd.actionsets.ComputeFinalLinearCombination.ComputeFinalLinearCombination.guard, exahype2.solvers.rkfd.actionsets.HandleBoundary.HandleBoundary.guard, exahype2.solvers.rkfd.actionsets.InitialCondition.InitialCondition.guard, exahype2.solvers.rkfd.actionsets.PostprocessSolution.EmptyPostprocessSolution.guard, exahype2.solvers.rkfd.actionsets.PostprocessSolution.CellWisePostprocessSolution.guard, exahype2.solvers.rkfd.actionsets.PreprocessSolution.EmptyPreprocessSolution.guard, exahype2.solvers.rkfd.actionsets.PreprocessSolution.CellWisePreprocessSolution.guard, exahype2.solvers.rkfd.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.guard, peano4.toolbox.blockstructured.ProjectPatchOntoFaces.ProjectPatchOntoFaces.guard(), peano4.toolbox.blockstructured.ProjectPatchOntoFaces.ProjectPatchOntoFaces.guard(), peano4.toolbox.blockstructured.ReconstructPatchAndApplyFunctor.ReconstructPatchAndApplyFunctor.guard, exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.TemplateAMR, exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.TemplateAMR, and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.TemplateAMR.

| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.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 exahype2.solvers.rkdg.actionsets.AbstractRungeKuttaDGActionSet.AbstractRungeKuttaDGActionSet.
Definition at line 224 of file AdaptivityCriterion.py.
References exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_includes().
Referenced by exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_includes().


|
protected |
Definition at line 146 of file AdaptivityCriterion.py.
Referenced by exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation().
|
protected |
Definition at line 149 of file AdaptivityCriterion.py.
Referenced by exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation().
|
protected |
Definition at line 148 of file AdaptivityCriterion.py.
Referenced by exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime(), exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime(), exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime(), exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.event_lifetime(), exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), and exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.set_event_lifetime().
|
protected |
Definition at line 147 of file AdaptivityCriterion.py.
Referenced by exahype2.solvers.aderdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_getGridControlEvents(), exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_getGridControlEvents(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_getGridControlEvents(), and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_getGridControlEvents().
| exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.guard |
Definition at line 145 of file AdaptivityCriterion.py.
Referenced by peano4.toolbox.blockstructured.ReconstructPatchAndApplyFunctor.ReconstructPatchAndApplyFunctor._add_action_set_entries_to_dictionary(), exahype2.solvers.aderdg.actionsets.Correction.Correction.get_body_of_operation(), exahype2.solvers.aderdg.actionsets.Prediction.Prediction.get_body_of_operation(), exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.fv.actionsets.InitialCondition.InitialCondition.get_body_of_operation(), exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.get_body_of_operation(), exahype2.solvers.fv.actionsets.PreprocessSolution.VolumeWisePreprocessSolution.get_body_of_operation(), exahype2.solvers.fv.EnclaveTasking.MergeEnclaveTaskOutcome.get_body_of_operation(), exahype2.solvers.limiting.actionsets.SaveNewCellData.SaveNewCellData.get_body_of_operation(), exahype2.solvers.limiting.actionsets.SpreadLimiterStatus.SpreadLimiterStatus.get_body_of_operation(), exahype2.solvers.limiting.actionsets.VerifyTroubledness.VerifyTroubledness.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.ComputeFinalLinearCombination.ComputeFinalLinearCombination.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.InitialCondition.InitialCondition.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.PostprocessSolution.CellWisePostprocessSolution.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.PreprocessSolution.DoFWisePreprocessSolution.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.PreprocessSolution.CellWisePreprocessSolution.get_body_of_operation(), exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkfd.actionsets.ComputeFinalLinearCombination.ComputeFinalLinearCombination.get_body_of_operation(), exahype2.solvers.rkfd.actionsets.InitialCondition.InitialCondition.get_body_of_operation(), exahype2.solvers.rkfd.actionsets.PostprocessSolution.CellWisePostprocessSolution.get_body_of_operation(), exahype2.solvers.rkfd.actionsets.PreprocessSolution.CellWisePreprocessSolution.get_body_of_operation(), exahype2.solvers.fv.actionsets.InitialCondition.InitialCondition.get_body_of_prepareTraversal(), and exahype2.solvers.rkfd.actionsets.InitialCondition.InitialCondition.get_body_of_prepareTraversal().
|
static |
Definition at line 34 of file AdaptivityCriterion.py.
Referenced by exahype2.solvers.fv.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), exahype2.solvers.rkdg.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation(), and exahype2.solvers.rkfd.actionsets.AdaptivityCriterion.AdaptivityCriterion.get_body_of_operation().