|
typedef explicit_stepper_base
< explicit_generic_rk
< StageCount, Order, State,
Value, Deriv,Time, Algebra,
Operations, Resizer >, Order,
State, Value, Deriv, Time,
Algebra, Operations, Resizer > | stepper_base_type |
|
typedef
stepper_base_type::state_type | state_type |
|
typedef
stepper_base_type::wrapped_state_type | wrapped_state_type |
|
typedef
stepper_base_type::value_type | value_type |
|
typedef
stepper_base_type::deriv_type | deriv_type |
|
typedef
stepper_base_type::wrapped_deriv_type | wrapped_deriv_type |
|
typedef
stepper_base_type::time_type | time_type |
|
typedef
stepper_base_type::algebra_type | algebra_type |
|
typedef
stepper_base_type::operations_type | operations_type |
|
typedef
stepper_base_type::resizer_type | resizer_type |
|
typedef explicit_generic_rk
< StageCount, Order, State,
Value, Deriv,Time, Algebra,
Operations, Resizer > | stepper_type |
|
typedef
detail::generic_rk_algorithm
< StageCount, Value, Algebra,
Operations > | rk_algorithm_type |
|
typedef
rk_algorithm_type::coef_a_type | coef_a_type |
|
typedef
rk_algorithm_type::coef_b_type | coef_b_type |
|
typedef
rk_algorithm_type::coef_c_type | coef_c_type |
|
typedef explicit_stepper_base
< explicit_generic_rk
< StageCount, Order, State,
Value, Deriv, Time, Algebra,
Operations, Resizer >, Order,
State, Value, Deriv, Time,
Algebra, Operations, Resizer > | internal_stepper_base_type |
|
typedef stepper_tag | stepper_category |
|
typedef algebra_stepper_base
< Algebra, Operations > | algebra_stepper_base_type |
|
typedef unsigned short | order_type |
|
|
| explicit_generic_rk (const coef_a_type &a, const coef_b_type &b, const coef_c_type &c, const algebra_type &algebra=algebra_type()) |
| Constructs the explicit_generic_rk class. More...
|
|
template<class System , class StateIn , class DerivIn , class StateOut > |
void | do_step_impl (System system, const StateIn &in, const DerivIn &dxdt, time_type t, StateOut &out, time_type dt) |
| This method performs one step. More...
|
|
template<class StateIn > |
void | adjust_size (const StateIn &x) |
| Adjust the size of all temporaries in the stepper manually. More...
|
|
order_type | order (void) const |
|
void | do_step (System system, StateInOut &x, time_type t, time_type dt) |
| This method performs one step. More...
|
|
void | do_step (System system, const StateInOut &x, time_type t, time_type dt) |
| Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut. More...
|
|
boost::disable_if
< boost::is_same< DerivIn,
time_type >, void >::type | do_step (System system, StateInOut &x, const DerivIn &dxdt, time_type t, time_type dt) |
| The method performs one step. More...
|
|
void | do_step (System system, const StateIn &in, time_type t, StateOut &out, time_type dt) |
| The method performs one step. More...
|
|
void | do_step (System system, const StateIn &in, const DerivIn &dxdt, time_type t, StateOut &out, time_type dt) |
| The method performs one step. More...
|
|
algebra_type & | algebra () |
|
const algebra_type & | algebra () const |
|
template<size_t StageCount, size_t Order, class State, class Value, class Deriv, class Time, class Algebra, class Operations, class Resizer>
class boost::numeric::odeint::explicit_generic_rk< StageCount, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer >
A generic implementation of explicit Runge-Kutta algorithms.
This class is as a base class for all explicit Runge-Kutta steppers.
This class implements the explicit Runge-Kutta algorithms without error estimation in a generic way. The Butcher tableau is passed to the stepper which constructs the stepper scheme with the help of a template-metaprogramming algorithm. ToDo : Add example!
This class derives explicit_stepper_base which provides the stepper interface.
- Template Parameters
-
StageCount | The number of stages of the Runge-Kutta algorithm. |
Order | The order of the stepper. |
State | The type representing the state of the ODE. |
Value | The floating point type which is used in the computations. |
Time | The type representing the independent variable - the time - of the ODE. |
Algebra | The algebra type. |
Operations | The operations type. |
Resizer | The resizer policy type. |
template<size_t StageCount, size_t Order, class State, class Value, class Deriv, class Time, class Algebra, class Operations, class Resizer>
boost::numeric::odeint::explicit_generic_rk< StageCount, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer >::explicit_generic_rk |
( |
const coef_a_type & |
a, |
|
|
const coef_b_type & |
b, |
|
|
const coef_c_type & |
c, |
|
|
const algebra_type & |
algebra = algebra_type() |
|
) |
| |
|
inline |
Constructs the explicit_generic_rk class.
See examples section for details on the coefficients.
- Parameters
-
a | Triangular matrix of parameters b in the Butcher tableau. |
b | Last row of the butcher tableau. |
c | Parameters to calculate the time points in the Butcher tableau. |
algebra | A copy of algebra is made and stored inside explicit_stepper_base. |
template<size_t StageCount, size_t Order, class State, class Value, class Deriv, class Time, class Algebra, class Operations, class Resizer>
template<class StateIn >
Adjust the size of all temporaries in the stepper manually.
- Parameters
-
x | A state from which the size of the temporaries to be resized is deduced. |
template<size_t StageCount, size_t Order, class State, class Value, class Deriv, class Time, class Algebra, class Operations, class Resizer>
template<class System , class StateIn , class DerivIn , class StateOut >
boost::numeric::odeint::explicit_generic_rk< StageCount, Order, State, Value, Deriv, Time, Algebra, Operations, Resizer >::do_step_impl |
( |
System |
system, |
|
|
const StateIn & |
in, |
|
|
const DerivIn & |
dxdt, |
|
|
time_type |
t, |
|
|
StateOut & |
out, |
|
|
time_type |
dt |
|
) |
| |
|
inline |
This method performs one step.
The derivative dxdt
of in
at the time t
is passed to the method. The result is updated out of place, hence the input is in in
and the output in out
. Access to this step functionality is provided by explicit_stepper_base and do_step_impl
should not be called directly.
- 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. in is not modified in this method |
dxdt | The derivative of x at t. |
t | The value of the time, at which the step should be performed. |
out | The result of the step is written in out. |
dt | The step size. |