![]() |
Peano
|
Run over solution volume by volume. More...
Public Member Functions | |
__init__ (self, solver) | |
solver: ADERDG Reference to creating class | |
add_postprocessing_kernel (self, operation_per_point) | |
Add a code snippet which is applied to each and every point. | |
get_body_of_operation (self, operation_name) | |
Return actual C++ code snippets to be inserted into C++ code. | |
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,...). | |
![]() | |
user_should_modify_template (self) | |
Is the user allowed to modify the output. | |
get_includes (self) | |
Return include statements that you need. | |
![]() | |
get_constructor_body (self) | |
Define a tailored constructor body. | |
get_static_initialisations (self, full_qualified_classname) | |
get_destructor_body (self) | |
get_body_of_getGridControlEvents (self) | |
get_body_of_prepareTraversal (self) | |
get_body_of_unprepareTraversal (self) | |
get_attributes (self) | |
Return attributes as copied and pasted into the generated class. | |
Data Fields | |
guard | |
![]() | |
descend_invocation_order | |
parallel | |
Protected Attributes | |
_compute_kernel | |
![]() | |
_solver | |
Run over solution volume by volume.
PostprocessSolution differs from other action sets, as I only create it once. See FV.create_action_sets(). Once the instance does exist, you can tailor it. But you can also completely overwrite it.
See also FV.postprocess_updated_patch(self, kernel) for a discussion what options ExaHyPE offers for postprocessing. This volume-wise postprocessing might be too heavy-weight for some applications.
The postprocessing plugs into touch cell last time. It is the last action set added by the default implementation. Therefore, it is the first action set of which touchCellLastTime() is called. The reason why I plug into the leaving of the cell is that some solvers may add further action sets to the solve. Enclave tasking for example adds the merger as additional action set. These action sets plug into touchCellFirstTime() - and consequently their first time is called after the postprocessing's first time. By making the postprocessing use touchCellLastTime(), I ensure that any additional action set added by a subclass can still precede the postprocessing.
Definition at line 32 of file PostprocessSolution.py.
exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.__init__ | ( | self, | |
solver ) |
solver: ADERDG Reference to creating class
Reimplemented from exahype2.solvers.fv.actionsets.AbstractFVActionSet.AbstractFVActionSet.
Definition at line 58 of file PostprocessSolution.py.
exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.add_postprocessing_kernel | ( | self, | |
operation_per_point ) |
Add a code snippet which is applied to each and every point.
You have the following variables which are well-defined:
operation_per_point: String C/C++ code snippet
Definition at line 63 of file PostprocessSolution.py.
References exahype2.solvers.aderdg.actionsets.PostprocessSolution.EmptyPostprocessSolution._compute_kernel, exahype2.solvers.aderdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution._compute_kernel, exahype2.solvers.aderdg.actionsets.PostprocessSolution.CellWisePostprocessSolution._compute_kernel, exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution._compute_kernel, exahype2.solvers.fv.actionsets.PreprocessSolution.VolumeWisePreprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PostprocessSolution.CellWisePostprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PreprocessSolution.DoFWisePreprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PreprocessSolution.CellWisePreprocessSolution._compute_kernel, exahype2.solvers.rkfd.actionsets.PostprocessSolution.CellWisePostprocessSolution._compute_kernel, and exahype2.solvers.rkfd.actionsets.PreprocessSolution.CellWisePreprocessSolution._compute_kernel.
exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.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.fv.actionsets.AbstractFVActionSet.AbstractFVActionSet.
Definition at line 127 of file PostprocessSolution.py.
exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.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 109 of file PostprocessSolution.py.
References exahype2.solvers.aderdg.actionsets.PostprocessSolution.EmptyPostprocessSolution._compute_kernel, exahype2.solvers.aderdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution._compute_kernel, exahype2.solvers.aderdg.actionsets.PostprocessSolution.CellWisePostprocessSolution._compute_kernel, exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution._compute_kernel, exahype2.solvers.fv.actionsets.PreprocessSolution.VolumeWisePreprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PostprocessSolution.CellWisePostprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PreprocessSolution.DoFWisePreprocessSolution._compute_kernel, exahype2.solvers.rkdg.actionsets.PreprocessSolution.CellWisePreprocessSolution._compute_kernel, exahype2.solvers.rkfd.actionsets.PostprocessSolution.CellWisePostprocessSolution._compute_kernel, exahype2.solvers.rkfd.actionsets.PreprocessSolution.CellWisePreprocessSolution._compute_kernel, ComputeFirstDerivatives.ComputeFirstDerivativesFD4RK._solver, 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(), and peano4.toolbox.blockstructured.ReconstructPatchAndApplyFunctor.ReconstructPatchAndApplyFunctor.guard.
|
protected |
Definition at line 61 of file PostprocessSolution.py.
Referenced by exahype2.solvers.aderdg.actionsets.PostprocessSolution.CellWisePostprocessSolution.add_postprocessing_kernel(), exahype2.solvers.rkdg.actionsets.PostprocessSolution.CellWisePostprocessSolution.add_postprocessing_kernel(), exahype2.solvers.rkdg.actionsets.PreprocessSolution.CellWisePreprocessSolution.add_postprocessing_kernel(), exahype2.solvers.aderdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution.add_postprocessing_kernel(), exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.add_postprocessing_kernel(), exahype2.solvers.fv.actionsets.PreprocessSolution.VolumeWisePreprocessSolution.add_postprocessing_kernel(), exahype2.solvers.rkdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution.add_postprocessing_kernel(), exahype2.solvers.rkdg.actionsets.PreprocessSolution.DoFWisePreprocessSolution.add_postprocessing_kernel(), exahype2.solvers.rkfd.actionsets.PostprocessSolution.CellWisePostprocessSolution.add_postprocessing_kernel(), exahype2.solvers.rkfd.actionsets.PreprocessSolution.CellWisePreprocessSolution.add_postprocessing_kernel(), exahype2.solvers.aderdg.actionsets.PostprocessSolution.EmptyPostprocessSolution.get_body_of_operation(), exahype2.solvers.aderdg.actionsets.PostprocessSolution.DoFWisePostprocessSolution.get_body_of_operation(), exahype2.solvers.aderdg.actionsets.PostprocessSolution.CellWisePostprocessSolution.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.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.PostprocessSolution.CellWisePostprocessSolution.get_body_of_operation(), and exahype2.solvers.rkfd.actionsets.PreprocessSolution.CellWisePreprocessSolution.get_body_of_operation().
exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.guard |
Definition at line 60 of file PostprocessSolution.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().