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

Class template explicit_generic_rk

Boost , Chapter 1. Boost.Numeric.Odeint , Header <boost/numeric/odeint/stepper/explicit_generic_rk.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 explicit_generic_rk

boost::numeric::odeint::explicit_generic_rk — A generic implementation of explicit Runge-Kutta algorithms. This class is as a base class for all explicit Runge-Kutta steppers.

Synopsis

// In header: <boost/numeric/odeint/stepper/explicit_generic_rk.hpp>
template<size_t StageCount, size_t Order, typename State, typename Value,
         typename Deriv, typename Time, typename Algebra, typename Operations,
         typename Resizer>
class explicit_generic_rk : public explicit_stepper_base {
public:
  // types
  typedef explicit_stepper_base< ... >          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 unspecified                           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;
  // construct/copy/destruct
  explicit_generic_rk(const coef_a_type &, const coef_b_type &,
                      const coef_c_type &,
                      const algebra_type & = algebra_type());
  // public member functions
  template<typename System, typename StateIn, typename DerivIn,
           typename StateOut>
    void do_step_impl(System, const StateIn &, const DerivIn &, time_type,
                      StateOut &, time_type);
  template<typename StateIn> void adjust_size(const StateIn &);
  // private member functions
  template<typename StateIn> bool resize_impl(const StateIn &);
};

Description

Этот класс реализует явные алгоритмы Рунге-Кутта без оценки ошибок общим способом. Таблица Мясника передается степперу, который строит степперную схему с помощью алгоритма шаблонного метапрограммирования. ToDo: Добавьте пример!

Этот класс получает эксплицитную_stepper_base, которая обеспечивает интерфейс Stepper.

Template Parameters

  1. <
    size_tStageCount
    >

    Количество этапов алгоритма Рунге-Кутта.

  2. <
    size_tOrder
    >

    Порядок степпера.

  3. <
    typenameState
    >

    Тип, представляющий состояние ОДЭ.

  4. <
    typenameValue
    >

    Тип плавающей точки, используемый в вычислениях.

  5. <
    typenameDeriv
    >
  6. <
    typenameTime
    >

    Тип, представляющий независимую переменную - время - ОДЭ.

  7. <
    typenameAlgebra
    >

    Тип алгебры.

  8. <
    typenameOperations
    >

    Тип операции.

  9. <
    typenameResizer
    >

    Тип политики резистора.

explicit_generic_rk public construct/copy/destruct

  1. <
    explicit_generic_rk(constcoef_a_type&a,constcoef_b_type&b,
                       constcoef_c_type&c,
                       constalgebra_type&algebra=algebra_type());
    >Составляет<explicit_generic_rk>класс. См. раздел примеров для подробной информации о коэффициентах.

Копия алгебры сделана и хранится внутри эксплицитной_степной_базы.

Последний ряд таблицы мясника.

[43

explicit_generic_rk public member functions

  1. <
    template<typenameSystem,typenameStateIn,typenameDerivIn,
            typenameStateOut>
     voiddo_step_impl(Systemsystem,constStateIn&in,constDerivIn&dxdt,
                       time_typet,StateOut&out,time_typedt);
    >Этот метод выполняет один шаг. Производное<dxdt>из<in>в момент<t>переходит к способу. Результат обновляется неуместно, следовательно, вход в<in>и выход в<out>. Доступ к этой функциональности шага обеспечивается по явному_stepper_base и<do_step_impl>не должен называться напрямую.

    Параметры:

    <dt>

    <dxdt>

    Производная от x при t.

    <in>

    Состояние ОДЭ, которое должно быть решено. не изменяется в этом способе

    <out>

    Результат шага записывается.

    <system>

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

    <t>

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

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

    Параметры:

    <x>

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

explicit_generic_rk private member functions

  1. <
    template<typenameStateIn>boolresize_impl(constStateIn&x);
    >

PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 03:32:35/0.004417896270752/0