...one of the most highly
regarded and expertly designed C++ library projects in the
world. — Herb Sutter and Andrei
This concept specifies the interface a controlled stepper has to fulfill to be used within integrate functions.
A controlled stepper following this Controlled Stepper concept provides the possibility to perform one step of the solution x(t) of an ODE with step-size dt to obtain x(t+dt) with a given step-size dt. Depending on an error estimate of the solution the step might be rejected and a smaller step-size is suggested.
The type characterizing the state of the ODE, hence x.
The type characterizing the derivative of the ODE, hence d x/dt.
The type characterizing the dependent variable of the ODE, hence the time t.
numerical data type which is used within the stepper, something like
complex< double >.
tag type characterizing the category of the stepper. This type must be
A type that is a model of Controlled Stepper
A type representing the state x of the ODE
A type representing the time t of the ODE
An object of type
Object of type
Objects of type
An object defining the ODE, should be a model of System, Symplectic System, Simple Symplectic System or Implicit System.
stepper.try_step( sys , x , t , dt )
Tries one step of step size
controlled_error_stepper< runge_kutta_cash_karp54 >
controlled_error_stepper_fsal< runge_kutta_dopri5 >
controlled_error_stepper< runge_kutta_fehlberg78 >