|
| controlled_runge_kutta (const error_checker_type &error_checker=error_checker_type(), const stepper_type &stepper=stepper_type()) |
| Constructs the controlled Runge-Kutta stepper. More...
|
|
template<class System , class StateInOut > |
controlled_step_result | try_step (System system, StateInOut &x, time_type &t, time_type &dt) |
| Tries to perform one step. More...
|
|
template<class System , class StateInOut > |
controlled_step_result | try_step (System system, const StateInOut &x, time_type &t, time_type &dt) |
| Tries to perform one step. More...
|
|
template<class System , class StateInOut , class DerivIn > |
controlled_step_result | try_step (System system, StateInOut &x, const DerivIn &dxdt, time_type &t, time_type &dt) |
| Tries to perform one step. More...
|
|
template<class System , class StateIn , class StateOut > |
boost::disable_if
< boost::is_same< StateIn,
time_type >
, controlled_step_result >
::type | try_step (System system, const StateIn &in, time_type &t, StateOut &out, time_type &dt) |
| Tries to perform one step. More...
|
|
template<class System , class StateIn , class DerivIn , class StateOut > |
controlled_step_result | try_step (System system, const StateIn &in, const DerivIn &dxdt, time_type &t, StateOut &out, time_type &dt) |
| Tries to perform one step. More...
|
|
value_type | last_error (void) const |
| Returns the error of the last step. More...
|
|
template<class StateType > |
void | adjust_size (const StateType &x) |
| Adjust the size of all temporaries in the stepper manually. More...
|
|
stepper_type & | stepper (void) |
| Returns the instance of the underlying stepper. More...
|
|
const stepper_type & | stepper (void) const |
| Returns the instance of the underlying stepper. More...
|
|
template<class ErrorStepper, class ErrorChecker, class Resizer>
class boost::numeric::odeint::controlled_runge_kutta< ErrorStepper, ErrorChecker, Resizer, explicit_error_stepper_tag >
Implements step size control for Runge-Kutta steppers with error estimation.
This class implements the step size control for standard Runge-Kutta steppers with error estimation.
- Template Parameters
-
ErrorStepper | The stepper type with error estimation, has to fulfill the ErrorStepper concept. |
ErrorChecker | The error checker |
Resizer | The resizer policy type. |
template<class ErrorStepper , class ErrorChecker , class Resizer >
template<class System , class StateInOut >
Tries to perform one step.
This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.
- Parameters
-
system | The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. |
x | The state of the ODE which should be solved. Overwritten if the step is successful. |
t | The value of the time. Updated if the step is successful. |
dt | The step size. Updated. |
- Returns
- success if the step was accepted, fail otherwise.
template<class ErrorStepper , class ErrorChecker , class Resizer >
template<class System , class StateInOut >
Tries to perform one step.
Solves the forwarding problem and allows for using boost range as state_type.
This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.
- Parameters
-
system | The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. |
x | The state of the ODE which should be solved. Overwritten if the step is successful. Can be a boost range. |
t | The value of the time. Updated if the step is successful. |
dt | The step size. Updated. |
- Returns
- success if the step was accepted, fail otherwise.
template<class ErrorStepper , class ErrorChecker , class Resizer >
template<class System , class StateInOut , class DerivIn >
Tries to perform one step.
This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.
- Parameters
-
system | The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. |
x | The state of the ODE which should be solved. Overwritten if the step is successful. |
dxdt | The derivative of state. |
t | The value of the time. Updated if the step is successful. |
dt | The step size. Updated. |
- Returns
- success if the step was accepted, fail otherwise.
References boost::numeric::odeint::detail::_1, boost::bind(), boost::numeric::odeint::copy(), boost::ref(), boost::numeric::odeint::success, and template.
template<class ErrorStepper , class ErrorChecker , class Resizer >
template<class System , class StateIn , class StateOut >
Tries to perform one step.
- Note
- This method is disabled if state_type=time_type to avoid ambiguity.
This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.
- Parameters
-
system | The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. |
in | The state of the ODE which should be solved. |
t | The value of the time. Updated if the step is successful. |
out | Used to store the result of the step. |
dt | The step size. Updated. |
- Returns
- success if the step was accepted, fail otherwise.
References boost::numeric::odeint::detail::_1, boost::bind(), boost::ref(), template, and boost::detail::type.
template<class ErrorStepper , class ErrorChecker , class Resizer >
template<class System , class StateIn , class DerivIn , class StateOut >
Tries to perform one step.
This method tries to do one step with step size dt. If the error estimate is to large, the step is rejected and the method returns fail and the step size dt is reduced. If the error estimate is acceptably small, the step is performed, success is returned and dt might be increased to make the steps as large as possible. This method also updates t if a step is performed.
- Parameters
-
system | The system function to solve, hence the r.h.s. of the ODE. It must fulfill the Simple System concept. |
in | The state of the ODE which should be solved. |
dxdt | The derivative of state. |
t | The value of the time. Updated if the step is successful. |
out | Used to store the result of the step. |
dt | The step size. Updated. |
- Returns
- success if the step was accepted, fail otherwise.
References boost::numeric::odeint::detail::_1, boost::bind(), boost::numeric::BOOST_PREVENT_MACRO_SUBSTITUTION(), BOOST_USING_STD_MAX, BOOST_USING_STD_MIN, boost::numeric::odeint::fail, boost::numeric::in(), boost::accumulators::extract::max, boost::numeric::pow(), pow(), boost::ref(), boost::numeric::odeint::success, and template.