Program listing for file kernel/src/modelingTools/LagrangianCompliantR.hpp#
Return to documentation for this file
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