![]() |
Peano
|
#include <CCZ4SBH_FD4.h>
Public Member Functions | |
CCZ4SBH_FD4 () | |
Initialise the two punctures object if required. More... | |
virtual ::exahype2::RefinementCommand | refinementCriterion (const double *NOALIAS Q, const tarch::la::Vector< DIMENSIONS, double > &meshCellCentre, const tarch::la::Vector< DIMENSIONS, double > &meshCellH, double t) override |
Refinement criterion. More... | |
virtual void | initialCondition (double *NOALIAS Q, const tarch::la::Vector< DIMENSIONS, double > &meshCellCentre, const tarch::la::Vector< DIMENSIONS, double > &meshCellH, bool gridIsConstructed) override |
virtual void | startTimeStep (double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) override |
Start a new time step. More... | |
Static Private Attributes | |
static tarch::logging::Log | _log |
Definition at line 25 of file CCZ4SBH_FD4.h.
benchmarks::exahype2::ccz4::CCZ4SBH_FD4::CCZ4SBH_FD4 | ( | ) |
Initialise the two punctures object if required.
Definition at line 58 of file CCZ4SBH_FD4.cpp.
References benchmarks::exahype2::ccz4::prepareTwoPunctures().
|
overridevirtual |
Definition at line 60 of file CCZ4SBH_FD4.cpp.
References applications::exahype2::ccz4::ApplyTwoPunctures(), and benchmarks::exahype2::ccz4::twoPunctures.
|
override |
Refinement criterion.
ExaHypE2 is guided by a maximum and minimum mesh (patch) size. All (dynamic) AMR is constrained by these values, i.e. if your mesh is coarser than the maximum mesh size, ExaHyPE 2 will automatically refine. If you try to refine further than the minimum mesh size, ExaHyPE 2 will ignore any refinement.
Consequently, you are fine if you work with a regular mesh: You set the maximum mesh size, and you leave everything else to Peano 4/ExaHyPE 2. If you want to have an adaptive mesh, use this routine to implement the refinement pattern.
Q | This is the (current) solution. The data is not set to a valid value throughout grid construction. That is: If t equals 0.0, you cannot assume that Q is properly initialised. Therefore, Q usually is only evaluated by dynamic AMR codes which make the solution follow |
Definition at line 47 of file CCZ4SBH_FD4.cpp.
References TP::Utilities::norm2().
|
overridevirtual |
Start a new time step.
First, we call the superclass' routine. This way, attributes such as isFirstGridSweepOfTimeStep() are correct. The time step size dumped is wrong. We might amend it later.
If we are in the first time step, we know that all of the solvers have successfully restricted their admissible time step size. Therefore, we synchronise all these time step sizes.
Definition at line 73 of file CCZ4SBH_FD4.cpp.
References TP::min().
|
staticprivate |
Definition at line 27 of file CCZ4SBH_FD4.h.