boost::numeric::odeint::symplectic_rkn_sb3a_m4_mclachlan — Implementation of the symmetric B3A Runge-Kutta Nystroem method of fifth order.
// In header: <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp> template<typename Coor, typename Momentum = Coor, typename Value = double, typename CoorDeriv = Coor, typename MomentumDeriv = Coor, typename Time = Value, typename Algebra = typename algebra_dispatcher< Coor >::algebra_type, typename Operations = typename operations_dispatcher< Coor >::operations_type, typename Resizer = initially_resizer> class symplectic_rkn_sb3a_m4_mclachlan : public symplectic_nystroem_stepper_base { public: // types typedef stepper_base_type::algebra_type algebra_type; typedef stepper_base_type::value_type value_type; // construct/copy/destruct symplectic_rkn_sb3a_m4_mclachlan(const algebra_type & = algebra_type()); };
The method is of fourth order and has five stages. It is described HERE. This method can be used with multiprecision types since the coefficients are defined analytically.
ToDo: add reference to paper.
typename Coor
The type representing the coordinates q.
typename Momentum = Coor
The type representing the coordinates p.
typename Value = double
The basic value type. Should be something like float, double or a high-precision type.
typename CoorDeriv = Coor
The type representing the time derivative of the coordinate dq/dt.
typename MomentumDeriv = Coor
typename Time = Value
The type representing the time t.
typename Algebra = typename algebra_dispatcher< Coor >::algebra_type
The algebra.
typename Operations = typename operations_dispatcher< Coor >::operations_type
The operations.
typename Resizer = initially_resizer
The resizer policy.
symplectic_rkn_sb3a_m4_mclachlan
public
construct/copy/destructsymplectic_rkn_sb3a_m4_mclachlan(const algebra_type & algebra = algebra_type());Constructs the
symplectic_rkn_sb3a_m4_mclachlan
. This constructor can be used as a default constructor if the algebra has a default constructor.
Parameters: |
|