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

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

 1#ifndef LagrangianCompliantR_H
 2#define LagrangianCompliantR_H
 3
 4#include "LagrangianR.hpp"
 5
 6
 7class LagrangianCompliantR : public LagrangianR {
 8
 9protected:
10
11  ACCEPT_SERIALIZATION(LagrangianCompliantR);
12
13
14  SP::PluggedObject _pluginJachlambda{nullptr};
15
16
17  LagrangianCompliantR() : LagrangianR(RELATION::CompliantR){};
18
19
20  void initialize(Interaction &inter) override;
21
22
23  void checkSize(Interaction &inter) override;
24
25  void _zeroPlugin() override;
26
27public:
28
29  LagrangianCompliantR(const std::string &pluginh,
30                       const std::string &pluginJacobianhq,
31                       const std::string &pluginJacobianhlambda);
32
33
34  virtual ~LagrangianCompliantR() noexcept = default;
35
36
37  virtual void computeh(double time, const BlockVector &q,
38                        const SiconosVector &lambda, BlockVector &z,
39                        SiconosVector &y);
40
41
42  virtual void computeJachq(double time, const BlockVector &q,
43                            const SiconosVector &lambda, BlockVector &z);
44
45
46  virtual void computeJachlambda(double time, const BlockVector &q0,
47                                 const SiconosVector &lambda, BlockVector &z);
48
49
50  void computeOutput(double time, Interaction &inter,
51                     unsigned int derivativeNumber = 0) override;
52
53  void computeInput(double time, Interaction &inter,
54                    unsigned int level = 0) override;
55
56
57  void computeJach(double time, Interaction &inter) override;
58
59
60  void computeJacg(double time, Interaction &inter) override {}
61
62  ACCEPT_STD_VISITORS();
63};
64
65TYPEDEF_SPTR(LagrangianCompliantR)
66
67#endif