Template Class LSODAIntegrator
Defined in File lsoda.hpp
Inheritance Relationships
Base Type
public diffeq::core::AdaptiveIntegrator< S >
(Template Class AdaptiveIntegrator)
Class Documentation
-
template<system_state S>
class LSODAIntegrator : public diffeq::core::AdaptiveIntegrator<S> LSODA integrator - automatically switches between stiff and non-stiff methods.
Automatically switches between non-stiff (Adams, approximated by RK45) and stiff (BDF) methods based on stiffness detection. This is a simplified version inspired by the original LSODA algorithm.
Public Types
-
using base_type = core::AdaptiveIntegrator<S>
Public Functions
-
inline explicit LSODAIntegrator(system_function sys, time_type rtol = static_cast<time_type>(1e-6), time_type atol = static_cast<time_type>(1e-9))
-
inline void step(state_type &state, time_type dt) override
-
inline time_type adaptive_step(state_type &state, time_type dt) override
-
inline MethodType get_current_method() const
-
inline void set_stiffness_detection_frequency(int frequency)
-
inline void integrate(state_type &state, time_type dt, time_type end_time) override
-
using base_type = core::AdaptiveIntegrator<S>