Peano
Loading...
Searching...
No Matches
exahype2.grid.FaceLabel.UpdateFaceLabel Class Reference
Inheritance diagram for exahype2.grid.FaceLabel.UpdateFaceLabel:
Collaboration diagram for exahype2.grid.FaceLabel.UpdateFaceLabel:

Public Member Functions

 get_attribute_name (solver_name)
 
 __init__ (self, solver_name)
 
 get_constructor_body (self)
 Define a tailored constructor body.
 
 get_destructor_body (self)
 
 get_action_set_name (self)
 Return unique action set name.
 
 user_should_modify_template (self)
 Is the user allowed to modify the output.
 
 get_body_of_operation (self, operation_name)
 Return actual C++ code snippets to be inserted into C++ code.
 
 get_attributes (self)
 Return attributes as copied and pasted into the generated class.
 
 get_includes (self)
 Return include statements that you need.
 
- Public Member Functions inherited from peano4.solversteps.ActionSet.ActionSet
 get_static_initialisations (self, full_qualified_classname)
 
 get_body_of_getGridControlEvents (self)
 
 get_body_of_prepareTraversal (self)
 
 get_body_of_unprepareTraversal (self)
 

Protected Attributes

 _solver_name
 

Static Protected Attributes

str _Template_TouchFaceFirstTime
 
str _Template_CreateFace
 
str _Template_CreateHangingFace
 
str _Template_DestroyHangingFace
 
str _Template_TouchFaceLastTime
 

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

Definition at line 10 of file FaceLabel.py.

Constructor & Destructor Documentation

◆ __init__()

exahype2.grid.FaceLabel.UpdateFaceLabel.__init__ ( self,
solver_name )

Reimplemented from peano4.solversteps.ActionSet.ActionSet.

Definition at line 86 of file FaceLabel.py.

References exahype2.grid.FaceLabel.UpdateFaceLabel.__init__().

Referenced by exahype2.grid.FaceLabel.UpdateFaceLabel.__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.grid.FaceLabel.UpdateFaceLabel.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 peano4.solversteps.ActionSet.ActionSet.

Definition at line 147 of file FaceLabel.py.

◆ get_attribute_name()

exahype2.grid.FaceLabel.UpdateFaceLabel.get_attribute_name ( solver_name)

Definition at line 11 of file FaceLabel.py.

◆ get_attributes()

exahype2.grid.FaceLabel.UpdateFaceLabel.get_attributes ( self)

Return attributes as copied and pasted into the generated class.

Please note that action sets are not persistent, i.e. there is one object creation per grid sweep per tree.

Reimplemented from peano4.solversteps.ActionSet.ActionSet.

Definition at line 175 of file FaceLabel.py.

◆ get_body_of_operation()

exahype2.grid.FaceLabel.UpdateFaceLabel.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 155 of file FaceLabel.py.

References exahype2.grid.CellLabel.UpdateCellLabel._solver_name, exahype2.grid.FaceLabel.UpdateFaceLabel._solver_name, exahype2.postprocessing.PerformanceData.PerformanceData._solver_name, exahype2.grid.FaceLabel.UpdateFaceLabel._Template_CreateFace, exahype2.grid.FaceLabel.UpdateFaceLabel._Template_CreateHangingFace, exahype2.solvers.aderdg.actionsets.DynamicAMR.DynamicAMR._Template_CreateHangingFace, exahype2.solvers.fv.actionsets.DynamicAMR.DynamicAMR._Template_CreateHangingFace, exahype2.solvers.rkfd.actionsets.DynamicAMR.DynamicAMR._Template_CreateHangingFace, peano4.toolbox.blockstructured.DynamicAMR.DynamicAMR._Template_CreateHangingFace, peano4.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation._Template_CreateHangingFace, exahype2.grid.FaceLabel.UpdateFaceLabel._Template_DestroyHangingFace, exahype2.solvers.aderdg.actionsets.DynamicAMR.DynamicAMR._Template_DestroyHangingFace, exahype2.solvers.fv.actionsets.DynamicAMR.DynamicAMR._Template_DestroyHangingFace, exahype2.solvers.rkfd.actionsets.DynamicAMR.DynamicAMR._Template_DestroyHangingFace, peano4.toolbox.blockstructured.DynamicAMR.DynamicAMR._Template_DestroyHangingFace, peano4.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation._Template_DestroyHangingFace, 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, and exahype2.grid.FaceLabel.UpdateFaceLabel._Template_TouchFaceLastTime.

◆ get_constructor_body()

exahype2.grid.FaceLabel.UpdateFaceLabel.get_constructor_body ( self)

Define a tailored constructor body.

By default, the constructor of an action set is empty. If you you assign attributes to your action set, you however might want to initialise them here. We do not support initialisation lists, to all has to be done via setters unless you create attributes on the heap.

The constructor's signature will look similar to

   EnumerateAndInitSolution2petsc_actionsets_InitVertexDoFs0(int treeNumber);

