|
Peano
|
Roll over the face data, and set the ghost volumes along the domain boundary through exahype2.api.SommerfeldBoundaryConditions first. More...


Public Member Functions | |
| __init__ (self, solver, patch_overlap_current_time_step, patch_overlap_update, guard, includes, origin, time_step_size=None) | |
| get_body_of_operation (self, operation_name) | |
| Return actual C++ code snippets to be inserted into C++ code. | |
| get_action_set_name (self) | |
| Return unique action set name. | |
| get_includes (self) | |
| Return include statements that you need. | |
Public Member Functions inherited from exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace | |
| get_guard_of_operation (self, operation_name) | |
| Return the guard of an operation. | |
| user_should_modify_template (self) | |
| Is the user allowed to modify the output. | |
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_body_of_createGridControlEventsForNextTraversal (self) | |
| Return the grid control events that this action set wants to trigger. | |
| 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_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. | |
Static Public Member Functions | |
| create_roll_over (solver, exahype2_project, guard, includes, time_step_size=None) | |
| Create the roll over of the solver's face data. | |
Protected Attributes | |
| _time_step_size | |
Additional Inherited Members | |
Data Fields inherited from exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace | |
| additional_includes | |
| d | |
Data Fields inherited from peano4.api.solversteps.ActionSet.ActionSet | |
| descend_invocation_order | |
| parallel | |
Roll over the face data, and set the ghost volumes along the domain boundary through exahype2.api.SommerfeldBoundaryConditions first.
The action set replaces exahype2.api.fv.actionsets.RollOverUpdatedFace if the solver uses Sommerfeld boundary conditions. Such a solver has no separate boundary task (exahype2.api.fv.actionsets.ApplyDirichletBoundaryConditions). In touchFaceLastTime(), the action set first writes the ghost volumes into the ghost half of patch_overlap_update, and then rolls over both halves into patch_overlap_current_time_step like RollOverUpdatedFace. Faces within the domain and faces along periodic axes are rolled over unchanged. There are two variants:
The C++ header documents the conditions, their discretisation and why they replace the roll over.
Definition at line 11 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
| exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.__init__ | ( | self, | |
| solver, | |||
| patch_overlap_current_time_step, | |||
| patch_overlap_update, | |||
| guard, | |||
| includes, | |||
| origin, | |||
time_step_size = None |
|||
| ) |
| solver | exahype2.api.Solver The solver whose maxEigenvalue(), sommerfeldFarFieldSolution() and initPointWisely() are invoked. |
| patch_overlap_current_time_step | peano4.api.datamodel.Patch |
| patch_overlap_update | peano4.api.datamodel.Patch |
| guard | str |
| includes | str |
| origin | List[float] Centre of the system, one entry per dimension, exahype2.api.blockstructured.SommerfeldBoundaryConditions.SommerfeldBoundaryConditions.get_origin(). |
| time_step_size | str C++ expression for the time step size by which the ghost volumes are advanced, or None to initialise the ghost volumes with the initial condition instead. |
Reimplemented from exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.
Definition at line 93 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.


