...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Home  Libraries  People  FAQ  More 
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 stepsize dt to obtain x(t+dt) and also computing an error estimate x_{err} of the result. Error Steppers can be RungeKutta 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
.
ErrorStepper
A type that is a model of Error Stepper
State
A type representing the state x of the ODE
Error
A type representing the error calculated by the stepper, usually same
as State
Time
A 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
sys
An 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