Program listing for file kernel/src/modelingTools/FirstOrderLinearTIR.hpp#
Return to documentation for this file
1#ifndef FirstOrderLinearTIR_H
2#define FirstOrderLinearTIR_H
3
4#include "FirstOrderR.hpp"
5
6
7class FirstOrderLinearTIR : public FirstOrderR {
8
9protected:
10
11 ACCEPT_SERIALIZATION(FirstOrderLinearTIR);
12
13
14 SP::SiconosVector _e{nullptr};
15
16
17 void initialize(Interaction &inter) override;
18
19
20 void checkSize(Interaction &inter) override;
21
22public:
23
24 FirstOrderLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix B);
25
26
27 FirstOrderLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix D,
28 SP::SimpleMatrix F, SP::SiconosVector e,
29 SP::SimpleMatrix B);
30
31
32 virtual ~FirstOrderLinearTIR() noexcept = default;
33
34
35 void computeh(const BlockVector &x, const SiconosVector &lambda, BlockVector &z,
36 SiconosVector &y);
37
38
39 void computeg(const SiconosVector &lambda, BlockVector &r);
40
41
42 void computeOutput(double time, Interaction &inter,
43 unsigned int level = 0) override;
44
45
46 void computeInput(double time, Interaction &inter,
47 unsigned int level = 0) override;
48
49
50 void display() const override;
51
52
53 inline void setePtr(SP::SiconosVector newe) { _e = newe; }
54
55
56 inline SP::SiconosVector e() const { return _e; }
57
58
59 inline bool isLinear() override { return true; }
60
61
62
63 void computeJach(double time, Interaction &inter) override{};
64 void computeJacg(double time, Interaction &inter) override{};
65
66 ACCEPT_STD_VISITORS();
67};
68
69TYPEDEF_SPTR(FirstOrderLinearTIR)
70
71#endif