aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
integrator-abstract.hpp
Go to the documentation of this file.
1#pragma once
5
8
9namespace aligator {
10namespace dynamics {
11
23template <typename _Scalar>
25public:
26 using Scalar = _Scalar;
27 using Base = DynamicsModelTpl<Scalar>;
28 using BaseData = DynamicsDataTpl<Scalar>;
29 using ContinuousDynamics = ContinuousDynamicsAbstractTpl<Scalar>;
30
32 shared_ptr<ContinuousDynamics> continuous_dynamics_;
33
36 const shared_ptr<ContinuousDynamics> &cont_dynamics);
37 virtual ~IntegratorAbstractTpl() = default;
38 shared_ptr<BaseData> createData() const;
39};
40
42template <typename _Scalar>
44 using Scalar = _Scalar;
45 using Base = DynamicsDataTpl<Scalar>;
46 using VectorXs = typename math_types<Scalar>::VectorXs;
47 shared_ptr<ContinuousDynamicsDataTpl<Scalar>> continuous_data;
48
49 using Base::Huu_;
50 using Base::Huy_;
51 using Base::Hxu_;
52 using Base::Hxx_;
53 using Base::Hxy_;
54 using Base::Hyy_;
55 using Base::Ju_;
56 using Base::Jx_;
57 using Base::Jy_;
58 using Base::value_;
59
62
63 explicit IntegratorDataTpl(const IntegratorAbstractTpl<Scalar> *integrator);
64 virtual ~IntegratorDataTpl() = default;
65};
66
67} // namespace dynamics
68} // namespace aligator
69
70#include "aligator/modelling/dynamics/integrator-abstract.hxx"
71
72#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
73#include "aligator/modelling/dynamics/integrator-abstract.txx"
74#endif
Base definitions for continuous dynamics.
Main package namespace.
Dynamics model: describes system dynamics through an implicit relation .
Definition dynamics.hpp:18
MatrixRef Jx_
Jacobian with respect to .
MatrixRef Ju_
Jacobian with respect to .
MatrixRef Jy_
Jacobian with respect to .
Base class for (implicit) numerical integrators.
ContinuousDynamicsAbstractTpl< Scalar > ContinuousDynamics
IntegratorAbstractTpl(const shared_ptr< ContinuousDynamics > &cont_dynamics)
Constructor from instances of DynamicsType.
shared_ptr< ContinuousDynamics > continuous_dynamics_
The underlying continuous dynamics.
shared_ptr< BaseData > createData() const
Instantiate a Data object.
Data class for numerical integrators (IntegratorAbstractTpl).
typename math_types< Scalar >::VectorXs VectorXs
shared_ptr< ContinuousDynamicsDataTpl< Scalar > > continuous_data
IntegratorDataTpl(const IntegratorAbstractTpl< Scalar > *integrator)
VectorXs xdot_
Value of the time-derivative to use in the integration rule.