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