Program listing for file kernel/src/simulationTools/MoreauJeanGOSI.hpp#

 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 &notUsed) 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