Peano
Loading...
Searching...
No Matches
benchmarks::exahype2::ccz4::CCZ4SBH_FV Class Reference

#include <CCZ4SBH_FV.h>

Inheritance diagram for benchmarks::exahype2::ccz4::CCZ4SBH_FV:
Collaboration diagram for benchmarks::exahype2::ccz4::CCZ4SBH_FV:

Public Member Functions

 CCZ4SBH_FV ()
 Initialise the two punctures object if required.
virtual void initialCondition (double *NOALIAS Q, const tarch::la::Vector< DIMENSIONS, double > &volumeCentre, const tarch::la::Vector< DIMENSIONS, double > &volumeH, bool gridIsConstructed) override
void reduceAdmissibleTimeStepSize (double timeStepSize)
 Overwrite limiters time step size.
virtual void startTimeStep (double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) override
 Call superclass and after that report/maintain _numberOfPatches.
virtual void finishTimeStep () override
 Call superclass and after that report/maintain _numberOfPatches.
void incNumberOfPatches ()

Static Public Member Functions

static bool isCellOverlappingWithBHImpactArea (const peano4::datamanagement::CellMarker &marker)
 Is octant area overlapping with BH impact area.
static bool areAllFaceConnectedCellsOverlappingWithBHImpactArea (const peano4::datamanagement::CellMarker &marker)
static bool areBothAdjacentCellsOverlappingWithBHImpactArea (const peano4::datamanagement::FaceMarker &marker)
 Check two adjacent octants.
static bool isOneAdjacentCellOverlappingWithBHImpactArea (const peano4::datamanagement::FaceMarker &marker)
static bool areBothAdjacentCellsOverlappingWithBHImpactArea (const peano4::datamanagement::CellMarker &marker, int faceNumber)
 Check if the faceNumberth adjacent face is adjacent to inside cells.

Static Private Member Functions

static bool isCellOverlappingWithBHImpactArea (const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellH)

Private Attributes

int _numberOfPatches

Static Private Attributes

static tarch::logging::Log _log
static tarch::multicore::BooleanSemaphore _semaphore

Detailed Description

Definition at line 26 of file CCZ4SBH_FV.h.

Constructor & Destructor Documentation

◆ CCZ4SBH_FV()

benchmarks::exahype2::ccz4::CCZ4SBH_FV::CCZ4SBH_FV ( )

Initialise the two punctures object if required.

Definition at line 57 of file CCZ4SBH_FV.cpp.

References benchmarks::exahype2::ccz4::prepareTwoPunctures().

Here is the call graph for this function:

Member Function Documentation

◆ areAllFaceConnectedCellsOverlappingWithBHImpactArea()

bool benchmarks::exahype2::ccz4::CCZ4SBH_FV::areAllFaceConnectedCellsOverlappingWithBHImpactArea ( const peano4::datamanagement::CellMarker & marker)
static

Definition at line 83 of file CCZ4SBH_FV.cpp.

References isCellOverlappingWithBHImpactArea().

Here is the call graph for this function:

◆ areBothAdjacentCellsOverlappingWithBHImpactArea() [1/2]

bool benchmarks::exahype2::ccz4::CCZ4SBH_FV::areBothAdjacentCellsOverlappingWithBHImpactArea ( const peano4::datamanagement::CellMarker & marker,
int faceNumber )
static

Check if the faceNumberth adjacent face is adjacent to inside cells.

So first of all, we check if the current cell is overlapping with the BH area. If this is not the case, we can return false immediately. Otherwise, we can move one cell left, right, up, down, front or left and check for this cell as well.

Definition at line 103 of file CCZ4SBH_FV.cpp.

References isCellOverlappingWithBHImpactArea().

Here is the call graph for this function:

◆ areBothAdjacentCellsOverlappingWithBHImpactArea() [2/2]

bool benchmarks::exahype2::ccz4::CCZ4SBH_FV::areBothAdjacentCellsOverlappingWithBHImpactArea ( const peano4::datamanagement::FaceMarker & marker)
static

Check two adjacent octants.

Each face has to adjacent octants. We check if isCellOverlappingWithBHImpactArea() holds for both of them. Delete logic to isCellOverlappingWithBHImpactArea().

Definition at line 116 of file CCZ4SBH_FV.cpp.

References isCellOverlappingWithBHImpactArea().

Here is the call graph for this function:

◆ finishTimeStep()

void benchmarks::exahype2::ccz4::CCZ4SBH_FV::finishTimeStep ( )
overridevirtual

