ESyS-Particle  2.3
CheckPointController.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 
14 #ifndef CHECKPOINTCONTROLLER_H
15 #define CHECKPOINTCONTROLLER_H
16 
17 // --- MPI includes ---
18 #include <mpi.h>
19 
20 // --- Project includes ---
21 #include "Geometry/GeometryInfo.h"
22 #include "Foundation/StringUtil.h"
23 #include "Foundation/BoundingBox.h"
24 
25 // --- STL includes ---
26 #include <string>
27 
32 {
33 public:
40 
48  const std::string &fileNamePrefix,
49  int beginTime,
50  int endTime,
51  int timeInterval,
52  bool writeThroughMaster
53  );
54 
58  virtual ~CheckPointController();
59 
68  virtual void performCheckPoint(int currentTime);
69  virtual void performSnapShot(int currentTime);
70 
76  virtual void issueCheckPointCmd(int currentTime);
77  virtual void issueCheckPointCmdWTM(int currentTime);
78  virtual void issueSnapShotCmd(int currentTime);
79  virtual void issueCheckPointLoadingCmd(const std::string&);
80 
87  bool isCheckPoint(int time);
88 
93  const std::string &fileNamePrefix,
94  int beginTime,
95  int endTime,
96  int timeInterval,
97  bool writeThroughMaster,
98  int precision=12
99  );
100 
101  std::string getLatticeDataFileName(const std::string &fileNamePrefix, int timeStep, int rank, bool bin=false);
102 
103  esys::lsm::StringVector getLatticeDataFiles(int timeStep, int size);
104 
106 
111  void set_is2d(bool do2d);
112 
116  void setLsmGeoVersion(float version);
117 
121  void setPeriodicDimensions(esys::lsm::BoolVector periodicDimensions);
122 
126  void setGeometryInfo(const esys::lsm::GeometryInfo &geoInfo);
127 
131  void setSpatialDomain(const esys::lsm::BoundingBox &bBox);
132 
137 
141  int getNumTimeSteps() const;
142 
146  void setNumTimeSteps(int numTimeSteps);
147 
151  double getTimeStepSize() const;
152 
156  void setTimeStepSize(double timeStepSize);
157 
158  void setPrecision(int precision){m_precision=precision;};
159 
160  bool spatialDomainHasBeenSet() const;
161 
162 
163  MPI_Comm getMpiComm() const;
164 
165  void setMpiComm(MPI_Comm mpiComm);
166 
167 
168 protected:
172  MPI_Comm m_mpiComm;
173 
174 
178  std::string m_fileNamePrefix;
179 
184 
189 
194 
199 
204 
209 
211 
218 };
219 
220 #endif
virtual void performSnapShot(int currentTime)
Definition: CheckPointController.cpp:109
int m_precision
Definition: CheckPointController.h:217
double getTimeStepSize() const
Definition: CheckPointController.cpp:423
void setMpiComm(MPI_Comm mpiComm)
Definition: CheckPointController.cpp:122
esys::lsm::StringVector getLatticeDataFiles(int timeStep, int size)
Definition: CheckPointController.cpp:327
bool spatialDomainHasBeenSet() const
Definition: CheckPointController.cpp:436
void setGeometryInfo(const esys::lsm::GeometryInfo &geoInfo)
Definition: CheckPointController.cpp:403
bool isCheckPoint(int time)
Definition: CheckPointController.cpp:349
MPI_Comm m_mpiComm
Definition: CheckPointController.h:172
esys::lsm::GeometryInfo m_geoInfo
Definition: CheckPointController.h:198
int m_numTimeSteps
Definition: CheckPointController.h:203
virtual void performCheckPoint(int currentTime)
Definition: CheckPointController.cpp:90
std::vector< std::string > StringVector
Definition: CheckPointInfo.h:24
void setLsmGeoVersion(float version)
Definition: CheckPointController.cpp:387
virtual void issueSnapShotCmd(int currentTime)
Definition: CheckPointController.cpp:213
std::string getLatticeDataFileName(const std::string &fileNamePrefix, int timeStep, int rank, bool bin=false)
Definition: CheckPointController.cpp:315
Definition: GeometryInfo.h:33
int m_beginTime
Definition: CheckPointController.h:183
void setPeriodicDimensions(esys::lsm::BoolVector periodicDimensions)
Definition: CheckPointController.cpp:392
3D bounding box
Definition: BoundingBox.h:27
double m_timeStepSize
Definition: CheckPointController.h:208
esys::lsm::GeometryInfo getGeometryInfo() const
Definition: CheckPointController.cpp:408
bool m_writeThroughMaster
Definition: CheckPointController.h:216
Definition: CheckPointController.h:31
std::string m_fileNamePrefix
Definition: CheckPointController.h:178
void setTimeStepSize(double timeStepSize)
Definition: CheckPointController.cpp:428
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
int m_timeInterval
Definition: CheckPointController.h:193
void setPrecision(int precision)
Definition: CheckPointController.h:158
virtual void issueCheckPointLoadingCmd(const std::string &)
Definition: CheckPointController.cpp:248
void set_is2d(bool do2d)
Definition: CheckPointController.cpp:382
int getNumTimeSteps() const
Definition: CheckPointController.cpp:413
virtual ~CheckPointController()
Definition: CheckPointController.cpp:79
CheckPointController()
Definition: CheckPointController.cpp:44
void setNumTimeSteps(int numTimeSteps)
Definition: CheckPointController.cpp:418
int m_endTime
Definition: CheckPointController.h:188
virtual void issueCheckPointCmd(int currentTime)
Definition: CheckPointController.cpp:132
bool m_spatialDomainHasBeenSet
Definition: CheckPointController.h:210
virtual void issueCheckPointCmdWTM(int currentTime)
Definition: CheckPointController.cpp:167
void setSpatialDomain(const esys::lsm::BoundingBox &bBox)
Definition: CheckPointController.cpp:397
void setCheckPointParams(const std::string &fileNamePrefix, int beginTime, int endTime, int timeInterval, bool writeThroughMaster, int precision=12)
Definition: CheckPointController.cpp:365
MPI_Comm getMpiComm() const
Definition: CheckPointController.cpp:117