Peano
Loading...
Searching...
No Matches
exahype2.solvers.aderdg.actionsets.Correction.Correction Class Reference

The linear combination of the Runge-Kutta trials has to be projected onto the faces, so we can then solve the Riemann problems. More...

Inheritance diagram for exahype2.solvers.aderdg.actionsets.Correction.Correction:
Collaboration diagram for exahype2.solvers.aderdg.actionsets.Correction.Correction:

Public Member Functions

 __init__ (self, solver, guard)
 guard_project: String (C++ code) Predicate which controls if the solution is actually projected
 
 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 AbstractADERDGActionSet0,1,2,...).
 
 get_includes (self)
 Return include statements that you need.
 
- Public Member Functions inherited from exahype2.solvers.aderdg.actionsets.AbstractADERDGActionSet.AbstractADERDGActionSet
 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_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.
 

Protected Attributes

 _guard
 
 _riemann_guard
 
 _use_custom_riemann_solver
 
 _is_linear
 
- Protected Attributes inherited from exahype2.solvers.aderdg.actionsets.AbstractADERDGActionSet.AbstractADERDGActionSet
 _solver
 

Static Protected Attributes

str _Template_TouchFaceFirstTime
 
str _Template_TouchCellFirstTime
 
str _Template_RiemannSolver
 
str _Template_CustomRiemannSolver
 
str _Template_FaceIntegral
 
str _Template_CorrectorAllocations
 

Additional Inherited Members

- Data Fields inherited from peano4.solversteps.ActionSet.ActionSet
 descend_invocation_order
 
 parallel
 
- 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

The linear combination of the Runge-Kutta trials has to be projected onto the faces, so we can then solve the Riemann problems.

So the projection happens in one grid sweep, the corresponding Riemann solve in the next one.

Definition at line 10 of file Correction.py.

Constructor & Destructor Documentation

◆ __init__()

exahype2.solvers.aderdg.actionsets.Correction.Correction.__init__ ( self,
solver,
guard )

guard_project: String (C++ code) Predicate which controls if the solution is actually projected

guard_safe_old_time_step: String (C++ code) Predicate which controls if the projection should be copied into the old solution and the time step should also be moved over

Reimplemented from exahype2.solvers.aderdg.actionsets.AbstractADERDGActionSet.AbstractADERDGActionSet.

Definition at line 157 of file Correction.py.

References exahype2.solvers.aderdg.actionsets.Correction.Correction.__init__().

Referenced by exahype2.solvers.aderdg.actionsets.Correction.Correction.__init__().

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

Member Function Documentation

◆ get_action_set_name()

exahype2.solvers.aderdg.actionsets.Correction.Correction.get_action_set_name ( self)

You should replicate this function in each subclass, so you get meaningful action set names (otherwise, it will be AbstractADERDGActionSet0,1,2,...).

Reimplemented from exahype2.solvers.aderdg.actionsets.AbstractADERDGActionSet.AbstractADERDGActionSet.

Definition at line 210 of file Correction.py.

◆ get_body_of_operation()

exahype2.solvers.aderdg.actionsets.Correction.Correction.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 176 of file Correction.py.

References 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.aderdg.actionsets.Correction.Correction._Template_CorrectorAllocations, exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_CustomRiemannSolver, exahype2.solvers.aderdg.actionsets.Prediction.Prediction._Template_CustomRiemannSolver, exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_FaceIntegral, exahype2.solvers.aderdg.actionsets.Prediction.Prediction._Template_FaceIntegral, exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_RiemannSolver, exahype2.solvers.aderdg.actionsets.Prediction.Prediction._Template_RiemannSolver, exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_TouchCellFirstTime, peano4.toolbox.blockstructured.DynamicAMR.DynamicAMR._Template_TouchCellFirstTime, exahype2.grid.FaceLabel.UpdateFaceLabel._Template_TouchFaceFirstTime, exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_TouchFaceFirstTime, exahype2.solvers.fv.actionsets.DynamicAMR.DynamicAMR._Template_TouchFaceFirstTime, exahype2.solvers.rkfd.actionsets.DynamicAMR.DynamicAMR._Template_TouchFaceFirstTime, peano4.toolbox.blockstructured.DynamicAMR.DynamicAMR._Template_TouchFaceFirstTime, peano4.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation._Template_TouchFaceFirstTime, exahype2.solvers.aderdg.actionsets.Correction.Correction._use_custom_riemann_solver, exahype2.solvers.aderdg.actionsets.Prediction.Prediction._use_custom_riemann_solver, ScenarioFactory.createScenario(), 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:

◆ get_includes()

Field Documentation

◆ _guard

◆ _is_linear

◆ _riemann_guard

exahype2.solvers.aderdg.actionsets.Correction.Correction._riemann_guard
protected

Definition at line 169 of file Correction.py.

◆ _Template_CorrectorAllocations

str exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_CorrectorAllocations
staticprotected
Initial value:
= """
const int fluxElementsPerFace = kernels::{{SOLVER_NAME}}::getBndFluxSize();
"""

Definition at line 153 of file Correction.py.

Referenced by exahype2.solvers.aderdg.actionsets.Correction.Correction.get_body_of_operation().

◆ _Template_CustomRiemannSolver

str exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_CustomRiemannSolver
staticprotected
Initial value:
= """
repositories::{{SOLVER_INSTANCE}}.riemannSolver(
FL,
FR,
QL,
QR,
timeStamp,
timeStepSize,
faceCentre,
marker.h(),
direction,
isBoundary,
faceNumber
);
"""

Definition at line 125 of file Correction.py.

Referenced by exahype2.solvers.aderdg.actionsets.Correction.Correction.get_body_of_operation(), and exahype2.solvers.aderdg.actionsets.Prediction.Prediction.get_body_of_operation().

◆ _Template_FaceIntegral

str exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_FaceIntegral
staticprotected
Initial value:
= """
const double inverseDxDirection = 1.0 / marker.h()[d];
kernels::{{SOLVER_NAME}}::faceIntegral(
cellData.QIn[0],
FIn,
direction,
orientation,
inverseDxDirection,
timeStepSize
);
"""

Definition at line 141 of file Correction.py.

Referenced by exahype2.solvers.aderdg.actionsets.Correction.Correction.get_body_of_operation(), and exahype2.solvers.aderdg.actionsets.Prediction.Prediction.get_body_of_operation().

◆ _Template_RiemannSolver

str exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_RiemannSolver
staticprotected
Initial value:
= """
kernels::{{SOLVER_NAME}}::riemannSolver<{{CORRECTOR_COMPUTATION_PRECISION}}>(
repositories::{{SOLVER_INSTANCE}},
FL,
FR,
QL,
QR,
timeStamp,
timeStepSize,
faceCentre,
marker.h(),
direction
);
"""

Definition at line 110 of file Correction.py.

Referenced by exahype2.solvers.aderdg.actionsets.Correction.Correction.get_body_of_operation(), and exahype2.solvers.aderdg.actionsets.Prediction.Prediction.get_body_of_operation().

◆ _Template_TouchCellFirstTime

str exahype2.solvers.aderdg.actionsets.Correction.Correction._Template_TouchCellFirstTime
staticprotected

◆ _Template_TouchFaceFirstTime

◆ _use_custom_riemann_solver

exahype2.solvers.aderdg.actionsets.Correction.Correction._use_custom_riemann_solver
protected

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