Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
icarus::AdaptiveIntegrator< Scalar > Class Template Referenceabstract

Interface for adaptive step integrators. More...

#include <Integrator.hpp>

Inheritance diagram for icarus::AdaptiveIntegrator< Scalar >:
Collaboration diagram for icarus::AdaptiveIntegrator< Scalar >:

Public Member Functions

virtual AdaptiveStepResult< Scalar > AdaptiveStep (const DerivativeFunc &f, const JanusVector< Scalar > &x, Scalar t, Scalar dt)=0
 Advance with error control.
bool IsAdaptive () const override
 Check if integrator supports adaptive stepping.
virtual void SetAbsTol (Scalar tol)=0
 Set absolute tolerance.
virtual void SetRelTol (Scalar tol)=0
 Set relative tolerance.
virtual Scalar GetAbsTol () const =0
 Get current absolute tolerance.
virtual Scalar GetRelTol () const =0
 Get current relative tolerance.
Public Member Functions inherited from icarus::Integrator< Scalar >
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.

Additional Inherited Members

Public Types inherited from icarus::Integrator< Scalar >
using DerivativeFunc
 Derivative function signature.

Detailed Description

template<typename Scalar>
class icarus::AdaptiveIntegrator< Scalar >

Interface for adaptive step integrators.

Extends base Integrator with error-controlled stepping.

Template Parameters
ScalarNumeric type (double or casadi::MX)

Member Function Documentation

◆ AdaptiveStep()

template<typename Scalar>
virtual AdaptiveStepResult< Scalar > icarus::AdaptiveIntegrator< Scalar >::AdaptiveStep ( const DerivativeFunc & f,
const JanusVector< Scalar > & x,
Scalar t,
Scalar dt )
pure virtual

Advance with error control.

May take a smaller step than requested to meet tolerance.

Parameters
fDerivative function
xCurrent state vector
tCurrent time
dtRequested time step
Returns
Result with actual step, error, and acceptance status

Implemented in icarus::RK45Integrator< Scalar >.

◆ GetAbsTol()

template<typename Scalar>
virtual Scalar icarus::AdaptiveIntegrator< Scalar >::GetAbsTol ( ) const
nodiscardpure virtual

Get current absolute tolerance.

Implemented in icarus::RK45Integrator< Scalar >.

◆ GetRelTol()

template<typename Scalar>
virtual Scalar icarus::AdaptiveIntegrator< Scalar >::GetRelTol ( ) const
nodiscardpure virtual

Get current relative tolerance.

Implemented in icarus::RK45Integrator< Scalar >.

◆ IsAdaptive()

template<typename Scalar>
bool icarus::AdaptiveIntegrator< Scalar >::IsAdaptive ( ) const
inlinenodiscardoverridevirtual

Check if integrator supports adaptive stepping.

Reimplemented from icarus::Integrator< Scalar >.

◆ SetAbsTol()

template<typename Scalar>
virtual void icarus::AdaptiveIntegrator< Scalar >::SetAbsTol ( Scalar tol)
pure virtual

Set absolute tolerance.

Implemented in icarus::RK45Integrator< Scalar >.

◆ SetRelTol()

template<typename Scalar>
virtual void icarus::AdaptiveIntegrator< Scalar >::SetRelTol ( Scalar tol)
pure virtual

Set relative tolerance.

Implemented in icarus::RK45Integrator< Scalar >.


The documentation for this class was generated from the following file: