24 generated::kernels::limiter::Quadrature<double>::initQuadratureNodesAndWeights();
26 {{CONSTRUCTOR_IMPLEMENTATION}}
30{{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::~{{CLASSNAME}}(){
32 generated::kernels::limiter::Quadrature<double>::freeQuadratureNodesAndWeights();
37double {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getMinTimeStamp(
bool ofCurrentlyRunningGridSweep)
const {
38 return repositories::{{REGULAR_SOLVER_INSTANCE}}.getMinTimeStamp();
42double {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getMaxTimeStamp(
bool ofCurrentlyRunningGridSweep)
const {
43 return repositories::{{REGULAR_SOLVER_INSTANCE}}.getMaxTimeStamp();
47double {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getMinTimeStepSize()
const {
48 return repositories::{{REGULAR_SOLVER_INSTANCE}}.getMinTimeStepSize();
52double {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getMaxTimeStepSize()
const {
53 return repositories::{{REGULAR_SOLVER_INSTANCE}}.getMaxTimeStepSize();
57double {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getMaxMeshSize()
const {
58 return repositories::{{REGULAR_SOLVER_INSTANCE}}.getMaxMeshSize();
62double {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getMinMeshSize()
const {
63 return repositories::{{REGULAR_SOLVER_INSTANCE}}.getMinMeshSize();
67{{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::SolverState {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::getSolverState()
const {
72void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::startGridConstructionStep() {
77void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::finishGridConstructionStep() {
81void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::startGridInitialisationStep() {
86void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::finishGridInitialisationStep() {
91void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::suspendSolversForOneGridSweep() {
96void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::startTimeStep(
97 double globalMinTimeStamp,
98 double globalMaxTimeStamp,
99 double globalMinTimeStepSize,
100 double globalMaxTimeStepSize
103 case SolverState::GridConstruction:
106 case SolverState::GridInitialisation:
107 case SolverState::Suspended:
108 case SolverState::Plotting:
109 case SolverState::RegularSolver:
111 SolverState::RegularSolver : SolverState::LimiterStatusSpreadingToNeighbours);
113 case SolverState::LimiterStatusSpreadingToNeighbours:
114 _solverState = SolverState::LimiterStatusSpreadingToSecondNeighbours;
116 case SolverState::LimiterStatusSpreadingToSecondNeighbours:
119 case SolverState::LimiterSolver:
131 {{START_TIME_STEP_IMPLEMENTATION}}
135 repositories::{{LIMITER_SOLVER_INSTANCE}}.suspendSolversForOneGridSweep();
142 repositories::{{REGULAR_SOLVER_INSTANCE}}.suspendSolversForOneGridSweep();
145 if(
_solverState==SolverState::LimiterStatusSpreadingToNeighbours
146 or
_solverState==SolverState::LimiterStatusSpreadingToSecondNeighbours
148 repositories::{{LIMITER_SOLVER_INSTANCE}}.suspendSolversForOneGridSweep();
149 repositories::{{REGULAR_SOLVER_INSTANCE}}.suspendSolversForOneGridSweep();
157 logInfo(
"startTimeStep(...)",
"LIMITING SOLVER" );
160 logInfo(
"startTimeStep(...)",
"LIMITING SOLVER\n" );
171void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::finishTimeStep() {
172 if ( isLastGridSweepOfTimeStep() ) {
188 &newNumberOfTroubleCells,
196 {{FINISH_TIME_STEP_IMPLEMENTATION}}
202void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::startPlottingStep(
203 double globalMinTimeStamp,
204 double globalMaxTimeStamp,
205 double globalMinTimeStepSize,
206 double globalMaxTimeStepSize
213void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::finishPlottingStep() {
217std::string {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}
::toString(SolverState
state) {
219 case SolverState::GridConstruction:
220 return "grid-construction";
221 case SolverState::GridInitialisation:
222 return "grid-initialisation";
223 case SolverState::RegularSolver:
224 return "regular (non-limiting) solver";
225 case SolverState::LimiterStatusSpreadingToNeighbours:
226 return "limiter status spreading to neighbours";
227 case SolverState::LimiterStatusSpreadingToSecondNeighbours:
228 return "limiter status spreading to second neighbours";
229 case SolverState::LimiterSolver:
230 return "limiting solver";
231 case SolverState::Plotting:
233 case SolverState::Suspended:
240bool {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::mayPlot()
const {
247 and repositories::{{REGULAR_SOLVER_INSTANCE}}.mayPlot()
253 repositories::{{LIMITER_SOLVER_INSTANCE}}.mayPlot()
259bool {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::isFirstGridSweepOfTimeStep()
const {
261 (
_solverState==SolverState::RegularSolver and repositories::{{REGULAR_SOLVER_INSTANCE}}.isFirstGridSweepOfTimeStep() )
263 (
_solverState==SolverState::LimiterSolver and repositories::{{LIMITER_SOLVER_INSTANCE}}.isFirstGridSweepOfTimeStep() )
269bool {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::isLastGridSweepOfTimeStep()
const {
271 (
_solverState==SolverState::RegularSolver and repositories::{{REGULAR_SOLVER_INSTANCE}}.isLastGridSweepOfTimeStep() )
273 (
_solverState==SolverState::LimiterSolver and repositories::{{LIMITER_SOLVER_INSTANCE}}.isLastGridSweepOfTimeStep() )
278void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::startSimulation() {
283void {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}::finishSimulation() {
288void {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::addTroubledCell(){
291int {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::getNumberOfTroubledCells()
const {
296{%
if ADMISSIBILITY_IMPLEMENTATION!=
"<empty>" and ADMISSIBILITY_IMPLEMENTATION!=
"<user-defined>" %}
297bool {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::isPhysicallyAdmissible(
298 const double*
const Q,
301 const double timeStamp
304 {%
if ADMISSIBILITY_IMPLEMENTATION!=
"<none>"%}
305 {{ADMISSIBILITY_IMPLEMENTATION}}
314{{SOLVER_USER_DEFINITIONS}}
tarch::logging::Log _log("examples::unittests")