![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template explicit_generic_rkBoost , Chapter 1. Boost.Numeric.Odeint , Header <boost/numeric/odeint/stepper/explicit_generic_rk.hpp>
|
![]() | Home | Libraries | People | FAQ | More |
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.
// 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 &); };
Этот класс реализует явные алгоритмы Рунге-Кутта без оценки ошибок общим способом. Таблица Мясника передается степперу, который строит степперную схему с помощью алгоритма шаблонного метапрограммирования. ToDo: Добавьте пример!
Этот класс получает эксплицитную_stepper_base, которая обеспечивает интерфейс Stepper.
size_tStageCount
>Количество этапов алгоритма Рунге-Кутта.
size_tOrder
>Порядок степпера.
typenameState
>Тип, представляющий состояние ОДЭ.
typenameValue
>Тип плавающей точки, используемый в вычислениях.
typenameDeriv
>typenameTime
>Тип, представляющий независимую переменную - время - ОДЭ.
typenameAlgebra
>Тип алгебры.
typenameOperations
>Тип операции.
typenameResizer
>Тип политики резистора.
explicit_generic_rk
public
construct/copy/destructexplicit_generic_rk(constcoef_a_type&a,constcoef_b_type&b, constcoef_c_type&c, constalgebra_type&algebra=algebra_type());>Составляет<
explicit_generic_rk
>класс. См. раздел примеров для подробной информации о коэффициентах.Копия алгебры сделана и хранится внутри эксплицитной_степной_базы.
Последний ряд таблицы мясника.
explicit_generic_rk
public member functionstemplate<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
>не должен называться напрямую.Параметры: |
|
template<typenameStateIn>voidadjust_size(constStateIn&x);>Установите размер всех временных интервалов в степпере вручную.
Статья 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 |