|
Janus 2.0.0
High-performance C++20 dual-mode numerical framework
|
Single-step explicit ODE integrators for Janus framework. More...


Go to the source code of this file.
Classes | |
| struct | janus::SecondOrderStepResult< Scalar > |
| Result of a second-order integration step. More... | |
| struct | janus::RK45Result< Scalar > |
| Result of RK45 step with error estimate. More... | |
Namespaces | |
| namespace | janus |
Functions | |
| template<typename Scalar, typename Func> | |
| JanusVector< Scalar > | janus::euler_step (Func &&f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) |
| Forward Euler integration step. | |
| template<typename Scalar, typename Func> | |
| JanusVector< Scalar > | janus::rk2_step (Func &&f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) |
| Heun's method (RK2) integration step. | |
| template<typename Scalar, typename Func> | |
| JanusVector< Scalar > | janus::rk4_step (Func &&f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) |
| Classic 4th-order Runge-Kutta integration step. | |
| template<typename Scalar, typename AccelFunc> | |
| SecondOrderStepResult< Scalar > | janus::stormer_verlet_step (AccelFunc &&acceleration, const JanusVector< Scalar > &q, const JanusVector< Scalar > &v, Scalar t, Scalar dt) |
| Stormer-Verlet / velocity-Verlet step for q'' = a(t, q). | |
| template<typename Scalar, typename AccelFunc> | |
| SecondOrderStepResult< Scalar > | janus::rkn4_step (AccelFunc &&acceleration, const JanusVector< Scalar > &q, const JanusVector< Scalar > &v, Scalar t, Scalar dt) |
| Classical 4th-order Runge-Kutta-Nystrom step for q'' = a(t, q). | |
| template<typename Scalar, typename Func> | |
| RK45Result< Scalar > | janus::rk45_step (Func &&f, const JanusVector< Scalar > &x, Scalar t, Scalar dt) |
| Dormand-Prince RK45 integration step with embedded error estimate. | |
Single-step explicit ODE integrators for Janus framework.
Provides euler_step, rk2_step, rk4_step, and rk45_step for explicit fixed-step integration. All functions are templated on Scalar for dual-mode (numeric/symbolic) compatibility.
These are the fundamental building blocks used by solve_ivp and can be called directly for custom simulation loops.