Program listing for file kernel/src/modelingTools/LagrangianLinearDiagonalDS.hpp#
Return to documentation for this file
1#ifndef LAGRANGIANLINEARDIAGONALDS_H
2#define LAGRANGIANLINEARDIAGONALDS_H
3
4#include "LagrangianDS.hpp"
5
6
7class LagrangianLinearDiagonalDS : public LagrangianDS
8{
9
10protected:
11
12
13 ACCEPT_SERIALIZATION(LagrangianLinearDiagonalDS);
14
15
16 SP::SiconosVector _stiffness;
17
18
19 SP::SiconosVector _damping;
20
21
22 double _mu;
23
24
25 LagrangianLinearDiagonalDS():LagrangianDS() {};
26
27public:
28
29
30 LagrangianLinearDiagonalDS(SP::SiconosVector q0, SP::SiconosVector v0, SP::SiconosVector stiffness, SP::SiconosVector damping, SP::SiconosVector mass);
31
32
33 LagrangianLinearDiagonalDS(SP::SiconosVector q0, SP::SiconosVector v0, SP::SiconosVector stiffness, SP::SiconosVector damping);
34
35
36 LagrangianLinearDiagonalDS(SP::SiconosVector q0, SP::SiconosVector v0, SP::SiconosVector stiffness);
37
38
39 ~LagrangianLinearDiagonalDS(){};
40
41
42 inline const SiconosVector get_stiffness() const
43 {
44 return *_stiffness;
45 }
46
47
48 inline SP::SiconosVector stiffness() const
49 {
50 return _stiffness;
51 }
52
53
54 inline const SiconosVector get_damping() const
55 {
56 return *_damping;
57 }
58
59
60 inline SP::SiconosVector damping() const
61 {
62 return _damping;
63 }
64
65
66 void initRhs(double t) override;
67
68
69 void computeForces(double time, SP::SiconosVector q, SP::SiconosVector velocity) override;
70
71
72 bool isLinear() override
73 {
74 return true;
75 }
76
77
78 void display(bool brief = true) const override;
79
80 ACCEPT_STD_VISITORS();
81
82};
83#endif