SpECTRE  v2024.03.19
TimeSteppers Namespace Reference

Holds classes that take time steps. More...

Namespaces

namespace  adams_coefficients
 Helpers for calculating Adams coefficients.
 

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 [85] 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.[180]. 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...
 

Typedefs

using time_steppers = tmpl::list< TimeSteppers::AdamsBashforth, TimeSteppers::AdamsMoultonPc, TimeSteppers::ClassicalRungeKutta4, TimeSteppers::DormandPrince5, TimeSteppers::Heun2, TimeSteppers::Rk3HesthavenSsp, TimeSteppers::Rk3Kennedy, TimeSteppers::Rk3Owren, TimeSteppers::Rk3Pareschi, TimeSteppers::Rk4Kennedy, TimeSteppers::Rk4Owren, TimeSteppers::Rk5Owren, TimeSteppers::Rk5Tsitouras >
 Typelist of available TimeSteppers.
 
using lts_time_steppers = tmpl::list< TimeSteppers::AdamsBashforth >
 Typelist of available LtsTimeSteppers.
 
using imex_time_steppers = tmpl::list< TimeSteppers::Heun2, TimeSteppers::Rk3Kennedy, TimeSteppers::Rk3Pareschi, TimeSteppers::Rk4Kennedy >
 Typelist of available ImexTimeSteppers.
 

Functions

template<typename LocalData , typename RemoteData , typename CouplingResult >
std::ostreamoperator<< (std::ostream &os, const BoundaryHistory< LocalData, RemoteData, CouplingResult > &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)
 
bool operator== (const AdamsMoultonPc &lhs, const AdamsMoultonPc &rhs)
 
bool operator!= (const AdamsMoultonPc &lhs, const AdamsMoultonPc &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 &)
 
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. More...
 
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. More...
 

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.