55 std::function<JanusVector<Scalar>(Scalar t,
const JanusVector<Scalar> &x)>;
67 Scalar t, Scalar dt) = 0;
72 [[nodiscard]]
virtual std::string
Name()
const = 0;
77 [[nodiscard]]
virtual int Order()
const = 0;
87 [[nodiscard]]
virtual bool IsAdaptive()
const {
return false; }
119 [[nodiscard]]
bool IsAdaptive()
const override {
return true; }
Core type definitions, concepts, and configuration for Icarus.
Integrator type enumeration and configuration.
Interface for adaptive step integrators.
Definition Integrator.hpp:101
virtual void SetAbsTol(Scalar tol)=0
Set absolute tolerance.
virtual AdaptiveStepResult< Scalar > AdaptiveStep(const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt)=0
Advance with error control.
virtual Scalar GetRelTol() const =0
Get current relative tolerance.
virtual void SetRelTol(Scalar tol)=0
Set relative tolerance.
bool IsAdaptive() const override
Check if integrator supports adaptive stepping.
Definition Integrator.hpp:119
virtual Scalar GetAbsTol() const =0
Get current absolute tolerance.
Abstract interface for numerical integrators.
Definition Integrator.hpp:45
virtual ~Integrator()=default
virtual IntegratorType Type() const =0
Get integrator type.
virtual std::string Name() const =0
Get integrator name for logging.
virtual bool IsAdaptive() const
Check if integrator supports adaptive stepping.
Definition Integrator.hpp:87
virtual JanusVector< Scalar > Step(const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt)=0
Advance state by one step.
virtual int Order() const =0
Get integrator order (for error analysis).
std::function< JanusVector< Scalar >(Scalar t, const JanusVector< Scalar > &x)> DerivativeFunc
Derivative function signature.
Definition Integrator.hpp:54
Definition AggregationTypes.hpp:13
IntegratorType
Available integrator methods.
Definition IntegratorTypes.hpp:27
Result from adaptive step integrators.
Definition Integrator.hpp:26
JanusVector< Scalar > state
New state at t + dt_actual.
Definition Integrator.hpp:27
Scalar error_estimate
Local truncation error estimate.
Definition Integrator.hpp:29
bool accepted
Whether step was accepted.
Definition Integrator.hpp:30
Scalar dt_actual
Actual step taken (may differ from requested).
Definition Integrator.hpp:28