SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
TimeSteppers Namespace Reference

Holds classes that take time steps. More...

Namespaces

namespace  adams_coefficients
 Helpers for calculating Adams coefficients.
namespace  adams_lts
 Shared LTS implementation for the two Adams-based methods.

Classes

class  AdamsBashforth
class  AdamsMoultonPc
class  BoundaryHistory
 History data used by a TimeStepper for boundary integration. More...
class  BoundaryHistoryEvaluator
 Type erased base class for evaluating BoundaryHistory couplings. More...
class  ClassicalRungeKutta4
class  ConstBoundaryHistoryTimes
 Access to the list of TimeStepIds in a BoundaryHistory. More...
class  ConstUntypedHistory
 Access to the history data used by a TimeStepper in type-erased form. Obtain an instance with History::untyped(). More...
class  DormandPrince5
class  Heun2
 A second order continuous-extension RK method that provides 2nd-order dense output. More...
class  History
 The past-time data used by TimeStepper classes to update the evolved variables. More...
class  ImexRungeKutta
class  MutableBoundaryHistoryTimes
class  MutableUntypedHistory
 Mutable access to the history data used by a TimeStepper in type-erased form. Obtain an instance with History::untyped(). More...
class  Rk3HesthavenSsp
 A "strong stability-preserving" 3rd-order Runge-Kutta time-stepper, as described in [101] section 5.7. More...
class  Rk3Kennedy
 A third-order Runge-Kutta method with IMEX support. More...
class  Rk3Owren
 A third order continuous-extension RK method that provides 3rd-order dense output. More...
class  Rk3Pareschi
 A third-order Runge-Kutta method with IMEX support. More...
class  Rk4Kennedy
 A fourth-order Runge-Kutta method with IMEX support. More...
class  Rk4Owren
 A fourth order continuous-extension RK method that provides 4th-order dense output. More...
class  Rk5Owren
 A fifth order continuous-extension RK method that provides 5th-order dense output. More...
class  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.[206]. More...
class  RungeKutta
struct  StepRecord
 Data in an entry of the time-stepper history. More...
struct  UntypedStepRecord
 Entry in the time-stepper history, in type-erased form. More...
struct  VariableOrder
 Minimum and maximum orders of a variable-order TimeStepper. More...

Typedefs

using time_steppers
 Typelist of available TimeSteppers.
using lts_time_steppers
 Typelist of available LtsTimeSteppers.
using imex_time_steppers
 Typelist of available ImexTimeSteppers.
using increasing_substep_time_steppers
 Typelist of TimeSteppers whose substep times are strictly increasing.
using monotonic_lts_time_steppers
 Typelist of LtsTimeSteppers with monotonic() true, i.e., those that work with control systems.

Functions

template<typename LocalData, typename RemoteData, typename UntypedCouplingResult>
std::ostreamoperator<< (std::ostream &os, const BoundaryHistory< LocalData, RemoteData, UntypedCouplingResult > &history)
template<typename T>
bool operator== (const UntypedStepRecord< T > &a, const UntypedStepRecord< T > &b)
template<typename T>
bool operator!= (const UntypedStepRecord< T > &a, const UntypedStepRecord< T > &b)
template<typename Vars>
bool operator== (const StepRecord< Vars > &a, const StepRecord< Vars > &b)
template<typename Vars>
bool operator!= (const StepRecord< Vars > &a, const StepRecord< Vars > &b)
template<typename Vars>
bool operator== (const History< Vars > &a, const History< Vars > &b)
template<typename Vars>
bool operator!= (const History< Vars > &a, const History< Vars > &b)
template<typename Vars>
std::ostreamoperator<< (std::ostream &os, const History< Vars > &history)
bool operator!= (const AdamsBashforth &lhs, const AdamsBashforth &rhs)
template<bool Monotonic>
bool operator== (const AdamsMoultonPc< Monotonic > &lhs, const AdamsMoultonPc< Monotonic > &rhs)
template<bool Monotonic>
bool operator!= (const AdamsMoultonPc< Monotonic > &lhs, const AdamsMoultonPc< Monotonic > &rhs)
bool constexpr operator== (const ClassicalRungeKutta4 &, const ClassicalRungeKutta4 &)
bool constexpr operator!= (const ClassicalRungeKutta4 &, const ClassicalRungeKutta4 &)
bool constexpr operator== (const DormandPrince5 &, const DormandPrince5 &)
bool constexpr operator!= (const DormandPrince5 &, const DormandPrince5 &)
bool constexpr operator== (const Heun2 &, const Heun2 &)
bool constexpr operator!= (const Heun2 &, const Heun2 &)
bool constexpr operator== (const Rk3HesthavenSsp &, const Rk3HesthavenSsp &)
bool constexpr operator!= (const Rk3HesthavenSsp &, const Rk3HesthavenSsp &)
bool constexpr operator== (const Rk3Kennedy &, const Rk3Kennedy &)
bool constexpr operator!= (const Rk3Kennedy &lhs, const Rk3Kennedy &rhs)
bool constexpr operator== (const Rk3Owren &, const Rk3Owren &)
bool constexpr operator!= (const Rk3Owren &, const Rk3Owren &)
bool constexpr operator== (const Rk3Pareschi &, const Rk3Pareschi &)
bool constexpr operator!= (const Rk3Pareschi &lhs, const Rk3Pareschi &rhs)
bool constexpr operator== (const Rk4Kennedy &, const Rk4Kennedy &)
bool constexpr operator!= (const Rk4Kennedy &lhs, const Rk4Kennedy &rhs)
bool constexpr operator== (const Rk4Owren &, const Rk4Owren &)
bool constexpr operator!= (const Rk4Owren &, const Rk4Owren &)
bool constexpr operator== (const Rk5Owren &, const Rk5Owren &)
bool constexpr operator!= (const Rk5Owren &, const Rk5Owren &)
bool constexpr operator== (const Rk5Tsitouras &, const Rk5Tsitouras &)
bool constexpr operator!= (const Rk5Tsitouras &, const Rk5Tsitouras &)
bool operator== (const VariableOrder &a, const VariableOrder &b)
bool operator!= (const VariableOrder &a, const VariableOrder &b)
template<typename DestVars, typename SourceVars, typename ValueTransformer, typename DerivativeTransformer>
void 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.
template<typename DestVars, typename SourceVars, typename Transformer>
void 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.
template<typename DestVars, typename SourceVars, typename ValueTransformer, typename DerivativeTransformer>
void transform_mutate (const gsl::not_null< History< DestVars > * > dest, const History< SourceVars > &source, ValueTransformer &&value_transformer, DerivativeTransformer &&derivative_transformer)
 Combine two History objects by applying a transformation to each value and derivative.
