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