|
Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
|
Manages integrator lifecycle and stepping. More...
#include <IntegrationManager.hpp>
Public Types | |
| using | DerivativeFunc = std::function<JanusVector<Scalar>(Scalar, const JanusVector<Scalar> &)> |
| Derivative function signature: (t, X) -> X_dot. | |
Public Member Functions | |
| IntegrationManager ()=default | |
| void | Configure (const IntegratorConfig< Scalar > &config) |
| Configure from IntegratorConfig. | |
| void | Configure (IntegratorType type) |
| Configure from integrator type enum. | |
| void | Configure (const std::string &type_name) |
| Configure from type name string. | |
| void | ConfigureDefault () |
| Configure with default integrator (RK4). | |
| JanusVector< Scalar > | Step (const DerivativeFunc &deriv_func, const JanusVector< Scalar > &X, Scalar t, Scalar dt) |
| Perform fixed-step integration. | |
| AdaptiveStepResult< Scalar > | AdaptiveStep (const DerivativeFunc &deriv_func, const JanusVector< Scalar > &X, Scalar t, Scalar dt_request) |
| Perform adaptive-step integration. | |
| IntegratorType | Type () const |
| Get current integrator type. | |
| const IntegratorConfig< Scalar > & | Config () const |
| Get current configuration. | |
| std::string | Name () const |
| Get integrator name. | |
| bool | IsConfigured () const |
| Check if integrator is configured. | |
| bool | IsAdaptive () const |
| Check if current integrator supports adaptive stepping. | |
| Integrator< Scalar > * | GetIntegrator () |
| Get direct access to integrator (expert use). | |
| const Integrator< Scalar > * | GetIntegrator () const |
| Get direct const access to integrator (expert use). | |
Manages integrator lifecycle and stepping.
Centralizes integrator management that was previously spread across Simulator methods.
| Scalar | Numeric type (double or casadi::MX) |
| using icarus::IntegrationManager< Scalar >::DerivativeFunc = std::function<JanusVector<Scalar>(Scalar, const JanusVector<Scalar> &)> |
Derivative function signature: (t, X) -> X_dot.
|
default |
|
inlinenodiscard |
Perform adaptive-step integration.
Only available for adaptive integrators (e.g., RK45).
| deriv_func | Derivative function (t, X) -> X_dot |
| X | Current state vector |
| t | Current time |
| dt_request | Requested time step |
|
inlinenodiscard |
Get current configuration.
|
inline |
Configure from IntegratorConfig.
Creates the appropriate integrator based on configuration.
| config | Integrator configuration |
|
inline |
Configure from type name string.
| type_name | Integrator type name (e.g., "RK4", "RK45") |
|
inline |
Configure from integrator type enum.
| type | Integrator type |
|
inline |
Configure with default integrator (RK4).
|
inlinenodiscard |
Get direct access to integrator (expert use).
|
inlinenodiscard |
Get direct const access to integrator (expert use).
|
inlinenodiscard |
Check if current integrator supports adaptive stepping.
|
inlinenodiscard |
Check if integrator is configured.
|
inlinenodiscard |
Get integrator name.
|
inlinenodiscard |
Perform fixed-step integration.
| deriv_func | Derivative function (t, X) -> X_dot |
| X | Current state vector |
| t | Current time |
| dt | Time step |
|
inlinenodiscard |
Get current integrator type.