template<typename DestVars, typename SourceVars, typename Transformer>
void transform_mutate (const gsl::not_null< History< DestVars > * > dest, const History< SourceVars > &source, Transformer &&transformer)
 Combine two History objects by applying a transformation to each value and derivative.

Variables

constexpr size_t history_max_past_steps = 7
 Largest number of past steps supported by the time stepper History. Corresponds to the number_of_past_steps() method of TimeStepper. AdamsBashforth with order 8 has the largest requirement.
constexpr size_t history_max_substeps = 6
 Largest number of substeps supported by the time stepper History. Corresponds to the number_of_substeps() and number_of_substeps_for_error() methods of TimeStepper. DormandPrince5 with an error estimate and Rk5Owren have the largest requirement.

Detailed Description

Holds classes that take time steps.

Typedef Documentation

◆ imex_time_steppers

Initial value:
tmpl::list<Heun2, Rk3Kennedy, Rk3Pareschi, Rk4Kennedy>

Typelist of available ImexTimeSteppers.

◆ increasing_substep_time_steppers

Initial value:
tmpl::list<AdamsBashforth, Rk3Owren, Rk4Owren>

Typelist of TimeSteppers whose substep times are strictly increasing.

◆ lts_time_steppers

Initial value:
tmpl::list<AdamsBashforth, AdamsMoultonPc<false>, AdamsMoultonPc<true>>
Definition AdamsMoultonPc.hpp:98

Typelist of available LtsTimeSteppers.

◆ monotonic_lts_time_steppers

Initial value:
tmpl::list<AdamsBashforth, AdamsMoultonPc<true>>

Typelist of LtsTimeSteppers with monotonic() true, i.e., those that work with control systems.

◆ time_steppers

Initial value:
tmpl::list<AdamsBashforth, AdamsMoultonPc<false>, AdamsMoultonPc<true>,
Definition ClassicalRungeKutta4.hpp:50
Definition DormandPrince5.hpp:44
A second order continuous-extension RK method that provides 2nd-order dense output.
Definition Heun2.hpp:42
A "strong stability-preserving" 3rd-order Runge-Kutta time-stepper, as described in hesthavenwarburto...
Definition Rk3HesthavenSsp.hpp:43
A third-order Runge-Kutta method with IMEX support.
Definition Rk3Kennedy.hpp:25
A third order continuous-extension RK method that provides 3rd-order dense output.
Definition Rk3Owren.hpp:40
A third-order Runge-Kutta method with IMEX support.
Definition Rk3Pareschi.hpp:38
A fourth-order Runge-Kutta method with IMEX support.
Definition Rk4Kennedy.hpp:25
A fourth order continuous-extension RK method that provides 4th-order dense output.
Definition Rk4Owren.hpp:40
A fifth order continuous-extension RK method that provides 5th-order dense output.
Definition Rk5Owren.hpp:40
A fifth order RK method constructed with fewer restrictions on its coefficients than is common....
Definition Rk5Tsitouras.hpp:24

Typelist of available TimeSteppers.