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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Error Stepper

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
Associated types
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

PrevUpHomeNext