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 controlled_adams_bashforth_moulton

boost::numeric::odeint::controlled_adams_bashforth_moulton

Synopsis

// In header: <boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp>

template<typename ErrorStepper, 
         typename StepAdjuster = detail::pid_step_adjuster< typename ErrorStepper::state_type,     typename ErrorStepper::value_type,    typename ErrorStepper::deriv_type,    typename ErrorStepper::time_type,    typename ErrorStepper::algebra_type,    typename ErrorStepper::operations_type,    detail::H211PI    >, 
         typename OrderAdjuster = default_order_adjuster< ErrorStepper::order_value,    typename ErrorStepper::state_type,    typename ErrorStepper::value_type,    typename ErrorStepper::algebra_type    >, 
         typename Resizer = initially_resizer> 
class controlled_adams_bashforth_moulton {
public:
  // types
  typedef ErrorStepper                                                                             stepper_type;           
  typedef stepper_type::state_type                                                                 state_type;             
  typedef stepper_type::value_type                                                                 value_type;             
  typedef stepper_type::deriv_type                                                                 deriv_type;             
  typedef stepper_type::time_type                                                                  time_type;              
  typedef stepper_type::algebra_type                                                               algebra_type;           
  typedef stepper_type::operations_type                                                            operations_type;        
  typedef Resizer                                                                                  resizer_type;           
  typedef StepAdjuster                                                                             step_adjuster_type;     
  typedef OrderAdjuster                                                                            order_adjuster_type;    
  typedef controlled_stepper_tag                                                                   stepper_category;       
  typedef stepper_type::wrapped_state_type                                                         wrapped_state_type;     
  typedef stepper_type::wrapped_deriv_type                                                         wrapped_deriv_type;     
  typedef boost::array< wrapped_state_type, 4 >                                                    error_storage_type;     
  typedef stepper_type::coeff_type                                                                 coeff_type;             
  typedef controlled_adams_bashforth_moulton< ErrorStepper, StepAdjuster, OrderAdjuster, Resizer > controlled_stepper_type;

  // construct/copy/destruct
  controlled_adams_bashforth_moulton(step_adjuster_type = step_adjuster_type());

  // public member functions
  template<typename ExplicitStepper, typename System> 
    void initialize(ExplicitStepper, System, state_type &, time_type &, 
                    time_type);
  template<typename System> 
    void initialize(System, state_type &, time_type &, time_type);
  template<typename ExplicitStepper, typename System> 
    void initialize_controlled(ExplicitStepper, System, state_type &, 
                               time_type &, time_type &);
  template<typename System> 
    controlled_step_result 
    try_step(System, state_type &, time_type &, time_type &);
  template<typename System> 
    controlled_step_result 
    try_step(System, const state_type &, time_type &, state_type &, 
             time_type &);
  void reset();

  // private member functions
  template<typename StateType> bool resize_dxdt_impl(const StateType &);
  template<typename StateType> bool resize_xerr_impl(const StateType &);
  template<typename StateType> bool resize_xnew_impl(const StateType &);

  // public data members
  static const stepper_type::order_type order_value;
};

Description

controlled_adams_bashforth_moulton public construct/copy/destruct

  1. controlled_adams_bashforth_moulton(step_adjuster_type step_adjuster = step_adjuster_type());

controlled_adams_bashforth_moulton public member functions

  1. template<typename ExplicitStepper, typename System> 
      void initialize(ExplicitStepper stepper, System system, state_type & inOut, 
                      time_type & t, time_type dt);
  2. template<typename System> 
      void initialize(System system, state_type & inOut, time_type & t, 
                      time_type dt);
  3. template<typename ExplicitStepper, typename System> 
      void initialize_controlled(ExplicitStepper stepper, System system, 
                                 state_type & inOut, time_type & t, 
                                 time_type & dt);
  4. template<typename System> 
      controlled_step_result 
      try_step(System system, state_type & inOut, time_type & t, time_type & dt);
  5. template<typename System> 
      controlled_step_result 
      try_step(System system, const state_type & in, time_type & t, 
               state_type & out, time_type & dt);
  6. void reset();

controlled_adams_bashforth_moulton private member functions

  1. template<typename StateType> bool resize_dxdt_impl(const StateType & x);
  2. template<typename StateType> bool resize_xerr_impl(const StateType & x);
  3. template<typename StateType> bool resize_xnew_impl(const StateType & x);

PrevUpHomeNext