Program listing for file kernel/src/modelingTools/LagrangianLinearTIDS.hpp#
Return to documentation for this file
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