11#include <janus/math/IntegratorStep.hpp>
33 return janus::euler_step(f, x, t, dt);
36 [[nodiscard]] std::string
Name()
const override {
return "Euler"; }
37 [[nodiscard]]
int Order()
const override {
return 1; }
59 return janus::rk2_step(f, x, t, dt);
62 [[nodiscard]] std::string
Name()
const override {
return "RK2"; }
63 [[nodiscard]]
int Order()
const override {
return 2; }
94 return janus::rk4_step(f, x, t, dt);
97 [[nodiscard]] std::string
Name()
const override {
return "RK4"; }
98 [[nodiscard]]
int Order()
const override {
return 4; }
Abstract interface for numerical integrators.
Forward Euler integrator (1st order).
Definition RK4Integrator.hpp:27
IntegratorType Type() const override
Get integrator type.
Definition RK4Integrator.hpp:38
JanusVector< Scalar > Step(const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) override
Advance state by one step.
Definition RK4Integrator.hpp:31
int Order() const override
Get integrator order (for error analysis).
Definition RK4Integrator.hpp:37
std::string Name() const override
Get integrator name for logging.
Definition RK4Integrator.hpp:36
Abstract interface for numerical integrators.
Definition Integrator.hpp:45
std::function< JanusVector< Scalar >(Scalar t, const JanusVector< Scalar > &x)> DerivativeFunc
Derivative function signature.
Definition Integrator.hpp:54
Heun's method / RK2 integrator (2nd order).
Definition RK4Integrator.hpp:53
IntegratorType Type() const override
Get integrator type.
Definition RK4Integrator.hpp:64
std::string Name() const override
Get integrator name for logging.
Definition RK4Integrator.hpp:62
int Order() const override
Get integrator order (for error analysis).
Definition RK4Integrator.hpp:63
JanusVector< Scalar > Step(const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) override
Advance state by one step.
Definition RK4Integrator.hpp:57
Classic 4th-order Runge-Kutta integrator.
Definition RK4Integrator.hpp:88
int Order() const override
Get integrator order (for error analysis).
Definition RK4Integrator.hpp:98
IntegratorType Type() const override
Get integrator type.
Definition RK4Integrator.hpp:99
std::string Name() const override
Get integrator name for logging.
Definition RK4Integrator.hpp:97
JanusVector< Scalar > Step(const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) override
Advance state by one step.
Definition RK4Integrator.hpp:92
Definition AggregationTypes.hpp:13
IntegratorType
Available integrator methods.
Definition IntegratorTypes.hpp:27
@ Euler
Forward Euler (1st order, 1 eval) - janus::euler_step.
Definition IntegratorTypes.hpp:28
@ RK2
Heun's method (2nd order, 2 evals) - janus::rk2_step.
Definition IntegratorTypes.hpp:29
@ RK4
Classic RK4 (4th order, 4 evals) - janus::rk4_step.
Definition IntegratorTypes.hpp:30