![]() |
Peano
|
#include <CCZ4SBH_FV.h>
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 |
Definition at line 26 of file CCZ4SBH_FV.h.
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().
|
static |
Definition at line 83 of file CCZ4SBH_FV.cpp.
References csv_to_plot::marker.
|
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.
|
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.
|
overridevirtual |
Call superclass and after that report/maintain _numberOfPatches.
Definition at line 162 of file CCZ4SBH_FV.cpp.
void benchmarks::exahype2::ccz4::CCZ4SBH_FV::incNumberOfPatches | ( | ) |
Definition at line 168 of file CCZ4SBH_FV.cpp.
|
overridevirtual |
Definition at line 59 of file CCZ4SBH_FV.cpp.
References applications::exahype2::ccz4::ApplyTwoPunctures(), and benchmarks::exahype2::ccz4::twoPunctures.
|
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.
|
staticprivate |
Definition at line 146 of file CCZ4SBH_FV.cpp.
References TP::Utilities::norm2().
|
static |
Definition at line 131 of file CCZ4SBH_FV.cpp.
References csv_to_plot::marker.
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.
|
overridevirtual |
Call superclass and after that report/maintain _numberOfPatches.
Definition at line 152 of file CCZ4SBH_FV.cpp.
|
staticprivate |
Definition at line 28 of file CCZ4SBH_FV.h.
|
private |
Definition at line 31 of file CCZ4SBH_FV.h.
|
staticprivate |
Definition at line 29 of file CCZ4SBH_FV.h.