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

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

 1#ifndef LagrangianScleronomousR_H
 2#define LagrangianScleronomousR_H
 3
 4#include "LagrangianR.hpp"
 5#include "SimpleMatrixFriends.hpp"
 6
 7class LagrangianScleronomousR : public LagrangianR {
 8
 9protected:
10
11  ACCEPT_SERIALIZATION(LagrangianScleronomousR);
12
13
14
15
16  SP::PluggedObject _plugindotjacqh{nullptr};
17
18
19  SP::SiconosVector _dotjacqhXqdot{nullptr};
20
21
22  void _zeroPlugin() override;
23
24
25  LagrangianScleronomousR() : LagrangianR(RELATION::ScleronomousR) {
26    _zeroPlugin();
27  }
28
29public:
30
31  LagrangianScleronomousR(const std::string &pluginh,
32                          const std::string &pluginJacobianhq);
33
34
35  LagrangianScleronomousR(const std::string &pluginh,
36                          const std::string &pluginJacobianhq,
37                          const std::string &pluginDotJacobianhq);
38
39
40  virtual ~LagrangianScleronomousR() noexcept = default;
41
42  void initialize(Interaction &inter) override;
43
44
45  void checkSize(Interaction &inter) override;
46
47
48  inline SP::SiconosVector dotjacqhXqdot() { return _dotjacqhXqdot; };
49
50
51  virtual void computeh(const BlockVector &q, BlockVector &z, SiconosVector &y);
52
53
54  virtual void computeJachq(const BlockVector &q, BlockVector &z);
55
56
57  virtual void computeDotJachq(const BlockVector &q, BlockVector &z,
58                               const BlockVector &qDot);
59
60
61  void computedotjacqhXqdot(double time, Interaction &inter,
62                            VectorOfBlockVectors &DSlink);
63
64
65  void computeJach(double time, Interaction &inter) override;
66
67
68  void computeJacg(double time, Interaction &inter) override {}
69
70
71  void computeOutput(double time, Interaction &inter,
72                     unsigned int derivativeNumber = 0) override;
73
74
75  void computeInput(double time, Interaction &inter,
76                    unsigned int level = 0) override;
77
78  ACCEPT_STD_VISITORS();
79};
80
81TYPEDEF_SPTR(LagrangianScleronomousR)
82
83#endif