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

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

 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