Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class template symplectic_rkn_sb3a_mclachlan

boost::numeric::odeint::symplectic_rkn_sb3a_mclachlan — Implement of the symmetric B3A method of Runge-Kutta-Nystroem method of sixth order.

Synopsis

// In header: <boost/numeric/odeint/stepper/symplectic_rkn_sb3a_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_mclachlan : public symplectic_nystroem_stepper_base {
public:
  // types
  typedef stepper_base_type::algebra_type algebra_type;
  typedef stepper_base_type::value_type   value_type;  

  // public member functions
  symplectic_rkn_sb3a_mclachlan(const algebra_type & = algebra_type());
};

Description

The method is of fourth order and has six stages. It is described HERE. This method cannot be used with multiprecision types since the coefficients are not defined analytically.

ToDo Add reference to the paper.

Template Parameters

  1. typename Coor

    The type representing the coordinates q.

  2. typename Momentum = Coor

    The type representing the coordinates p.

  3. typename Value = double

    The basic value type. Should be something like float, double or a high-precision type.

  4. typename CoorDeriv = Coor

    The type representing the time derivative of the coordinate dq/dt.

  5. typename MomentumDeriv = Coor
  6. typename Time = Value

    The type representing the time t.

  7. typename Algebra = typename algebra_dispatcher< Coor >::algebra_type

    The algebra.

  8. typename Operations = typename operations_dispatcher< Coor >::operations_type

    The operations.

  9. typename Resizer = initially_resizer

    The resizer policy.

symplectic_rkn_sb3a_mclachlan public member functions

  1. symplectic_rkn_sb3a_mclachlan(const algebra_type & algebra = algebra_type());
    Constructs the symplectic_rkn_sb3a_mclachlan. This constructor can be used as a default constructor if the algebra has a default constructor.

    Parameters:

    algebra

    A copy of algebra is made and stored inside explicit_stepper_base.


PrevUpHomeNext