Peano
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. More...
 
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. More...
 
virtual void startTimeStep (double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) override
 Call superclass and after that report/maintain _numberOfPatches. More...
 
virtual void finishTimeStep () override
 Call superclass and after that report/maintain _numberOfPatches. More...
 
void incNumberOfPatches ()
 

Static Public Member Functions

static bool isCellOverlappingWithBHImpactArea (const peano4::datamanagement::CellMarker &marker)
 Is octant area overlapping with BH impact area. More...
 
static bool areAllFaceConnectedCellsOverlappingWithBHImpactArea (const peano4::datamanagement::CellMarker &marker)
 
static bool areBothAdjacentCellsOverlappingWithBHImpactArea (const peano4::datamanagement::FaceMarker &marker)
 Check two adjacent octants. More...
 
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. More...
 

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 csv_to_plot::marker.

◆ 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 csv_to_plot::marker.

◆ 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 csv_to_plot::marker.

◆ 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.

◆ incNumberOfPatches()

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

Definition at line 168 of file CCZ4SBH_FV.cpp.

◆ 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 csv_to_plot::marker.

◆ 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.

References TP::Utilities::norm2().

Here is the call graph for this function:

◆ isOneAdjacentCellOverlappingWithBHImpactArea()

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

Definition at line 131 of file CCZ4SBH_FV.cpp.

References csv_to_plot::marker.

◆ 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.

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.

◆ _semaphore

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

Definition at line 29 of file CCZ4SBH_FV.h.


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