| Home | Libraries | People | FAQ | More

### Stepper

This concepts specifies the interface a simple stepper has to fulfill to be used within the integrate functions.

##### Description

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.

##### Refinement of

- DefaultConstructable
- CopyConstructable

##### Associated types

- 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&lt; double &gt;`.

- 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`.

##### Notation

`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

##### Valid Expressions

Name | Expression | Type | Semantics
--- | --- | --- | ---
Get the order | `stepper.order()` | `order_type` | Returns the order of the stepper.
Do step | `stepper.do_step( sys , x , t , dt )` | `void` | Performs one step of step size `dt`. The newly obtained state is written in place in `x`.

##### Models

- `runge_kutta4`
- `euler`
- `runge_kutta_cash_karp54`
- `runge_kutta_dopri5`
- `runge_kutta_fehlberg78`
- `modified_midpoint`
- `rosenbrock4`