...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 a simple stepper has to fulfill to be used within the integrate functions.
The basic stepper concept. A basic stepper following this Stepper concept is able to perform a single step of the solution x(t) of an ODE to obtain x(t+dt) using a given step size dt. Basic steppers can be Runge-Kutta steppers, symplectic steppers as well as implicit steppers. Depending on the actual stepper, the ODE is defined as System, Symplectic System, Simple Symplectic System or Implicit System. Note that all error steppers are also basic steppers.
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 stepper_tag
.
Stepper
A type that is a model of Stepper
State
A type representing the state x of the ODE
Time
A type representing the time t of the ODE
stepper
An object of type Stepper
x
Object of type State
t
, dt
Objects of type Time
sys
An object defining the ODE. Depending on the Stepper this might be a model of System, Symplectic System, Simple Symplectic System or Implicit System
Name |
Expression |
Type |
Semantics |
---|---|---|---|
Get the order |
|
|
Returns the order of the stepper. |
Do step |
|
|
Performs one step of step size |
runge_kutta4
euler
runge_kutta_cash_karp54
runge_kutta_dopri5
runge_kutta_fehlberg78
modified_midpoint
rosenbrock4