aligator  0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
expose-integrators.cpp
Go to the documentation of this file.
1
3
5
9
10namespace aligator {
11namespace python {
12using context::Scalar;
13using namespace aligator::dynamics;
17
20
21 using PolyIntegrator = xyz::polymorphic<IntegratorAbstract>;
22 using PyIntegratorAbstract = PyDynamics<IntegratorAbstract>;
24
26 conversions_visitor;
27
28 bp::class_<PyIntegratorAbstract, bp::bases<DynamicsModel>,
29 boost::noncopyable>("IntegratorAbstract",
30 "Base class for numerical integrators.",
31 bp::init<const xyz::polymorphic<DAEType> &>(
32 "Construct the integrator from a DAE.",
33 bp::args("self", "cont_dynamics")))
34 .def_readwrite("continuous_dynamics",
36 "The underlying ODE or DAE.")
37 .add_property("space",
38 bp::make_function(&IntegratorAbstract::space,
39 bp::return_internal_reference<>()),
40 "Return the state manifold.")
41 // allow casting custom Python class to polymorphic<base_classes>...
42 .def(conversions_visitor);
43
44 bp::register_ptr_to_python<shared_ptr<IntegratorDataTpl<Scalar>>>();
45 bp::class_<IntegratorDataTpl<Scalar>, bp::bases<DynamicsData>>(
46 "IntegratorData", "Base class for integrators' data.", bp::no_init)
47 .def_readwrite("continuous_data",
49
50 using MidpointIntegrator = IntegratorMidpointTpl<Scalar>;
51 bp::class_<MidpointIntegrator, bp::bases<IntegratorAbstract>>(
52 "IntegratorMidpoint", bp::init<xyz::polymorphic<DAEType>, Scalar>(
53 bp::args("self", "dae", "timestep")))
54 .def_readwrite("timestep", &MidpointIntegrator::timestep_, "Time step.")
55 .def(conversions_visitor);
56
57 bp::register_ptr_to_python<shared_ptr<IntegratorMidpointDataTpl<Scalar>>>();
58 bp::class_<IntegratorMidpointDataTpl<Scalar>,
59 bp::bases<IntegratorDataTpl<Scalar>>>("IntegratorMidpointData",
60 bp::no_init);
61}
62
63} // namespace python
64} // namespace aligator
Base definitions for numerical integrators.
DynamicsModelTpl< Scalar > DynamicsModel
Definition context.hpp:28
dynamics::IntegratorAbstractTpl< Scalar > IntegratorAbstract
Definition context.hpp:18
DynamicsDataTpl< Scalar > DynamicsData
Definition context.hpp:29
The Python bindings.
Definition blk-matrix.hpp:5
void register_polymorphic_to_python()
Expose a polymorphic value type, e.g. xyz::polymorphic<T, A>.
void exposeIntegrators()
Expose numerical integrators.
Main package namespace.
const Manifold & space() const
Definition dynamics.hpp:32
Continuous dynamics described by differential-algebraic equations (DAEs) .
xyz::polymorphic< ContinuousDynamics > continuous_dynamics_
shared_ptr< ContinuousDynamicsDataTpl< Scalar > > continuous_data