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

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

 1#ifndef LAGRANGIANCOMPLIANTLINEARRELATION_H
 2#define LAGRANGIANCOMPLIANTLINEARRELATION_H
 3
 4#include "LagrangianR.hpp"
 5
 6
 7class LagrangianCompliantLinearTIR : public LagrangianR {
 8
 9protected:
10
11  ACCEPT_SERIALIZATION(LagrangianCompliantLinearTIR);
12
13
14  SP::SimpleMatrix _F{nullptr};
15
16
17  SP::SiconosVector _e{nullptr};
18
19public:
20
21  LagrangianCompliantLinearTIR() : LagrangianR(RELATION::CompliantLinearTIR){};
22
23
24  LagrangianCompliantLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix D);
25
26
27  LagrangianCompliantLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix D,
28                               SP::SiconosVector e);
29
30
31  LagrangianCompliantLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix D,
32                               SP::SimpleMatrix F, SP::SiconosVector e);
33
34
35  virtual ~LagrangianCompliantLinearTIR() noexcept = default;
36
37
38  void initialize(Interaction &inter) override;
39
40
41  void checkSize(Interaction &inter) override;
42
43
44  void computeOutput(double time, Interaction &inter,
45                     unsigned int derivativeNumber = 0) override;
46
47
48  void computeInput(double time, Interaction &inter,
49                    unsigned int level = 0) override;
50
51  void computeJach(double time, Interaction &inter) override {}
52
53
54  void computeJacg(double time, Interaction &inter) override {}
55
56
57
58
59  inline void setCPtr(SP::SimpleMatrix newPtr) { _jachq = newPtr; }
60
61
62
63
64  inline SP::SimpleMatrix D() const { return _jachlambda; }
65
66
67  inline void setDPtr(SP::SimpleMatrix newPtr) { _jachlambda = newPtr; }
68
69
70
71
72  inline SP::SimpleMatrix F() const { return _F; }
73
74
75  inline void setFPtr(SP::SimpleMatrix newPtr) { _F = newPtr; }
76
77
78
79
80  inline SP::SiconosVector e() const { return _e; }
81
82
83  inline void setEPtr(SP::SiconosVector newPtr) { _e = newPtr; }
84
85
86
87
88  void display() const override;
89
90
91
92  bool isLinear() override { return true; }
93
94  ACCEPT_STD_VISITORS();
95};
96
97TYPEDEF_SPTR(LagrangianCompliantLinearTIR)
98
99#endif