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

#include <CCZ4SBH_FD4.h>

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

Public Member Functions

 CCZ4SBH_FD4 ()
 Initialise the two punctures object if required.
 
virtual::exahype2::RefinementCommand refinementCriterion (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &meshCellCentre, const tarch::la::Vector< Dimensions, double > &meshCellH, double t) override
 Refinement criterion.
 
virtual void initialCondition (double *__restrict__ 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.
 

Static Private Attributes

static tarch::logging::Log _log
 

Detailed Description

Definition at line 22 of file CCZ4SBH_FD4.h.

Constructor & Destructor Documentation

◆ CCZ4SBH_FD4()

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().

Here is the call graph for this function:

Member Function Documentation

◆ initialCondition()

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

◆ refinementCriterion()

exahype2::RefinementCommand benchmarks::exahype2::ccz4::CCZ4SBH_FD4::refinementCriterion ( const double *__restrict__ Q,
const tarch::la::Vector< Dimensions, double > & meshCellCentre,
const tarch::la::Vector< Dimensions, double > & meshCellH,
double t )
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.

Parameters
QThis 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 exahype2::Keep, tarch::la::norm2(), and exahype2::Refine.

Here is the call graph for this function:

◆ startTimeStep()

void benchmarks::exahype2::ccz4::CCZ4SBH_FD4::startTimeStep ( double globalMinTimeStamp,
double globalMaxTimeStamp,
double globalMinTimeStepSize,
double globalMaxTimeStepSize )
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 _admissibleTimeStepSize(), logInfo, and tarch::la::smaller().

Here is the call graph for this function:

Field Documentation

◆ _log

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

Definition at line 24 of file CCZ4SBH_FD4.h.


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