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_type > | do_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_type & | current_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_type & | previous_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... | |
The class representing dense-output Runge-Kutta steppers.
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.
Stepper | The stepper type of the underlying algorithm. |
typedef stepper_type::algebra_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::algebra_type |
typedef dense_output_runge_kutta< Stepper > boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::dense_output_stepper_type |
typedef stepper_type::deriv_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::deriv_type |
typedef stepper_type::operations_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::operations_type |
typedef stepper_type::resizer_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::resizer_type |
typedef stepper_type::state_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::state_type |
typedef dense_output_stepper_tag boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::stepper_category |
typedef Stepper boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::stepper_type |
typedef stepper_type::time_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::time_type |
typedef stepper_type::value_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::value_type |
typedef stepper_type::wrapped_deriv_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::wrapped_deriv_type |
typedef stepper_type::wrapped_state_type boost::numeric::odeint::dense_output_runge_kutta< Stepper, stepper_tag >::wrapped_state_type |
|
inline |
Constructs the dense_output_runge_kutta class.
An instance of the underlying stepper can be provided.
stepper | An instance of the underlying stepper. |
|
inline |
Adjust the size of all temporaries in the stepper manually.
x | A state from which the size of the temporaries to be resized is deduced. |
|
inline |
Calculates the solution at an intermediate point.
t | The time at which the solution should be calculated, has to be in the current time interval. |
x | The output variable where the result is written into. |
References boost::numeric::odeint::copy().
|
inline |
Calculates the solution at an intermediate point.
Solves the forwarding problem
t | The time at which the solution should be calculated, has to be in the current time interval. |
x | The output variable where the result is written into, can be a boost range. |
|
inline |
Returns the current state of the solution.
|
inline |
Returns the current time of the solution.
|
inline |
Does one time step.
system | The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the Simple System concept. |
References boost::xpressive::make_pair.
|
inline |
Initializes the stepper.
Has to be called before do_step can be used to set the initial conditions and the step size.
x0 | The initial state of the ODE which should be solved. |
t0 | The initial time, at which the step should be performed. |
dt0 | The step size. |
References boost::numeric::odeint::detail::_1, boost::bind(), boost::numeric::odeint::copy(), boost::ref(), and template.
|
inline |
Returns the last state of the solution.
|
inline |
Returns the last time of the solution.