aligator  0.9.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
aligator::dynamics::IntegratorAbstractTpl< _Scalar > Struct Template Reference

Base class for (implicit) numerical integrators. More...

#include <aligator/modelling/dynamics/integrator-abstract.hpp>

Inheritance diagram for aligator::dynamics::IntegratorAbstractTpl< _Scalar >:
[legend]
Collaboration diagram for aligator::dynamics::IntegratorAbstractTpl< _Scalar >:
[legend]

Public Types

using Scalar = _Scalar
 
using Base = DynamicsModelTpl<Scalar>
 
using BaseData = DynamicsDataTpl<Scalar>
 
using ContinuousDynamics = ContinuousDynamicsAbstractTpl<Scalar>
 
- Public Types inherited from aligator::DynamicsModelTpl< _Scalar >
using Scalar
 
using Data
 
using Manifold
 

Public Member Functions

template<typename U >
U * getDynamics ()
 
template<typename U >
const U * getDynamics () const
 
 IntegratorAbstractTpl (const xyz::polymorphic< ContinuousDynamics > &cont_dynamics)
 Constructor from instances of DynamicsType.
 
virtual ~IntegratorAbstractTpl ()=default
 
shared_ptr< BaseDatacreateData () const
 
- Public Member Functions inherited from aligator::DynamicsModelTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (_Scalar)
 
const Manifoldspace () const
 State space for the input.
 
const Manifoldspace_next () const
 State space for the output of this dynamics model.
 
virtual bool isExplicit () const
 Check if this dynamics model is implicit or explicit.
 
int nx1 () const
 
int nx2 () const
 
 DynamicsModelTpl (xyz::polymorphic< Manifold > space, const int nu)
 Constructor for dynamics.
 
 DynamicsModelTpl (xyz::polymorphic< Manifold > space, const int nu, xyz::polymorphic< Manifold > space_next)
 Constructor for dynamics. This constructor assumes same dimension for the current and next state.
 
virtual void evaluate (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, Data &) const=0
 
virtual void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, Data &) const=0
 
virtual void computeVectorHessianProducts (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, const ConstVectorRef &lbda, Data &data) const
 
virtual ~DynamicsModelTpl ()=default
 

Public Attributes

xyz::polymorphic< ContinuousDynamicscontinuous_dynamics_
 The underlying continuous dynamics.
 
- Public Attributes inherited from aligator::DynamicsModelTpl< _Scalar >
xyz::polymorphic< Manifoldspace_
 State space for the input.
 
xyz::polymorphic< Manifoldspace_next_
 State space for the output of this dynamics model.
 
const int ndx1
 State space dimension.
 
const int nu
 Control dimension.
 
const int ndx2
 Next state space dimension.
 

Detailed Description

template<typename _Scalar>
struct aligator::dynamics::IntegratorAbstractTpl< _Scalar >

Base class for (implicit) numerical integrators.

Numerical integrators are instances DynamicsModelTpl which call into a ContinuousDynamicsAbstractTpl and construct an integration rule. Their aim is to provide a discretization for DAEs

\[ f(x(t), u(t), \dot{x}(t)) = 0 \]

as

\[ \Phi(x_k, u_k, x_{k+1}) = 0. \]

Definition at line 24 of file integrator-abstract.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
using aligator::dynamics::IntegratorAbstractTpl< _Scalar >::Scalar = _Scalar

Definition at line 26 of file integrator-abstract.hpp.

◆ Base

template<typename _Scalar >
using aligator::dynamics::IntegratorAbstractTpl< _Scalar >::Base = DynamicsModelTpl<Scalar>

Definition at line 27 of file integrator-abstract.hpp.

◆ BaseData

template<typename _Scalar >
using aligator::dynamics::IntegratorAbstractTpl< _Scalar >::BaseData = DynamicsDataTpl<Scalar>

Definition at line 28 of file integrator-abstract.hpp.

◆ ContinuousDynamics

template<typename _Scalar >
using aligator::dynamics::IntegratorAbstractTpl< _Scalar >::ContinuousDynamics = ContinuousDynamicsAbstractTpl<Scalar>

Definition at line 29 of file integrator-abstract.hpp.

Constructor & Destructor Documentation

◆ IntegratorAbstractTpl()

template<typename _Scalar >
aligator::dynamics::IntegratorAbstractTpl< _Scalar >::IntegratorAbstractTpl ( const xyz::polymorphic< ContinuousDynamics > & cont_dynamics)
explicit

Constructor from instances of DynamicsType.

◆ ~IntegratorAbstractTpl()

template<typename _Scalar >
virtual aligator::dynamics::IntegratorAbstractTpl< _Scalar >::~IntegratorAbstractTpl ( )
virtualdefault

Member Function Documentation

◆ getDynamics() [1/2]

template<typename _Scalar >
template<typename U >
U * aligator::dynamics::IntegratorAbstractTpl< _Scalar >::getDynamics ( )
inline

Definition at line 34 of file integrator-abstract.hpp.

◆ getDynamics() [2/2]

template<typename _Scalar >
template<typename U >
const U * aligator::dynamics::IntegratorAbstractTpl< _Scalar >::getDynamics ( ) const
inline

Definition at line 37 of file integrator-abstract.hpp.

◆ createData()

template<typename _Scalar >
shared_ptr< BaseData > aligator::dynamics::IntegratorAbstractTpl< _Scalar >::createData ( ) const
virtual

Member Data Documentation

◆ continuous_dynamics_

template<typename _Scalar >
xyz::polymorphic<ContinuousDynamics> aligator::dynamics::IntegratorAbstractTpl< _Scalar >::continuous_dynamics_

The underlying continuous dynamics.

Definition at line 32 of file integrator-abstract.hpp.


The documentation for this struct was generated from the following files: