Program listing for file kernel/src/simulationTools/MoreauJeanGOSI.hpp#
Return to documentation for this file
1#ifndef MoreauJeanGOSI_H
2#define MoreauJeanGOSI_H
3
4#include "MoreauJeanOSI.hpp"
5#include "OneStepNSProblem.hpp"
6
7#include <limits>
8
9
10
11class MoreauJeanGOSI : public MoreauJeanOSI {
12protected:
13 ACCEPT_SERIALIZATION(MoreauJeanGOSI);
14
15public:
16
17 enum MoreauJeanGOSI_ds_workVector_id {
18 RESIDU_FREE,
19 FREE,
20 LOCAL_BUFFER,
21 WORK_LENGTH
22 };
23
24
25
26
27
28 MoreauJeanGOSI(double theta = 0.5,
29 double gamma = std::numeric_limits<double>::quiet_NaN())
30 : MoreauJeanOSI(theta, gamma){};
31
32
33 virtual ~MoreauJeanGOSI(){};
34
35
36
37
38 void initializeWorkVectorsForDS(double t, SP::DynamicalSystem ds) override;
39
40
41 void initializeWorkVectorsForInteraction(Interaction &inter,
42 InteractionProperties &interProp,
43 DynamicalSystemsGraph &DSG) override;
44
45
46 double computeResidu() override;
47
48
49 void computeFreeState() override;
50
51
52 void integrate(double &tinit, double &tend, double &tout,
53 int ¬Used) override;
54
55
56 void updateState(const unsigned int level) override;
57
58
59 void NonSmoothLawContributionToOutput(SP::Interaction inter,
60 OneStepNSProblem &osnsp);
61
62
63 void display() override;
64
65 ACCEPT_STD_VISITORS();
66};
67
68#endif