Program listing for file kernel/src/modelingTools/FirstOrderR.hpp#
Return to documentation for this file
1#ifndef FirstOrderR_H
2#define FirstOrderR_H
3
4#include "Interaction.hpp"
5#include "Relation.hpp"
6
7
8class FirstOrderR : public Relation {
9public:
10 enum FirstOrderRDS { x, z, r, DSlinkSize };
11 enum FirstOrderRVec { e, relationVectorsSize };
12 enum FirstOrderRMat {
13 mat_C,
14 mat_D,
15 mat_F,
16 mat_B,
17 mat_K,
18 relationMatricesSize
19 };
20
21protected:
22
23 ACCEPT_SERIALIZATION(FirstOrderR);
24
25
26 FirstOrderR(RELATION::SUBTYPES newType)
27 : Relation(RELATION::FirstOrder, newType) {}
28
29
30
31
32 SP::SimpleMatrix _C{nullptr};
33
34
35 SP::SimpleMatrix _D{nullptr};
36
37
38 SP::SimpleMatrix _F{nullptr};
39
40
41 SP::SimpleMatrix _B{nullptr};
42
43
44 SP::SimpleMatrix _K{nullptr};
45
46public:
47
48 virtual ~FirstOrderR() noexcept = default;
49
50
51 void initialize(Interaction &inter) override;
52
53
54 inline void setCPtr(SP::SimpleMatrix newC) { _C = newC; }
55
56
57 inline void setBPtr(SP::SimpleMatrix newB) { _B = newB; }
58
59
60 inline void setDPtr(SP::SimpleMatrix newD) { _D = newD; }
61
62
63 inline void setFPtr(SP::SimpleMatrix newF) { _F = newF; }
64
65
66 inline SP::SimpleMatrix C() const override { return _C; }
67
68
69
70 inline SP::SimpleMatrix H() const override { return _C; }
71
72
73 inline SP::SimpleMatrix D() const { return _D; }
74
75
76 inline SP::SimpleMatrix F() const { return _F; }
77
78
79 inline SP::SimpleMatrix B() const { return _B; }
80
81
82 inline SP::SimpleMatrix K() const { return _K; }
83};
84#endif