where the treeNumber is -1 if this is the global instance of the action set owned by a rank, or a number greater or equal 0 if this action set is a clone of the glocal action set that's used by one tree traversal.

See also
get_attributes() to add attributes to your action set

Reimplemented from peano4.solversteps.ActionSet.ActionSet.

Definition at line 92 of file FaceLabel.py.

◆ get_destructor_body()

exahype2.grid.FaceLabel.UpdateFaceLabel.get_destructor_body ( self)

Reimplemented from peano4.solversteps.ActionSet.ActionSet.

Definition at line 96 of file FaceLabel.py.

◆ get_includes()

exahype2.grid.FaceLabel.UpdateFaceLabel.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 peano4.solversteps.ActionSet.ActionSet.

Definition at line 179 of file FaceLabel.py.

◆ user_should_modify_template()

exahype2.grid.FaceLabel.UpdateFaceLabel.user_should_modify_template ( self)

Is the user allowed to modify the output.

Return whether you expect the user to modify the generated code. If this is the case, then the API places the generated output in the directory actions. Otherwise, it goes into the observer directory and will be overwritten in each and every Python run.

Reimplemented from peano4.solversteps.ActionSet.ActionSet.

Definition at line 151 of file FaceLabel.py.

Field Documentation

◆ _solver_name

exahype2.grid.FaceLabel.UpdateFaceLabel._solver_name
protected

◆ _Template_CreateFace

str exahype2.grid.FaceLabel.UpdateFaceLabel._Template_CreateFace
staticprotected
Initial value:
= """
logTraceInWith1Argument( "createPersistentFace(...)", marker.toString() );
tarch::la::Vector<Dimensions, double> offset(DomainOffset);
tarch::la::Vector<Dimensions, double> size(DomainSize);
bool isBoundary = false;
for (int d=0; d<Dimensions; d++) {
isBoundary |= tarch::la::equals( marker.x()(d), offset(d) );
isBoundary |= tarch::la::equals( marker.x()(d), offset(d) + size(d) );
}
fineGridFace{{FACE_LABEL_NAME}}.setBoundary( isBoundary );
fineGridFace{{FACE_LABEL_NAME}}.setIsHanging( false );
fineGridFace{{FACE_LABEL_NAME}}.setAboveHanging( false );
fineGridFace{{FACE_LABEL_NAME}}.setNewAboveHanging( false );
fineGridFace{{FACE_LABEL_NAME}}.setUpdatedTimeStamp( 0.0 );
fineGridFace{{FACE_LABEL_NAME}}.setNewTimeStamp( 0.0 );
fineGridFace{{FACE_LABEL_NAME}}.setOldTimeStamp( 0.0 );
logTraceOutWith1Argument( "createPersistentFace(...)", fineGridFace{{FACE_LABEL_NAME}}.toString() );
"""

Definition at line 106 of file FaceLabel.py.

Referenced by exahype2.grid.FaceLabel.UpdateFaceLabel.get_body_of_operation().

◆ _Template_CreateHangingFace

str exahype2.grid.FaceLabel.UpdateFaceLabel._Template_CreateHangingFace
staticprotected
Initial value:
= """
logTraceInWith1Argument( "createHangingFace(...)", marker.toString() );
fineGridFace{{FACE_LABEL_NAME}}.setIsHanging( true );
coarseGridFaces{{FACE_LABEL_NAME}}(marker.getSelectedFaceNumber()).setNewAboveHanging( true );
logTraceOutWith1Argument( "createHangingFace(...)", fineGridFace{{FACE_LABEL_NAME}}.toString() );
"""

Definition at line 128 of file FaceLabel.py.

Referenced by exahype2.grid.FaceLabel.UpdateFaceLabel.get_body_of_operation(), exahype2.solvers.aderdg.actionsets.DynamicAMR.DynamicAMR.get_body_of_operation(), peano4.toolbox.blockstructured.DynamicAMR.DynamicAMR.get_body_of_operation(), and peano4.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.get_body_of_operation().

◆ _Template_DestroyHangingFace

◆ _Template_TouchFaceFirstTime

str exahype2.grid.FaceLabel.UpdateFaceLabel._Template_TouchFaceFirstTime
staticprotected

◆ _Template_TouchFaceLastTime

str exahype2.grid.FaceLabel.UpdateFaceLabel._Template_TouchFaceLastTime
staticprotected
Initial value:
= """
logTraceInWith1Argument( "touchFaceLastTime(...)", marker.toString() );
fineGridFace{{FACE_LABEL_NAME}}.setAboveHanging( fineGridFace{{FACE_LABEL_NAME}}.getNewAboveHanging() );
logTraceOutWith1Argument( "touchFaceLastTime(...)", fineGridFace{{FACE_LABEL_NAME}}.toString() );
"""

Definition at line 140 of file FaceLabel.py.

Referenced by exahype2.grid.FaceLabel.UpdateFaceLabel.get_body_of_operation().


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