Peano 4
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 *__restrict__ 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 16 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 14 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 40 of file CCZ4SBH_FV.cpp.

◆ 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 60 of file CCZ4SBH_FV.cpp.

◆ 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 73 of file CCZ4SBH_FV.cpp.

◆ finishTimeStep()

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

Call superclass and after that report/maintain _numberOfPatches.

Definition at line 119 of file CCZ4SBH_FV.cpp.

References logInfo.

◆ incNumberOfPatches()

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

Definition at line 125 of file CCZ4SBH_FV.cpp.

◆ initialCondition()

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

◆ 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 34 of file CCZ4SBH_FV.cpp.

◆ 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 103 of file CCZ4SBH_FV.cpp.

References tarch::la::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 88 of file CCZ4SBH_FV.cpp.

◆ 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 29 of file CCZ4SBH_FV.cpp.

References _admissibleTimeStepSize(), and assertion.

Here is the call graph for this function:

◆ 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 109 of file CCZ4SBH_FV.cpp.

Field Documentation

◆ _log

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

Definition at line 18 of file CCZ4SBH_FV.h.

◆ _numberOfPatches

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

Definition at line 21 of file CCZ4SBH_FV.h.

◆ _semaphore

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

Definition at line 19 of file CCZ4SBH_FV.h.


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