48 const double* NOALIAS Q,
49 const tarch::la::Vector<DIMENSIONS, double>& volumeX,
50 const tarch::la::Vector<DIMENSIONS, double>& meshCellH,
53 return tarch::la::norm2(volumeX) - std::sqrt(DIMENSIONS)*meshCellH(0) < BlackHoleFVRegion
54 ? ::exahype2::RefinementCommand::Refine
55 : ::exahype2::RefinementCommand::Keep;
69 double globalMinTimeStamp,
double globalMaxTimeStamp,
double globalMinTimeStepSize,
double globalMaxTimeStepSize
71 AbstractCCZ4SBH_FD4::startTimeStep(
72 globalMinTimeStamp, globalMaxTimeStamp, globalMinTimeStepSize, globalMaxTimeStepSize
75#if defined(CoupleWithFV)
76 if (isFirstGridSweepOfTimeStep()) {
77 double fvTimeStepSize = repositories::instanceOfCCZ4SBH_FV.getAdmissibleTimeStepSize();
78 double newTimeStepSize = std::min(fvTimeStepSize, _admissibleTimeStepSize);
79 if (tarch::la::smaller(newTimeStepSize, fvTimeStepSize)) {
82 "reduce admissible time step size from dt_{dg}="
83 << _admissibleTimeStepSize <<
" vs dt_{fv}=" << fvTimeStepSize <<
" to dt=" << newTimeStepSize
84 <<
" (previously reported time step sizes for this step are invalid)"
87 _admissibleTimeStepSize = newTimeStepSize;
88 repositories::instanceOfCCZ4SBH_FV.reduceAdmissibleTimeStepSize(newTimeStepSize);
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.