-
Notifications
You must be signed in to change notification settings - Fork 0
/
MSimulationData.h
executable file
·91 lines (84 loc) · 2.07 KB
/
MSimulationData.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef MSIMULATIONDATA_H_
#define MSIMULATIONDATA_H_
#include "global.h"
#include "MParticleData.h"
#include "MGhostParticleData.h"
#include "MMaterialData.h"
#include "MGlobalVars.h"
#include "MHistoryVars.h"
#include "MOptionVars.h"
#include "MOutputVars.h"
#include "MNeighbourVars.h"
#include "MSymPerVars.h"
#include "MFileHandlingVars.h"
#include "MLoadCurveVars.h"
#include "MContactVars.h"
#include "MBaseAccelVars.h"
#include "MRigidBodyData.h"
class MSimulationData
{
protected:
MSimulationData();
virtual ~MSimulationData();
public:
static MSimulationData* Instance();
void DestroyInstance();
private:
static MSimulationData *_instance;
public:
// Constants
real pi;
// Global variables
MGlobalVars m_globvars;
// History variables
MHistoryVars m_histvars;
// Options
MOptionVars m_optvars;
// Output
MOutputVars m_outvars;
// Neighbours and Neighbour searching
MNeighbourVars m_neighbourvars;
// Symmetry + periodic planes
MSymPerVars m_sympervars;
// File handling
MFileHandlingVars m_filevars;
// Load Curves
MLoadCurveVars m_loadcurvevars;
// Contact Data
MContactVars m_contactvars;
// Base accelerations
MBaseAccelVars m_baseaccelvars;
// Rigid body data
MRigidBodyData m_rigidbodydata;
//
//----------------------------------------------------------------------------
// Dynamic data
//
MParticleData par;
MGhostParticleData gpar;
MMaterialData mat;
//---------------------------------------------------------------------------
// MPI variables
int my_id, numprocs;
// Member Functions
public:
int Startup(int argc, char **argv, bool &newproblem);
void Shutdown(int exitcode);
void Fatal(const std::string &message);
int GetInput();
int PassInputComments(std::string &ret);
protected:
int ParseCommandLine(int argc, char **argv);
void PrintVersion();
int ControlInput(int version_number);
int MaterialInput();
int PrintMaterialProperties(MMaterial &tmp);
int NodeInput();
int VelocityInput();
int BoundaryInput();
int BaseAccelerationInput();
int PlotInput();
int LennardJonesInput();
int RigidBodyInput();
};
#endif /*MSIMULATIONDATA_H_*/