Peano
Loading...
Searching...
No Matches
exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution Class Reference

Run over solution volume by volume. More...

Inheritance diagram for exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution:
Collaboration diagram for exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution:

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,...).
 
- Public Member Functions inherited from exahype2.solvers.fv.actionsets.AbstractFVActionSet.AbstractFVActionSet
 user_should_modify_template (self)
 Is the user allowed to modify the output.
 
 get_includes (self)
 Return include statements that you need.
 
- 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_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
 
- Data Fields inherited from peano4.solversteps.ActionSet.ActionSet
 descend_invocation_order
 
 parallel
 

Protected Attributes

 _compute_kernel
 
- Protected Attributes inherited from exahype2.solvers.fv.actionsets.AbstractFVActionSet.AbstractFVActionSet
 _solver
 

Additional Inherited Members

- Static Public Attributes inherited from peano4.solversteps.ActionSet.ActionSet
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

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.

Constructor & Destructor Documentation

◆ __init__()

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.

Member Function Documentation

◆ add_postprocessing_kernel()

exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution.add_postprocessing_kernel ( self,
operation_per_point )

◆ get_action_set_name()

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.

◆ get_body_of_operation()

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.

Here is the call graph for this function:

Field Documentation

◆ _compute_kernel

exahype2.solvers.fv.actionsets.PostprocessSolution.VolumeWisePostprocessSolution._compute_kernel
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().

◆ guard

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


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