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

Semi-implicit Euler integrator \( x_{k+1} = x_k \oplus h f(x_k, u_k)\). More...

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

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

Public Types

using Scalar = _Scalar
 
using Base = ExplicitIntegratorAbstractTpl<Scalar>
 
using BaseData = ExplicitDynamicsDataTpl<Scalar>
 
using Data = IntegratorSemiImplDataTpl<Scalar>
 
using ODEType = ODEAbstractTpl<Scalar>
 
- Public Types inherited from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >
using Scalar = _Scalar
 
using ODEType = ODEAbstractTpl<Scalar>
 
using Base = ExplicitDynamicsModelTpl<Scalar>
 
using Data = ExplicitIntegratorDataTpl<Scalar>
 
using Manifold = ManifoldAbstractTpl<Scalar>
 
- Public Types inherited from aligator::ExplicitDynamicsModelTpl< _Scalar >
using Scalar = _Scalar
 
using Base = DynamicsModelTpl<Scalar>
 
using BaseData = DynamicsDataTpl<Scalar>
 
using Data = ExplicitDynamicsDataTpl<Scalar>
 
using Manifold = ManifoldAbstractTpl<Scalar>
 
using ManifoldPtr = shared_ptr<Manifold>
 
- Public Types inherited from aligator::DynamicsModelTpl< _Scalar >
using Scalar = _Scalar
 
using Base = StageFunctionTpl<Scalar>
 
using Data = DynamicsDataTpl<Scalar>
 
using Manifold = ManifoldAbstractTpl<Scalar>
 
using ManifoldPtr = shared_ptr<Manifold>
 
- Public Types inherited from aligator::StageFunctionTpl< _Scalar >
using Scalar = _Scalar
 
using Data = StageFunctionDataTpl<Scalar>
 

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 IntegratorSemiImplEulerTpl (const shared_ptr< ODEType > &cont_dynamics, const Scalar timestep)
 
void forward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Evaluate the forward discrete dynamics.
 
void dForward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Compute the Jacobians of the forward dynamics.
 
shared_ptr< StageFunctionDataTpl< Scalar > > createData () const
 Instantiate a Data object.
 
- Public Member Functions inherited from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >
 ExplicitIntegratorAbstractTpl (const shared_ptr< ODEType > &cont_dynamics)
 
virtual ~ExplicitIntegratorAbstractTpl ()=default
 
void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, BaseData &data) const
 
void evaluate (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, BaseData &data) const
 
- Public Member Functions inherited from aligator::ExplicitDynamicsModelTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
bool is_explicit () const
 Check if this dynamics model is implicit or explicit.
 
 ExplicitDynamicsModelTpl (ManifoldPtr next_state, const int nu)
 Constructor requires providing the next state's manifold.
 
virtual ~ExplicitDynamicsModelTpl ()=default
 
void evaluate (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, BaseData &data) const
 
void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, BaseData &data) 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.
 
int nx1 () const
 
int nx2 () const
 
 DynamicsModelTpl (ManifoldPtr space, const int nu)
 Constructor for dynamics.
 
 DynamicsModelTpl (ManifoldPtr space, const int nu, ManifoldPtr space2)
 Constructor for dynamics. This constructor assumes same dimension for the current and next state.
 
- Public Member Functions inherited from aligator::StageFunctionTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 StageFunctionTpl (const int ndx1, const int nu, const int ndx2, const int nr)
 
 StageFunctionTpl (const int ndx, const int nu, const int nr)
 Constructor where ndx2 = ndx1.
 
virtual void evaluate (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, Data &data) const =0
 Evaluate the function.
 
virtual void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, Data &data) const =0
 Compute Jacobians of this function.
 
virtual void computeVectorHessianProducts (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, const ConstVectorRef &lbda, Data &data) const
 Compute the vector-hessian products of this function.
 
virtual ~StageFunctionTpl ()=default
 

Public Attributes

Scalar timestep_
 Integration time step \(h\).
 
- Public Attributes inherited from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >
shared_ptr< ODETypeode_
 
- Public Attributes inherited from aligator::DynamicsModelTpl< _Scalar >
ManifoldPtr space_
 State space for the input.
 
ManifoldPtr space_next_
 State space for the output of this dynamics model.
 
- Public Attributes inherited from aligator::StageFunctionTpl< _Scalar >
const int ndx1
 Current state dimension.
 
const int nu
 Control dimension.
 
const int ndx2
 Next state dimension.
 
const int nr
 Function codimension.
 

Detailed Description

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

Semi-implicit Euler integrator \( x_{k+1} = x_k \oplus h f(x_k, u_k)\).

Definition at line 17 of file integrator-semi-euler.hpp.

Member Typedef Documentation

◆ Scalar

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

Definition at line 18 of file integrator-semi-euler.hpp.

◆ Base

template<typename _Scalar >
using aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::Base = ExplicitIntegratorAbstractTpl<Scalar>

Definition at line 20 of file integrator-semi-euler.hpp.

◆ BaseData

template<typename _Scalar >
using aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::BaseData = ExplicitDynamicsDataTpl<Scalar>

Definition at line 21 of file integrator-semi-euler.hpp.

◆ Data

template<typename _Scalar >
using aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::Data = IntegratorSemiImplDataTpl<Scalar>

Definition at line 22 of file integrator-semi-euler.hpp.

◆ ODEType

template<typename _Scalar >
using aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::ODEType = ODEAbstractTpl<Scalar>

Definition at line 23 of file integrator-semi-euler.hpp.

Constructor & Destructor Documentation

◆ IntegratorSemiImplEulerTpl()

template<typename _Scalar >
aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::IntegratorSemiImplEulerTpl ( const shared_ptr< ODEType > & cont_dynamics,
const Scalar timestep )

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename _Scalar >
aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS ( Scalar )

◆ forward()

template<typename _Scalar >
void aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::forward ( const ConstVectorRef & x,
const ConstVectorRef & u,
BaseData & data ) const
virtual

Evaluate the forward discrete dynamics.

Implements aligator::ExplicitDynamicsModelTpl< _Scalar >.

◆ dForward()

template<typename _Scalar >
void aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::dForward ( const ConstVectorRef & x,
const ConstVectorRef & u,
BaseData & data ) const
virtual

Compute the Jacobians of the forward dynamics.

Implements aligator::ExplicitDynamicsModelTpl< _Scalar >.

◆ createData()

template<typename _Scalar >
shared_ptr< StageFunctionDataTpl< Scalar > > aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::createData ( ) const
inlinevirtual

Instantiate a Data object.

Reimplemented from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >.

Definition at line 38 of file integrator-semi-euler.hpp.

Member Data Documentation

◆ timestep_

template<typename _Scalar >
Scalar aligator::dynamics::IntegratorSemiImplEulerTpl< _Scalar >::timestep_

Integration time step \(h\).

Definition at line 27 of file integrator-semi-euler.hpp.


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