DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
|
DOP853 (Dormand-Prince 8(5,3)) adaptive integrator. More...
#include <dop853.hpp>
Public Types | |
using | base_type = core::AdaptiveIntegrator< S > |
using | state_type = typename base_type::state_type |
using | time_type = typename base_type::time_type |
using | value_type = typename base_type::value_type |
using | system_function = typename base_type::system_function |
![]() | |
using | base_type = AbstractIntegrator< S > |
using | state_type = typename base_type::state_type |
using | time_type = typename base_type::time_type |
using | value_type = typename base_type::value_type |
using | system_function = typename base_type::system_function |
![]() | |
using | state_type = S |
using | time_type = typename S::value_type |
using | value_type = typename S::value_type |
using | system_function = std::function< void(time_type, const state_type &, state_type &)> |
Public Member Functions | |
DOP853Integrator (system_function sys, time_type rtol=static_cast< time_type >(1e-8), time_type atol=static_cast< time_type >(1e-10)) | |
void | step (state_type &state, time_type dt) override |
time_type | adaptive_step (state_type &state, time_type dt) override |
![]() | |
AdaptiveIntegrator (system_function sys, time_type rtol=static_cast< time_type >(1e-6), time_type atol=static_cast< time_type >(1e-9)) | |
void | integrate (state_type &state, time_type dt, time_type end_time) override |
virtual time_type | adaptive_step (state_type &state, time_type dt)=0 |
void | set_tolerances (time_type rtol, time_type atol) |
void | set_step_limits (time_type dt_min, time_type dt_max) |
![]() | |
AbstractIntegrator (system_function sys) | |
virtual void | step (state_type &state, time_type dt)=0 |
time_type | current_time () const |
void | set_time (time_type t) |
void | set_system (system_function sys) |
Public Attributes | |
time_type | safety_factor_ = fortran_safety |
time_type | fac1_ = fortran_fac1 |
time_type | fac2_ = fortran_fac2 |
time_type | beta_ = fortran_beta |
time_type | dt_max_ = fortran_dt_max |
time_type | dt_min_ = fortran_dt_min |
int | nmax_ = fortran_nmax |
int | nstiff_ = fortran_nstiff |
time_type | facold_ = static_cast<time_type>(1e-4) |
int | iastiff_ = 0 |
int | nonsti_ = 0 |
time_type | hlamb_ = 0 |
int | nstep_ = 0 |
int | naccpt_ = 0 |
int | nrejct_ = 0 |
int | nfcn_ = 0 |
time_type | target_time_ = 0 |
Static Public Attributes | |
static constexpr time_type | fortran_safety = static_cast<time_type>(0.9) |
static constexpr time_type | fortran_fac1 = static_cast<time_type>(0.333) |
static constexpr time_type | fortran_fac2 = static_cast<time_type>(6.0) |
static constexpr time_type | fortran_beta = static_cast<time_type>(0.0) |
static constexpr time_type | fortran_dt_max = static_cast<time_type>(1e100) |
static constexpr time_type | fortran_dt_min = static_cast<time_type>(1e-16) |
static constexpr int | fortran_nmax = 100000 |
static constexpr int | fortran_nstiff = 1000 |
Additional Inherited Members | |
![]() | |
time_type | calculate_tolerance (value_type y_val) const |
time_type | error_norm (const state_type &error, const state_type &y) const |
time_type | error_norm_scipy_style (const state_type &error, const state_type &y_old, const state_type &y_new) const |
time_type | suggest_step_size (time_type current_dt, time_type error_norm, int order) const |
![]() | |
void | advance_time (time_type dt) |
![]() | |
time_type | rtol_ |
time_type | atol_ |
time_type | dt_min_ |
time_type | dt_max_ |
time_type | safety_factor_ |
![]() | |
system_function | sys_ |
time_type | current_time_ |
DOP853 (Dormand-Prince 8(5,3)) adaptive integrator.
Eighth-order method with embedded 5th and 3rd order error estimation. Reference: Hairer, Norsett, Wanner, "Solving Ordinary Differential Equations I"
Definition at line 51 of file dop853.hpp.
using diffeq::DOP853Integrator< S >::base_type = core::AdaptiveIntegrator<S> |
Definition at line 55 of file dop853.hpp.
using diffeq::DOP853Integrator< S >::state_type = typename base_type::state_type |
Definition at line 56 of file dop853.hpp.
using diffeq::DOP853Integrator< S >::system_function = typename base_type::system_function |
Definition at line 59 of file dop853.hpp.
using diffeq::DOP853Integrator< S >::time_type = typename base_type::time_type |
Definition at line 57 of file dop853.hpp.
using diffeq::DOP853Integrator< S >::value_type = typename base_type::value_type |
Definition at line 58 of file dop853.hpp.
|
inlineexplicit |
Definition at line 176 of file dop853.hpp.
|
inlineoverride |
Definition at line 189 of file dop853.hpp.
|
inlineoverride |
Definition at line 181 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::beta_ = fortran_beta |
Definition at line 75 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::dt_max_ = fortran_dt_max |
Definition at line 76 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::dt_min_ = fortran_dt_min |
Definition at line 77 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::fac1_ = fortran_fac1 |
Definition at line 73 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::fac2_ = fortran_fac2 |
Definition at line 74 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::facold_ = static_cast<time_type>(1e-4) |
Definition at line 80 of file dop853.hpp.
|
staticconstexpr |
Definition at line 65 of file dop853.hpp.
|
staticconstexpr |
Definition at line 66 of file dop853.hpp.
|
staticconstexpr |
Definition at line 67 of file dop853.hpp.
|
staticconstexpr |
Definition at line 63 of file dop853.hpp.
|
staticconstexpr |
Definition at line 64 of file dop853.hpp.
|
staticconstexpr |
Definition at line 68 of file dop853.hpp.
|
staticconstexpr |
Definition at line 69 of file dop853.hpp.
|
staticconstexpr |
Definition at line 62 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::hlamb_ = 0 |
Definition at line 84 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::iastiff_ = 0 |
Definition at line 82 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::naccpt_ = 0 |
Definition at line 87 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::nfcn_ = 0 |
Definition at line 89 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::nmax_ = fortran_nmax |
Definition at line 78 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::nonsti_ = 0 |
Definition at line 83 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::nrejct_ = 0 |
Definition at line 88 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::nstep_ = 0 |
Definition at line 86 of file dop853.hpp.
int diffeq::DOP853Integrator< S >::nstiff_ = fortran_nstiff |
Definition at line 79 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::safety_factor_ = fortran_safety |
Definition at line 72 of file dop853.hpp.
time_type diffeq::DOP853Integrator< S >::target_time_ = 0 |
Definition at line 187 of file dop853.hpp.