Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template dense_output_runge_kutta<Stepper, stepper_tag>

Boost , Chapter 1. Boost.Numeric.Odeint , Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>

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++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext

Class template dense_output_runge_kutta<Stepper, stepper_tag>

boost::numeric::odeint::dense_output_runge_kutta<Stepper, stepper_tag> — The class representing dense-output Runge-Kutta steppers.

Synopsis

// In header: <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>
template<typename Stepper>
class dense_output_runge_kutta<Stepper, stepper_tag> {
public:
  // types
  typedef Stepper                             stepper_type;
  typedef stepper_type::state_type            state_type;
  typedef stepper_type::wrapped_state_type    wrapped_state_type;
  typedef stepper_type::value_type            value_type;
  typedef stepper_type::deriv_type            deriv_type;
  typedef stepper_type::wrapped_deriv_type    wrapped_deriv_type;
  typedef stepper_type::time_type             time_type;
  typedef stepper_type::algebra_type          algebra_type;
  typedef stepper_type::operations_type       operations_type;
  typedef stepper_type::resizer_type          resizer_type;
  typedef dense_output_stepper_tag            stepper_category;
  typedef dense_output_runge_kutta< Stepper > dense_output_stepper_type;
  // construct/copy/destruct
  dense_output_runge_kutta(const stepper_type & = stepper_type());
  // public member functions
  template<typename StateType>
    void initialize(const StateType &, time_type, time_type);
  template<typename System> std::pair< time_type, time_type > do_step(System);
  template<typename StateOut> void calc_state(time_type, StateOut &) const;
  template<typename StateOut>
    void calc_state(time_type, const StateOut &) const;
  template<typename StateType> void adjust_size(const StateType &);
  const state_type & current_state(void) const;
  time_type current_time(void) const;
  const state_type & previous_state(void) const;
  time_type previous_time(void) const;
  time_type current_time_step(void) const;
  // private member functions
  state_type & get_current_state(void);
  const state_type & get_current_state(void) const;
  state_type & get_old_state(void);
  const state_type & get_old_state(void) const;
  void toggle_current_state(void);
  template<typename StateIn> bool resize_impl(const StateIn &);
};

Description

[Note]Note

В этом шаге метод инициализации должен быть назван перед использованием метода do_step.

Функциональность плотного вывода позволяет интерполировать решение между последующими точками интеграции с использованием промежуточных результатов, полученных в ходе вычислений. Эта версия работает на основе обычного степпера без пошагового контроля.

Template Parameters

  1. typenameStepper

    Шаговой тип базового алгоритма.

dense_output_runge_kutta public construct/copy/destruct

  1. Параметры

    stepper

    Пример степа.

    [ORIG_END] -->

dense_output_runge_kutta public member functions

  1. template<typenameStateType>
     voidinitialize(constStateType&x0,time_typet0,time_typedt0);
    Инициирует степпера. Должен быть вызван, прежде чем do_step может быть использован для установки начальных условий и размера шага.

    Параметры:

    dt0

    Размер шага.

    t0

    Начальное время, в которое должен быть выполнен шаг.

    x0

    Начальное состояние ОДЭ, которое должно быть решено.

  2. template<typenameSystem>
     std::pair<time_type,time_type>do_step(Systemsystem);
    Делает один раз шаг.
    [Note]Примечание

    инициализация должна быть вызвана перед использованием этого метода для установки начальных условий x,t и шагов.

    Параметры:

    system

    Функция системы решает, следовательно, r.h.s. обычного дифференциального уравнения. Он должен соответствовать концепции простой системы

    . Возвращение:

    Пара со временем начала и окончания этапа интеграции.

  3. template<typenameStateOut>voidcalc_state(time_typet,StateOut&x)const;
    Рассчитывается раствор в промежуточной точке.

    Параметры:

    t

    Время, в которое должно быть рассчитано решение, должно находиться в текущем временном интервале.

    x

    Выходная переменная, в которую записывается результат.

  4. template<typenameStateOut>
     voidcalc_state(time_typet,constStateOut&x)const;
    Рассчитывается раствор в промежуточной точке. Решает проблему пересылки.

Параметры:

t

Время, в которое должно быть рассчитано решение, должно находиться в текущем временном интервале.

x

Выходная переменная, в которую записывается результат, может быть диапазоном усиления.

  • template<typenameStateType>voidadjust_size(constStateType&x);
    Установите размер всех временных интервалов в степпере вручную.

    Параметры:

    x

    Выводится состояние, из которого выводится размер временной величины.

  • conststate_type&current_state(void)const;
    Возвращает текущее состояние раствора.

    Возвращает:

    Текущее состояние раствора x(t).

  • time_typecurrent_time(void)const;
    возвращает текущее время решения.

    Возвращение:

    Текущее время раствора т.

  • conststate_type&previous_state(void)const;
    Возвращает последнее состояние раствора.

    Возвращение:

    Последнее состояние решения x(t-dt).

  • time_typeprevious_time(void)const;
    Возвращает последний раз раствор.

    Возвращение:

    Последний раз решение t-dt.

  • dt.

    [ORIG_END] -->
  • dense_output_runge_kutta private member functions

    1. <
      state_type&get_current_state(void);
      >
    2. <
      conststate_type&get_current_state(void)const;
      >
    3. <
      state_type&get_old_state(void);
      >
    4. <
      conststate_type&get_old_state(void)const;
      >
    5. <
      voidtoggle_current_state(void);
      >
    6. <
      template<typenameStateIn>boolresize_impl(constStateIn&x);
      >

    PrevUpHomeNext

    Статья Class template dense_output_runge_kutta<Stepper, stepper_tag> раздела Chapter 1. Boost.Numeric.Odeint Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp> может быть полезна для разработчиков на c++ и boost.




    Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



    :: Главная :: Header <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp> ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-05-20 05:31:53/0.0069119930267334/1