Program listing for file kernel/src/modelingTools/LagrangianLinearTIDS.hpp

Program listing for file kernel/src/modelingTools/LagrangianLinearTIDS.hpp#

 1#ifndef LAGRANGIANTIDS_H
 2#define LAGRANGIANTIDS_H
 3
 4#include "LagrangianDS.hpp"
 5
 6
 7class LagrangianLinearTIDS : public LagrangianDS {
 8
 9protected:
10  ACCEPT_SERIALIZATION(LagrangianLinearTIDS);
11
12
13  SP::SiconosMatrix _K;
14
15
16  SP::SiconosMatrix _C;
17
18
19  LagrangianLinearTIDS() : LagrangianDS(){};
20
21public:
22
23
24
25
26  LagrangianLinearTIDS(SP::SiconosVector q0, SP::SiconosVector v0,
27                       SP::SiconosMatrix M, SP::SiconosMatrix K,
28                       SP::SiconosMatrix C);
29
30
31  LagrangianLinearTIDS(SP::SiconosVector q0, SP::SiconosVector v0,
32                       SP::SiconosMatrix M)
33      : LagrangianDS(q0, v0, M){};
34
35
36  ~LagrangianLinearTIDS(){};
37
38
39  void initRhs(double t) override;
40
41
42  void computeForces(double time, SP::SiconosVector q,
43                     SP::SiconosVector velocity) override;
44
45
46  inline const SimpleMatrix getK() const { return *_K; }
47
48
49  inline SP::SiconosMatrix K() const { return _K; }
50
51
52  void setK(const SiconosMatrix &K);
53
54
55  void setKPtr(SP::SiconosMatrix newPtr);
56
57
58  inline const SimpleMatrix getC() const { return *_C; }
59
60
61  inline SP::SiconosMatrix C() const { return _C; }
62
63
64  void setC(const SiconosMatrix &C);
65
66
67  void setCPtr(SP::SiconosMatrix newPtr);
68
69
70  inline SP::SiconosMatrix jacobianqForces() const override { return _K; }
71
72
73  inline SP::SiconosMatrix jacobianvForces() const  override{ return _C; }
74
75
76  virtual bool isLinear() override { return true; }
77
78
79  void display(bool brief = true) const override;
80
81  ACCEPT_STD_VISITORS();
82};
83#endif