|
static |
Create the roll over of the solver's face data.
| solver | exahype2.api.Solver The solver whose solver._patch_overlap_update is rolled over into solver._patch_overlap_current_time_step. Its boundary condition terms have to be consistent with the domain, exahype2.api.blockstructured.BoundaryConditions.get_boundary_conditions(). |
| exahype2_project | exahype2.api.Project Provides the periodic boundary conditions. |
| guard | str |
| includes | str |
| time_step_size | str |
Definition at line 168 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
| exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.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 exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.
Definition at line 155 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
| exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.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. The snippet is executed if and only if the guard returned by get_guard_of_operation() holds, i.e. the body should not evaluate the guard itself. See the section "Guard and body" in the class documentation.
Reimplemented from exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.
Definition at line 141 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
References solvers.fv.rusanov.SubcyclingFixedTimeStep.SubcyclingFixedTimeStep._time_step_size, solvers.fv.rusanov.SubcyclingFixedTimeStepWithEnclaveTasking.SubcyclingFixedTimeStepWithEnclaveTasking._time_step_size, exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions._time_step_size, exahype2.api.rkfd4.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions._time_step_size, solvers.aderdg.kernels.AMRRoutines.AMRRoutines.d, solvers.aderdg.kernels.CellData.CellData.d, solvers.aderdg.kernels.DGMatrices.DGMatrices.d, solvers.aderdg.kernels.FusedSpaceTimePredictorVolumeIntegral.FusedSpaceTimePredictorVolumeIntegral.d, solvers.aderdg.kernels.Quadrature.Quadrature.d, solvers.fv.actionsets.HandleBoundary.HandleBoundary.d, solvers.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.d, solvers.limiting.kernels.Limiter.Limiter.d, solvers.limiting.kernels.Quadrature.Quadrature.d, tracer.DumpTracerIntoDatabase.DumpTracerIntoDatabase.d, tracer.InsertParticlesFromFile.InsertParticlesFromFile.d, exahype2.api.fv.actionsets.ApplyDirichletBoundaryConditions.ApplyDirichletBoundaryConditions.d, exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.d, exahype2.api.rkfd4.actionsets.ApplyDirichletBoundaryConditions.ApplyDirichletBoundaryConditions.d, exahype2.api.rkfd4.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.d, exaparty.api.actionsets.Cleanup.Cleanup.d, exaparty.api.actionsets.DynamicMeshRefinementAnalysis.DynamicMeshRefinementAnalysis.d, exaparty.api.actionsets.ScatterGlobalMemory.ScatterGlobalMemory.d, exaparty.api.actionsets.SynchroniseVerticesWithPreviousMeshSweep.SynchroniseVerticesWithPreviousMeshSweep.d, exaparty.api.actionsets.UpdateParticleMarker.UpdateParticleMarker.d, exaparty.api.boundaryconditions.Fixed.Fixed.d, solvers.api.actionsets.CollocatedMGSingleThreaded.UpdateSolution.UpdateSolution.d, solvers.api.actionsets.CollocatedMGSolver.InitDofs.InitDofsCollocatedMG.d, solvers.api.actionsets.CollocatedMGSolver.Prolongation.Prolongation.d, solvers.api.actionsets.CollocatedMGSolver.ResetAndUpdateResidual.ResetAndUpdateResidual.d, solvers.api.actionsets.CollocatedMGSolver.Restriction.Restriction.d, solvers.api.actionsets.CollocatedMGSolver.UpdateSolution.UpdateSolution.d, solvers.api.actionsets.CollocatedSolver.InitDofs.InitDofsCollocated.d, solvers.api.actionsets.CollocatedSolver.ResetAndUpdateResidual.ResetAndUpdateResidual.d, solvers.api.actionsets.CollocatedSolver.UpdateSolution.UpdateSolution.d, ProjectResidualsAndDiagonalOntoFacets.ProjectResidualsAndDiagonalOntoFacets.d, UpdateCell.UpdateCell.d, UpdateFacets.UpdateFacets.d, solvers.api.actionsets.DGCGCoupling.AbstractDGCGCoupling.d, solvers.api.actionsets.DGCGCoupling.AdditiveDGCGCoupling.d, solvers.api.actionsets.DGCGCoupling.MultiplicativeDGCGCoupling.d, solvers.api.actionsets.DGSolver.ProjectIntoCellAndUpdateCellSolution.ProjectIntoCellAndUpdateCellSolution.d, solvers.api.actionsets.DGSolver.ProjectIntoCellAndUpdateCellSolutionWithTasks.ProjectIntoCellAndUpdateCellSolutionWithTasks.d, solvers.api.actionsets.DGSolver.ProjectOntoFaces.ProjectOntoFaces.d, solvers.api.actionsets.DGSolver.UpdateFaceSolution.UpdateFaceSolution.d, solvers.api.actionsets.DGSolver.UpdateResidual.UpdateResidual.d, solvers.api.actionsets.DGSolver.UpdateResidualWithTasks.UpdateResidualWithTasks.d, solvers.api.actionsets.InitHigherOrderDofs.InitHigherOrderDofs.d, solvers.api.actionsets.PlotDGDataInPeanoBlockFormat.PlotDGDataInPeanoBlockFormat.d, solvers.api.actionsets.PlotDGPatchesInPeanoBlockFormat.PlotDGPatchesInPeanoBlockFormat.d, solvers.api.actionsets.PlotVertexDataInPeanoBlockFormat.PlotVertexDataInPeanoBlockFormat.d, archive_AssemblePETSCMatrix.AssemblePETSCMatrixOnCellsAndFaces.d, api.actionsets.EnumerateDoFs.EnumerateDoFs.d, api.actionsets.ImposeDirichletBoundaryConditions.ImposeDirichletBoundaryConditions.d, api.actionsets.ImposeDirichletBoundaryConditionsWithInteriorPenaltyMethod.ImposeDirichletBoundaryConditionsWithInteriorPenaltyMethod.d, api.actionsets.InitCellDoFs.InitCellDoFs.d, api.actionsets.InitFaceDoFs.InitFaceDoFs.d, api.actionsets.InitPetsc.SendDofsToVertices.d, api.actionsets.InitVertexDoFs.InitVertexDoFs.d, api.actionsets.PlotDGDataInPeanoBlockFormat.PlotDGDataInPeanoBlockFormat.d, api.actionsets.PlotExactSolution.PlotExactSolution.d, api.actionsets.ProjectPETScSolutionBackOntoMesh.ProjectPETScSolutionOnCellsBackOntoMesh.d, api.actionsets.ProjectPETScSolutionBackOntoMesh.ProjectPETScSolutionOnVerticesBackOntoMesh.d, api.solvers.CollocatedLowOrderDiscretisation.AssemblePetscMatrix.d, api.solvers.DiscontinuousGalerkinDiscretisation.AssemblePetscMatrix.d, peano4.api.datamodel.ModelToDataRepository.ModelToDataRepository.d, peano4.api.output.Constants.Constants.d, peano4.api.output.Jinja2TemplatedHeaderFile.Jinja2TemplatedHeaderFile.d, peano4.api.output.Jinja2TemplatedHeaderImplementationFilePair.Jinja2TemplatedHeaderImplementationFilePair.d, peano4.api.output.Jinja2TemplateStringHeaderImplementationFilePair.Jinja2TemplateStringHeaderImplementationFilePair.d, peano4.api.output.Makefile.Makefile.d, peano4.api.output.Observer.Observer.d, peano4.api.output.TemplatedHeaderFile.TemplatedHeaderFile.d, peano4.api.output.TemplatedHeaderImplementationFilePair.TemplatedHeaderImplementationFilePair.d, peano4.api.runner.DefaultSequence.DefaultSequence.d, peano4.api.solversteps.StepsToStepRepository.StepsToStepRepository.d, peano4.api.toolbox.CreateRegularGrid.CreateRegularGrid.d, peano4.api.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.d, peano4.api.toolbox.multigrid.MatrixFreeJacobi.MatrixFreeJacobi.d, peano4.api.toolbox.multigrid.vertexbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.d, peano4.api.toolbox.particles.api.AbstractUpdateParticleGridAssociation.AbstractUpdateParticleGridAssociation.d, peano4.api.toolbox.particles.api.UpdateParallelState.UpdateParallelState.d, peano4.api.toolbox.particles.api.UpdateParticleGridAssociation_BucketSort.UpdateParticleGridAssociation_BucketSort.d, peano4.api.toolbox.particles.GatherParticlesInMemoryPool.GatherParticlesInMemoryPool.d, peano4.api.toolbox.particles.InsertParticlesAlongCartesianLayoutIntoUnrefinedCells.InsertParticlesAlongCartesianLayoutIntoUnrefinedCells.d, peano4.api.toolbox.particles.InsertParticlesByCoordinates.InsertParticlesByCoordinates.d, peano4.api.toolbox.particles.InsertRandomParticlesIntoUnrefinedCells.InsertRandomParticlesIntoUnrefinedCells.d, peano4.api.toolbox.particles.ParticleAMR.ParticleAMR.d, peano4.api.toolbox.particles.ParticleTreeAnalysis.ParticleTreeAnalysis.d, peano4.api.toolbox.particles.PlotParticlesInVTKFormat.PlotParticlesInVTKFormat.d, peano4.api.toolbox.particles.UpdateParticle_MultiLevelInteraction_Sets.UpdateParticle_MultiLevelInteraction_Sets.d, peano4.api.toolbox.particles.UpdateParticle_MultiLevelInteraction_StackOfLists.UpdateParticle_MultiLevelInteraction_StackOfLists.d, peano4.api.toolbox.particles.UpdateParticle_MultiLevelInteraction_StackOfLists_ContiguousParticles.UpdateParticle_MultiLevelInteraction_StackOfLists_ContiguousParticles.d, peano4.api.toolbox.particles.UpdateParticle_SingleLevelInteraction.UpdateParticle_SingleLevelInteraction.d, peano4.api.toolbox.particles.UpdateParticle_SingleLevelInteraction_ContiguousParticles.UpdateParticle_SingleLevelInteraction_ContiguousParticles.d, peano4.api.toolbox.PlotCellDataInPeanoBlockFormat.PlotCellDataInPeanoBlockFormat.d, peano4.api.toolbox.PlotGridInPeanoBlockFormat.PlotGridInPeanoBlockFormat.d, peano4.api.toolbox.PlotVertexDataInPeanoBlockFormat.PlotVertexDataInPeanoBlockFormat.d, api.BackupPatchOverlap.BackupPatchOverlap.d, api.DynamicAMR.DynamicAMR.d, api.InterpolateAndRestrictCells.InterpolateAndRestrictCells.d, api.InterpolateHangingFaces.InterpolateHangingFaces.d, api.PlotPatchesInPeanoBlockFormat.PlotPatchesInPeanoBlockFormat.d, api.PlotPatchesOverFacesInPeanoBlockFormat.PlotPatchesOverFacesInPeanoBlockFormat.d, api.ProjectPatchOntoFaces.ProjectPatchOntoFaces.d, api.RestrictHangingFaces.RestrictHangingFaces.d, DGCGCoupling.Test4Coupling.d, DGCGCoupling.Test5Coupling.d, DGCGCoupling.Test7Coupling.d, initCollocatedRandom.InitDofsCollocatedRandomRhs.d, initCollocatedRandom.InitCollocatedTest4.d, initCollocatedRandom.InitCollocatedTest5.d, InitDG.InitDofsDGTest1.d, InitDG.InitDofsIntermediatePhaseTest1.d, InitDG.InitDofsDGTest7.d, test8.InitDofsTest8.d, exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation(), exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.TemplateInitialGhostCells, exahype2.api.rkfd4.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.TemplateInitialGhostCells, exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.TemplateSommerfeldBoundaryConditions, and exahype2.api.rkfd4.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.TemplateSommerfeldBoundaryConditions.
Referenced by exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation(), and peano4.api.solversteps.ActionSet.ActionSet.get_implementation_of_operation().


| exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.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.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.
Definition at line 158 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.


|
protected |
Definition at line 134 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
Referenced by exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation(), and exahype2.api.rkfd4.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation().
|
static |
Definition at line 74 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
Referenced by exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation(), and exahype2.api.rkfd4.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation().
|
static |
Definition at line 43 of file RollOverUpdatedFaceWithSommerfeldBoundaryConditions.py.
Referenced by exahype2.api.fv.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation(), and exahype2.api.rkfd4.actionsets.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.RollOverUpdatedFaceWithSommerfeldBoundaryConditions.get_body_of_operation().