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

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

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