Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag > Class Template Reference

The class representing dense-output Runge-Kutta steppers. More...

#include <dense_output_runge_kutta.hpp>

Public Types

typedef Stepper stepper_type
 
typedef stepper_type::state_type state_type
 
typedef
stepper_type::wrapped_state_type 
wrapped_state_type
 
typedef stepper_type::value_type value_type
 
typedef stepper_type::deriv_type deriv_type
 
typedef
stepper_type::wrapped_deriv_type 
wrapped_deriv_type
 
typedef stepper_type::time_type time_type
 
typedef stepper_type::algebra_type algebra_type
 
typedef
stepper_type::operations_type 
operations_type
 
typedef stepper_type::resizer_type resizer_type
 
typedef dense_output_stepper_tag stepper_category
 
typedef
dense_output_runge_kutta
< Stepper > 
dense_output_stepper_type
 

Public Member Functions

 dense_output_runge_kutta (const stepper_type &stepper=stepper_type())
 Constructs the dense_output_runge_kutta class. More...
 
template<class StateType >
void initialize (const StateType &x0, time_type t0, time_type dt0)
 Initializes the stepper. More...
 
template<class System >
std::pair< time_type, time_typedo_step (System system)
 Does one time step. More...
 
template<class StateOut >
void calc_state (time_type t, StateOut &x) const
 Calculates the solution at an intermediate point. More...
 
template<class StateOut >
void calc_state (time_type t, const StateOut &x) const
 Calculates the solution at an intermediate point. More...
 
template<class StateType >
void adjust_size (const StateType &x)
 Adjust the size of all temporaries in the stepper manually. More...
 
const state_typecurrent_state (void) const
 Returns the current state of the solution. More...
 
time_type current_time (void) const
 Returns the current time of the solution. More...
 
const state_typeprevious_state (void) const
 Returns the last state of the solution. More...
 
time_type previous_time (void) const
 Returns the last time of the solution. More...
 

Detailed Description

template<class Stepper>
class boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >

The class representing dense-output Runge-Kutta steppers.

Note
In this stepper, the initialize method has to be called before using the do_step method.

The dense-output functionality allows to interpolate the solution between subsequent integration points using intermediate results obtained during the computation. This version works based on a normal stepper without step-size control.

Template Parameters
StepperThe stepper type of the underlying algorithm.

Member Typedef Documentation

template<class Stepper >
typedef stepper_type::algebra_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::algebra_type
template<class Stepper >
typedef stepper_type::deriv_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::deriv_type
template<class Stepper >
typedef stepper_type::operations_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::operations_type
template<class Stepper >
typedef stepper_type::resizer_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::resizer_type
template<class Stepper >
typedef stepper_type::state_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::state_type
template<class Stepper >
typedef Stepper boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::stepper_type
template<class Stepper >
typedef stepper_type::time_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::time_type
template<class Stepper >
typedef stepper_type::value_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::value_type
template<class Stepper >
typedef stepper_type::wrapped_deriv_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::wrapped_deriv_type
template<class Stepper >
typedef stepper_type::wrapped_state_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::wrapped_state_type

Constructor & Destructor Documentation

template<class Stepper >
boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::dense_output_runge_kutta ( const stepper_type stepper = stepper_type())
inline

Constructs the dense_output_runge_kutta class.

An instance of the underlying stepper can be provided.

Parameters
stepperAn instance of the underlying stepper.

Member Function Documentation

template<class Stepper >
template<class StateType >
void boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::adjust_size ( const StateType &  x)
inline

Adjust the size of all temporaries in the stepper manually.

Parameters
xA state from which the size of the temporaries to be resized is deduced.
template<class Stepper >
template<class StateOut >
void boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::calc_state ( time_type  t,
StateOut &  x 
) const
inline

Calculates the solution at an intermediate point.

Parameters
tThe time at which the solution should be calculated, has to be in the current time interval.
xThe output variable where the result is written into.

References boost::numeric::odeint::copy().

template<class Stepper >
template<class StateOut >
void boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::calc_state ( time_type  t,
const StateOut &  x 
) const
inline

Calculates the solution at an intermediate point.

Solves the forwarding problem

Parameters
tThe time at which the solution should be calculated, has to be in the current time interval.
xThe output variable where the result is written into, can be a boost range.
template<class Stepper >
const state_type& boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::current_state ( void  ) const
inline

Returns the current state of the solution.

Returns
The current state of the solution x(t).
template<class Stepper >
time_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::current_time ( void  ) const
inline

Returns the current time of the solution.

Returns
The current time of the solution t.
template<class Stepper >
template<class System >
std::pair< time_type , time_type > boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::do_step ( System  system)
inline

Does one time step.

Note
initialize has to be called before using this method to set the initial conditions x,t and the stepsize.
Parameters
systemThe system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept.
Returns
Pair with start and end time of the integration step.

References boost::xpressive::make_pair.

template<class Stepper >
template<class StateType >
void boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::initialize ( const StateType &  x0,
time_type  t0,
time_type  dt0 
)
inline

Initializes the stepper.

Has to be called before do_step can be used to set the initial conditions and the step size.

Parameters
x0The initial state of the ODE which should be solved.
t0The initial time, at which the step should be performed.
dt0The step size.

References boost::numeric::odeint::detail::_1, boost::bind(), boost::numeric::odeint::copy(), boost::ref(), and template.

template<class Stepper >
const state_type& boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::previous_state ( void  ) const
inline

Returns the last state of the solution.

Returns
The last state of the solution x(t-dt).
template<class Stepper >
time_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::previous_time ( void  ) const
inline

Returns the last time of the solution.

Returns
The last time of the solution t-dt.

The documentation for this class was generated from the following file: