3import exahype2.solvers.FixedTimeSteppingCodeSnippets
9 Code snippet generator for fixed time stepping in the Runge-Kutta schemes
12 def __init__(self, normalised_time_step_size, use_enclave_tasking):
20 The outcome is used before we actually roll over the accumulation variables
21 and other stuff. So we assume that the state is already updated, but the
22 other data is not yet rolled-over.
24 I don't want to plot the very first time stamp, where I don't know the
25 cell size yet, so I check _maxCellHThisTimeStep. If we don't know the cell
26 size yet, we haven't done a single grid sweep. In this case, I don't plot
27 anything. The other check isFirstGridSweepOfTimeStep() ensures that I only
28 plot once prior to the first Runge-Kutta step.
32 tarch::mpi::Rank::getInstance().isGlobalMaster()
34 _maxCellHThisTimeStep>0.0
36 isFirstGridSweepOfTimeStep()
40 predicate +=
"""and (_solverState == SolverState::Primary or _solverState == SolverState::PrimaryAfterGridInitialisation) """
43 if (""" + predicate +
""") {
44 logInfo( "startTimeStep()", "Solver {{SOLVER_NAME}}:" );
45 logInfo( "startTimeStep()", "t = " << _minTimeStampThisTimeStep );
46 logInfo( "startTimeStep()", "dt = " << getTimeStepSize() );
47 logInfo( "startTimeStep()", "h_{min} = " << _minCellHThisTimeStep );
48 logInfo( "startTimeStep()", "h_{max} = " << _maxCellHThisTimeStep );
55 if ( isLastGridSweepOfTimeStep() ) {
56 assertion( _minCellH >= 0.0 );
57 assertion( MaxAdmissibleCellH > 0.0 );
58 if (_minCellHThisTimeStep <= MaxAdmissibleCellH) {
Code snippet generator for fixed time stepping in the Runge-Kutta schemes.
__init__(self, normalised_time_step_size, use_enclave_tasking)
create_finish_time_step_implementation(self)
_normalised_time_step_size
create_start_time_step_implementation(self)
The outcome is used before we actually roll over the accumulation variables and other stuff.