Template Class DOP853Integrator

Inheritance Relationships

Base Type

Class Documentation

template<system_state S>
class DOP853Integrator : public diffeq::core::AdaptiveIntegrator<S>

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”

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

Public Functions

inline explicit DOP853Integrator(system_function sys, time_type rtol = static_cast<time_type>(1e-8), time_type atol = static_cast<time_type>(1e-10))
inline void step(state_type &state, time_type dt) override
inline time_type adaptive_step(state_type &state, time_type dt) override

Public Members

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

Public Static 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