Call superclass and after that report/maintain _numberOfPatches.

Definition at line 162 of file CCZ4SBH_FV.cpp.

References _numberOfPatches.

◆ incNumberOfPatches()

void benchmarks::exahype2::ccz4::CCZ4SBH_FV::incNumberOfPatches ( )

Definition at line 168 of file CCZ4SBH_FV.cpp.

References _numberOfPatches, and _semaphore.

◆ initialCondition()

void benchmarks::exahype2::ccz4::CCZ4SBH_FV::initialCondition ( double *NOALIAS Q,
const tarch::la::Vector< DIMENSIONS, double > & volumeCentre,
const tarch::la::Vector< DIMENSIONS, double > & volumeH,
bool gridIsConstructed )
overridevirtual

Definition at line 59 of file CCZ4SBH_FV.cpp.

References applications::exahype2::ccz4::ApplyTwoPunctures(), and benchmarks::exahype2::ccz4::twoPunctures.

Here is the call graph for this function:

◆ isCellOverlappingWithBHImpactArea() [1/2]

bool benchmarks::exahype2::ccz4::CCZ4SBH_FV::isCellOverlappingWithBHImpactArea ( const peano4::datamanagement::CellMarker & marker)
static

Is octant area overlapping with BH impact area.

Any unrefined octant overlapping with the impact area should hold a FV solution. Delete logic to isCellOverlappingWithBHImpactArea().

Definition at line 77 of file CCZ4SBH_FV.cpp.

References isCellOverlappingWithBHImpactArea().

Referenced by areAllFaceConnectedCellsOverlappingWithBHImpactArea(), areBothAdjacentCellsOverlappingWithBHImpactArea(), areBothAdjacentCellsOverlappingWithBHImpactArea(), isCellOverlappingWithBHImpactArea(), and isOneAdjacentCellOverlappingWithBHImpactArea().

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

◆ isCellOverlappingWithBHImpactArea() [2/2]

bool benchmarks::exahype2::ccz4::CCZ4SBH_FV::isCellOverlappingWithBHImpactArea ( const tarch::la::Vector< DIMENSIONS, double > & cellCentre,
const tarch::la::Vector< DIMENSIONS, double > & cellH )
staticprivate

Definition at line 146 of file CCZ4SBH_FV.cpp.

◆ isOneAdjacentCellOverlappingWithBHImpactArea()

bool benchmarks::exahype2::ccz4::CCZ4SBH_FV::isOneAdjacentCellOverlappingWithBHImpactArea ( const peano4::datamanagement::FaceMarker & marker)
static

Definition at line 131 of file CCZ4SBH_FV.cpp.

References isCellOverlappingWithBHImpactArea().

Here is the call graph for this function:

◆ reduceAdmissibleTimeStepSize()

void benchmarks::exahype2::ccz4::CCZ4SBH_FV::reduceAdmissibleTimeStepSize ( double timeStepSize)

Overwrite limiters time step size.

The FV solver calculates its admissible time step size in finishTimeStep(). So you can always overwrite it in startTimeStep(). Due to stability reasons, you should always reduce the admissible time step size but never ever increase it.

Definition at line 72 of file CCZ4SBH_FV.cpp.

References timeStepSize.

◆ startTimeStep()

void benchmarks::exahype2::ccz4::CCZ4SBH_FV::startTimeStep ( double globalMinTimeStamp,
double globalMaxTimeStamp,
double globalMinTimeStepSize,
double globalMaxTimeStepSize )
overridevirtual

Call superclass and after that report/maintain _numberOfPatches.

Definition at line 152 of file CCZ4SBH_FV.cpp.

References _numberOfPatches.

Field Documentation

◆ _log

tarch::logging::Log benchmarks::exahype2::ccz4::CCZ4SBH_FV::_log
staticprivate

Definition at line 28 of file CCZ4SBH_FV.h.

◆ _numberOfPatches

int benchmarks::exahype2::ccz4::CCZ4SBH_FV::_numberOfPatches
private

Definition at line 31 of file CCZ4SBH_FV.h.

Referenced by finishTimeStep(), incNumberOfPatches(), and startTimeStep().

◆ _semaphore

tarch::multicore::BooleanSemaphore benchmarks::exahype2::ccz4::CCZ4SBH_FV::_semaphore
staticprivate

Definition at line 29 of file CCZ4SBH_FV.h.

Referenced by incNumberOfPatches().


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