Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is an older version of Boost and was released in 2022. The current version is 1.89.0.
This concepts specifies the interface an error stepper has to fulfill to be used within a ControlledErrorStepper. An error stepper must always fulfill the stepper concept. This can trivially implemented by
template< class System > error_stepper::do_step( System sys , state_type &x , time_type t , time_type dt ) { state_type xerr; // allocate xerr do_step( sys , x , t , dt , xerr ); }
An error stepper following this Error Stepper concept is capable of doing one step of the solution x(t) of an ODE with step-size dt to obtain x(t+dt) and also computing an error estimate xerr of the result. Error Steppers can be Runge-Kutta steppers, symplectic steppers as well as implicit steppers. Based on the stepper type, the ODE is defined as System, Symplectic System, Simple Symplectic System or Implicit System.
state_type
Stepper::state_type
The type characterizing the state of the ODE, hence x.
deriv_type
Stepper::deriv_type
The type characterizing the derivative of the ODE, hence d x/dt.
time_type
Stepper::time_type
The type characterizing the dependent variable of the ODE, hence the time t.
value_type
Stepper::value_type
The
numerical data type which is used within the stepper, something like
float, double,
complex< double >.
order_type
Stepper::order_type
The
type characterizing the order of the ODE, typically unsigned
short.
stepper_category
Stepper::stepper_category
A
tag type characterizing the category of the stepper. This type must be
convertible to error_stepper_tag.
ErrorStepperA type that is a model of Error Stepper
StateA type representing the state x of the ODE
Error
A type representing the error calculated by the stepper, usually same
as State
TimeA type representing the time t of the ODE
stepper
An object of type ErrorStepper
x
Object of type State
xerr
Object of type Error
t, dt
Objects of type Time
sysAn object defining the ODE, should be a model of either System, Symplectic System, Simple Symplectic System or Implicit System.
|
Name |
Expression |
Type |
Semantics |
|---|---|---|---|
|
Get the stepper order |
|
|
Returns the order of the stepper for one step without error estimation. |
|
Get the stepper order |
|
|
Returns the order of the stepper for one error estimation step which is used for error calculation. |
|
Get the error order |
|
|
Returns the order of the error step which is used for error calculation. |
|
Do step |
|
|
Performs one step of step size |
|
Do step with error estimation |
|
|
Performs one step of step size |
runge_kutta_cash_karp54
runge_kutta_dopri5
runge_kutta_fehlberg78
rosenbrock4