SpECTRE  v2024.03.19
Time Steppers

Namespaces

namespace  TimeSteppers
 Holds classes that take time steps.
 

Classes

class  TimeSteppers::ConstBoundaryHistoryTimes
 Access to the list of TimeStepIds in a BoundaryHistory. More...
 
class  TimeSteppers::BoundaryHistoryEvaluator< UntypedCouplingResult >
 Type erased base class for evaluating BoundaryHistory couplings. More...
 
class  TimeSteppers::BoundaryHistory< LocalData, RemoteData, CouplingResult >
 History data used by a TimeStepper for boundary integration. More...
 
struct  TimeSteppers::UntypedStepRecord< T >
 Entry in the time-stepper history, in type-erased form. More...
 
class  TimeSteppers::ConstUntypedHistory< T >
 Access to the history data used by a TimeStepper in type-erased form. Obtain an instance with History::untyped(). More...
 
class  TimeSteppers::MutableUntypedHistory< T >
 Mutable access to the history data used by a TimeStepper in type-erased form. Obtain an instance with History::untyped(). More...
 
struct  TimeSteppers::StepRecord< Vars >
 Data in an entry of the time-stepper history. More...
 
class  TimeSteppers::History< Vars >
 The past-time data used by TimeStepper classes to update the evolved variables. More...
 
class  TimeSteppers::AdamsBashforth
 
class  TimeSteppers::AdamsMoultonPc
 
class  TimeSteppers::ClassicalRungeKutta4
 
class  TimeSteppers::DormandPrince5
 
class  TimeSteppers::Heun2
 A second order continuous-extension RK method that provides 2nd-order dense output. More...
 
class  TimeSteppers::ImexRungeKutta
 
class  ImexTimeStepper
 
class  LtsTimeStepper
 Base class for TimeSteppers with local time-stepping support, derived from TimeStepper. More...
 
class  TimeSteppers::Rk3HesthavenSsp
 A "strong stability-preserving" 3rd-order Runge-Kutta time-stepper, as described in [85] section 5.7. More...
 
class  TimeSteppers::Rk3Kennedy
 A third-order Runge-Kutta method with IMEX support. More...
 
class  TimeSteppers::Rk3Owren
 A third order continuous-extension RK method that provides 3rd-order dense output. More...
 
class  TimeSteppers::Rk3Pareschi
 A third-order Runge-Kutta method with IMEX support. More...
 
class  TimeSteppers::Rk4Kennedy
 A fourth-order Runge-Kutta method with IMEX support. More...
 
class  TimeSteppers::Rk4Owren
 A fourth order continuous-extension RK method that provides 4th-order dense output. More...
 
class  TimeSteppers::Rk5Owren
 A fifth order continuous-extension RK method that provides 5th-order dense output. More...
 
class  TimeSteppers::Rk5Tsitouras
 A fifth order RK method constructed with fewer restrictions on its coefficients than is common. On a standard test suite, it was found to be roughly 10% more efficient than DormandPrince5.[180]. More...
 
class  TimeSteppers::RungeKutta
 
class  TimeStepper
 Abstract base class for TimeSteppers. More...
 

Macros

#define IMEX_TIME_STEPPER_DECLARE_OVERLOADS
 Macro declaring overloaded detail methods in classes derived from ImexTimeStepper. Must be placed in a private section of the class body. More...
 
#define IMEX_TIME_STEPPER_DEFINE_OVERLOADS(derived_class)
 Macro defining overloaded detail methods in classes derived from ImexTimeStepper. Must be placed in the cpp file for the derived class. More...
 
#define LTS_TIME_STEPPER_DECLARE_OVERLOADS
 Macro declaring overloaded detail methods in classes derived from TimeStepper. Must be placed in a private section of the class body. More...
 
#define LTS_TIME_STEPPER_DEFINE_OVERLOADS(derived_class)
 Macro defining overloaded detail methods in classes derived from TimeStepper. Must be placed in the cpp file for the derived class. More...
 
#define TIME_STEPPER_DECLARE_OVERLOADS
 Macro declaring overloaded detail methods in classes derived from TimeStepper. Must be placed in a private section of the class body. More...
 
#define TIME_STEPPER_DEFINE_OVERLOADS(derived_class)
 Macro defining overloaded detail methods in classes derived from TimeStepper. Must be placed in the cpp file for the derived class. More...
 
template<typename DestVars , typename SourceVars , typename ValueTransformer , typename DerivativeTransformer >
void TimeSteppers::transform (const gsl::not_null< History< DestVars > * > dest, const History< SourceVars > &source, ValueTransformer &&value_transformer, DerivativeTransformer &&derivative_transformer)
 Initialize a History object based on the contents of another, applying a transformation to each value and derivative. More...
 
