|
Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
|
Abstract interface for numerical integrators. More...
#include <Integrator.hpp>

Public Types | |
| using | DerivativeFunc |
| Derivative function signature. | |
Public Member Functions | |
| virtual | ~Integrator ()=default |
| virtual JanusVector< Scalar > | Step (const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt)=0 |
| Advance state by one step. | |
| virtual std::string | Name () const =0 |
| Get integrator name for logging. | |
| virtual int | Order () const =0 |
| Get integrator order (for error analysis). | |
| virtual IntegratorType | Type () const =0 |
| Get integrator type. | |
| virtual bool | IsAdaptive () const |
| Check if integrator supports adaptive stepping. | |
Abstract interface for numerical integrators.
Integrators advance state using derivative information from the Simulator. All implementations are templated on Scalar for symbolic mode support.
| Scalar | Numeric type (double or casadi::MX) |
| using icarus::Integrator< Scalar >::DerivativeFunc |
Derivative function signature.
Maps (t, X) → dX/dt
|
virtualdefault |
|
inlinenodiscardvirtual |
Check if integrator supports adaptive stepping.
Reimplemented in icarus::AdaptiveIntegrator< Scalar >.
|
nodiscardpure virtual |
Get integrator name for logging.
Implemented in icarus::EulerIntegrator< Scalar >, icarus::RK2Integrator< Scalar >, icarus::RK45Integrator< Scalar >, and icarus::RK4Integrator< Scalar >.
|
nodiscardpure virtual |
Get integrator order (for error analysis).
Implemented in icarus::EulerIntegrator< Scalar >, icarus::RK2Integrator< Scalar >, icarus::RK45Integrator< Scalar >, and icarus::RK4Integrator< Scalar >.
|
pure virtual |
Advance state by one step.
| f | Derivative function |
| x | Current state vector |
| t | Current time |
| dt | Requested time step |
Implemented in icarus::EulerIntegrator< Scalar >, icarus::RK2Integrator< Scalar >, icarus::RK45Integrator< Scalar >, and icarus::RK4Integrator< Scalar >.
|
nodiscardpure virtual |
Get integrator type.
Implemented in icarus::EulerIntegrator< Scalar >, icarus::RK2Integrator< Scalar >, icarus::RK45Integrator< Scalar >, and icarus::RK4Integrator< Scalar >.