Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
IntegratorStep.hpp File Reference

Single-step explicit ODE integrators for Janus framework. More...

#include "janus/core/JanusConcepts.hpp"
#include "janus/core/JanusTypes.hpp"
#include <Eigen/Dense>
Include dependency graph for IntegratorStep.hpp:
This graph shows which files directly or indirectly include this file:

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.

Detailed Description

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.