Peano
Loading...
Searching...
No Matches
ProjectPatchOntoFaces.py
Go to the documentation of this file.
1# This file is part of the ExaHyPE2 project. For conditions of distribution and
2# use, please see the copyright notice at www.peano-framework.org
4
5
6class ProjectPatchOntoFaces(toolbox.blockstructured.api.ProjectPatchOntoFaces):
7 """!
8
9 Project a Finite Volume patch's data onto the overlap held on its
10 surrounding faces, so the halo layers can be reconstructed from it later
11 on - @see toolbox.blockstructured.api.ReconstructPatchWithHalo.
12
13 Ported from the legacy python/exahype2/solvers/fv/actionsets/ProjectPatchOntoFaces.py,
14 slimmed down: the legacy version additionally set the isUpdated()/
15 UpdatedTimeStamp() face metadata (read solver._face_label/solver._cell_label)
16 so exahype2.solvers.fv.actionsets.RollOverUpdatedFace knew which half of a
17 face had actually been written. The new exahype2.api's data structures
18 (@see exahype2.api.fv.RusanovWithExplicitEuler) do not create a cell/face
19 label yet, and RollOverUpdatedFace has not been ported either, so this
20 version does purely what the base class
21 toolbox.blockstructured.api.ProjectPatchOntoFaces already does:
22 copy solver._patch's boundary layer into solver._patch_overlap_update.
23 Once cell/face labels exist in the new API, the metadata-update behaviour
24 can be reinstated here.
25
26 """
27
28 def __init__(self, patch, patch_overlap_update, guard, includes):
29 """!
30
31 patch: peano4.api.datamodel.Patch
32 The cell-associated patch to project onto its surrounding faces -
33 @see exahype2.api.fv.RusanovWithExplicitEuler.
34
35 patch_overlap_update: peano4.api.datamodel.Patch
36 The face-associated overlap patch to project patch's boundary
37 layer into - @see exahype2.api.fv.RusanovWithExplicitEuler.
38
39 guard: str
40 C++ boolean expression, evaluated per cell in touchCellLastTime,
41 guarding whether that cell's patch is projected onto its faces.
42
43 includes: str
44 Additional includes this action set's generated code needs -
45 callers typically pass solver._get_default_includes() +
46 solver.user_solver_includes.
47
48 """
49 super().__init__(
50 patch,
51 patch_overlap_update,
52 guard,
53 includes,
54 )
55
57 return __name__.replace(".py", "").replace(".", "_")
Project a Finite Volume patch's data onto the overlap held on its surrounding faces,...
__init__(self, patch, patch_overlap_update, guard, includes)
patch: peano4.api.datamodel.Patch The cell-associated patch to project onto its surrounding faces -