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

Error Stepper
PrevUpHomeNext

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 );
}

Description

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.

Refinement of
  • DefaultConstructable
  • CopyConstructable
  • Stepper
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 error_stepper_tag.

Notation

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.

Valid Expressions

Name

Expression

Type

Semantics

Get the stepper order

stepper.order()

order_type

Returns the order of the stepper for one step without error estimation.

Get the stepper order

stepper.stepper_order()

order_type

Returns the order of the stepper for one error estimation step which is used for error calculation.

Get the error order

stepper.errorr_order()

order_type

Returns the order of the error step which is used for error calculation.

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 to x.

Do step with error estimation

stepper.do_step( sys , x , t , dt , xerr )

void

Performs one step of step size dt with error estimation. The newly obtained state is written in-place to x and the estimated error to xerr.

Models
  • runge_kutta_cash_karp54
  • runge_kutta_dopri5
  • runge_kutta_fehlberg78
  • rosenbrock4

PrevUpHomeNext