19 template <
typename SCALAR>
23 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
59 vDot(0) = control(0) - w_n_ * w_n_ * p(0);
static const size_t CONTROL_DIM
Definition: TestSymplecticSystem.h:26
TestSymplecticSystem(const TestSymplecticSystem &arg)
Definition: TestSymplecticSystem.h:38
static EIGEN_MAKE_ALIGNED_OPERATOR_NEW const size_t STATE_DIM
Definition: TestSymplecticSystem.h:25
TestSymplecticSystem * clone() const override
Creates a new instance of the object with same properties than original.
Definition: TestSymplecticSystem.h:42
virtual void computeVdot(const StateVector< POS_DIM+VEL_DIM, SCALAR > &x, const StateVector< POS_DIM, SCALAR > &p, const ControlVector< CONTROL_DIM, SCALAR > &control, StateVector< VEL_DIM, SCALAR > &vDot) override
need to override this method for a symplectic system
Definition: TestSymplecticSystem.h:54
TestSymplecticSystem()=delete
Definition: ControlVector.h:12
CppAD::AD< CppAD::cg::CG< double > > SCALAR
TestSymplecticSystem(SCALAR w_n, std::shared_ptr< Controller< 2, 1, SCALAR >> controller=nullptr)
Definition: TestSymplecticSystem.h:33
virtual void computePdot(const StateVector< POS_DIM+VEL_DIM, SCALAR > &x, const StateVector< VEL_DIM, SCALAR > &v, const ControlVector< CONTROL_DIM, SCALAR > &control, StateVector< POS_DIM, SCALAR > &pDot) override
need to override this method for a symplectic system
Definition: TestSymplecticSystem.h:45
Definition: TestSymplecticSystem.h:20
virtual ~TestSymplecticSystem()=default
The base class for the implementation of a symplectic system. In a symplectic system, the position and the velocity update can be separated. During integration, the velocity gets update first and the position update uses the updated velocity.
Definition: SymplecticSystem.h:25
static const size_t POS_DIM
Definition: TestSymplecticSystem.h:27
static const size_t VEL_DIM
Definition: TestSymplecticSystem.h:28
Interface class for all controllers.
Definition: Controller.h:26