SpECTRE  2021.08.02
StepChoosers::PreventRapidIncrease< StepChooserUse > Class Template Reference

Avoids instabilities due to rapid increases in the step size by preventing the step size from increasing unless all steps in the time-stepper history are the same size. If there have been recent step size changes the new size bound is the size of the most recent step, otherwise it is infinite (no restriction is imposed). More...

#include <PreventRapidIncrease.hpp>

Public Types

using options = tmpl::list<>
 
using argument_tags = tmpl::list<::Tags::HistoryEvolvedVariables<> >
 
using return_tags = tmpl::list<>
 

Public Member Functions

template<typename Metavariables , typename History >
std::pair< double, bool > operator() (const History &history, const double last_step_magnitude, const Parallel::GlobalCache< Metavariables > &) const noexcept
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

template<typename StepChooserUse>
class StepChoosers::PreventRapidIncrease< StepChooserUse >

Avoids instabilities due to rapid increases in the step size by preventing the step size from increasing unless all steps in the time-stepper history are the same size. If there have been recent step size changes the new size bound is the size of the most recent step, otherwise it is infinite (no restriction is imposed).

Changes in step size resulting from a slab size change are not taken into account. In practice, this should not be an issue as long as there are many steps between slab size changes.

Member Data Documentation

◆ help

template<typename StepChooserUse >
constexpr Options::String StepChoosers::PreventRapidIncrease< StepChooserUse >::help
staticconstexpr
Initial value:
{
"Prevents rapid increases in time step that can cause integrator \n"
"instabilities."}