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

 1#ifndef FirstOrderType1R_H
 2#define FirstOrderType1R_H
 3
 4#include "FirstOrderR.hpp"
 5
 6
 7typedef void (*Type1Ptr)(unsigned int, double *, unsigned int, double *,
 8                         unsigned int, double *);
 9
10
11class FirstOrderType1R : public FirstOrderR {
12protected:
13
14  ACCEPT_SERIALIZATION(FirstOrderType1R);
15
16public:
17
18  FirstOrderType1R() : FirstOrderR(RELATION::Type1R){};
19
20
21  FirstOrderType1R(const std::string &pluginh, const std::string &pluging);
22
23
24  FirstOrderType1R(const std::string &pluginh, const std::string &pluging,
25                   const std::string &pluginJachx,
26                   const std::string &pluginJacglambda);
27
28
29  virtual ~FirstOrderType1R() noexcept = default;
30
31
32  void initialize(Interaction &inter) override;
33
34
35  inline void checkSize(Interaction &inter) override {};
36
37
38  void computeh(double time, const BlockVector &x, BlockVector &z,
39                SiconosVector &y);
40
41
42  void computeg(double time, const SiconosVector &lambda, BlockVector &z,
43                BlockVector &r);
44
45
46  void computeJachx(double time, const BlockVector &x, BlockVector &z,
47                    SimpleMatrix &C);
48
49
50  void computeJachz(double time, const BlockVector &x, BlockVector &z,
51                    SimpleMatrix &F);
52
53
54  void computeJacglambda(double time, const SiconosVector &lambda,
55                         BlockVector &z, SimpleMatrix &B);
56
57
58  void computeOutput(double time, Interaction &inter,
59                             unsigned int level = 0) override;
60
61
62  void computeInput(double time, Interaction &inter,
63                            unsigned int level = 0) override;
64
65  void computeJach(double time, Interaction &inter) override;
66
67  void computeJacg(double time, Interaction &inter) override;
68
69
70  bool requireResidu()  override { return true; }
71
72  ACCEPT_STD_VISITORS();
73};
74
75TYPEDEF_SPTR(FirstOrderType1R)
76
77#endif