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