template<typename DestVars , typename SourceVars , typename Transformer >
void TimeSteppers::transform (const gsl::not_null< History< DestVars > * > dest, const History< SourceVars > &source, Transformer &&transformer)
 Initialize a History object based on the contents of another, applying a transformation to each value and derivative. More...
 

Detailed Description

A collection of ODE integrators primarily used for time stepping.

Macro Definition Documentation

◆ IMEX_TIME_STEPPER_DECLARE_OVERLOADS

#define IMEX_TIME_STEPPER_DECLARE_OVERLOADS
Value:
GENERATE_INSTANTIATIONS(IMEX_TIME_STEPPER_DECLARE_OVERLOADS_IMPL, \
#define MATH_WRAPPER_TYPES
A comma-separated list of valid template arguments to MathWrapper. Useful for explicit instantiations...
Definition: MathWrapper.hpp:21
#define GENERATE_INSTANTIATIONS(INSTANTIATION_MACRO,...)
Macro useful for generating many explicit instantiations of function or class templates.
Definition: GenerateInstantiations.hpp:160

Macro declaring overloaded detail methods in classes derived from ImexTimeStepper. Must be placed in a private section of the class body.

◆ IMEX_TIME_STEPPER_DEFINE_OVERLOADS

#define IMEX_TIME_STEPPER_DEFINE_OVERLOADS (   derived_class)
Value:
GENERATE_INSTANTIATIONS(IMEX_TIME_STEPPER_DEFINE_OVERLOADS_IMPL, \
(MATH_WRAPPER_TYPES), (derived_class))

Macro defining overloaded detail methods in classes derived from ImexTimeStepper. Must be placed in the cpp file for the derived class.

◆ LTS_TIME_STEPPER_DECLARE_OVERLOADS

#define LTS_TIME_STEPPER_DECLARE_OVERLOADS
Value:
GENERATE_INSTANTIATIONS(LTS_TIME_STEPPER_DECLARE_OVERLOADS_IMPL, \

Macro declaring overloaded detail methods in classes derived from TimeStepper. Must be placed in a private section of the class body.

◆ LTS_TIME_STEPPER_DEFINE_OVERLOADS

#define LTS_TIME_STEPPER_DEFINE_OVERLOADS (   derived_class)
Value:
GENERATE_INSTANTIATIONS(LTS_TIME_STEPPER_DEFINE_OVERLOADS_IMPL, \
(MATH_WRAPPER_TYPES), (derived_class))

Macro defining overloaded detail methods in classes derived from TimeStepper. Must be placed in the cpp file for the derived class.

◆ TIME_STEPPER_DECLARE_OVERLOADS

#define TIME_STEPPER_DECLARE_OVERLOADS
Value:
GENERATE_INSTANTIATIONS(TIME_STEPPER_DECLARE_OVERLOADS_IMPL, \

Macro declaring overloaded detail methods in classes derived from TimeStepper. Must be placed in a private section of the class body.

◆ TIME_STEPPER_DEFINE_OVERLOADS

#define TIME_STEPPER_DEFINE_OVERLOADS (   derived_class)
Value:
GENERATE_INSTANTIATIONS(TIME_STEPPER_DEFINE_OVERLOADS_IMPL, \
(MATH_WRAPPER_TYPES), (derived_class))

Macro defining overloaded detail methods in classes derived from TimeStepper. Must be placed in the cpp file for the derived class.

Function Documentation

◆ transform() [1/2]

template<typename DestVars , typename SourceVars , typename Transformer >
void TimeSteppers::transform ( const gsl::not_null< History< DestVars > * >  dest,
const History< SourceVars > &  source,
Transformer &&  transformer 
)

Initialize a History object based on the contents of another, applying a transformation to each value and derivative.

The transformation functions can either take a value from the source history and return a value for the destination history or take a gsl::not_null value from the destination history and a value from the source history to initialize it with. For the sake of implementation simplicity, either both transformers must mutate or both must produce values.

An overload applying the same transformation to the values and derivatives is provided for convenience.

◆ transform() [2/2]

template<typename DestVars , typename SourceVars , typename ValueTransformer , typename DerivativeTransformer >
void TimeSteppers::transform ( const gsl::not_null< History< DestVars > * >  dest,
const History< SourceVars > &  source,
ValueTransformer &&  value_transformer,
DerivativeTransformer &&  derivative_transformer 
)

Initialize a History object based on the contents of another, applying a transformation to each value and derivative.

The transformation functions can either take a value from the source history and return a value for the destination history or take a gsl::not_null value from the destination history and a value from the source history to initialize it with. For the sake of implementation simplicity, either both transformers must mutate or both must produce values.

An overload applying the same transformation to the values and derivatives is provided for convenience.