ESyS-Particle  2.3.4
CheckPointController.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 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.apache.org/licenses/LICENSE-2.0 //
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
CheckPointController::issueCheckPointCmd
virtual void issueCheckPointCmd(int currentTime)
Definition: CheckPointController.cpp:132
CheckPointController::setSpatialDomain
void setSpatialDomain(const esys::lsm::BoundingBox &bBox)
Definition: CheckPointController.cpp:397
CheckPointController::performSnapShot
virtual void performSnapShot(int currentTime)
Definition: CheckPointController.cpp:109
CheckPointController
Definition: CheckPointController.h:32
CheckPointController::isCheckPoint
bool isCheckPoint(int time)
Definition: CheckPointController.cpp:349
CVarMPIBuffer
MPI send/recv buffer with automagically adjusted size.
Definition: mpivbuf.h:35
CMPILCmdBuffer::broadcast
void broadcast(int)
Definition: mpicmdbuf.cpp:38
CheckPointController::getTimeStepSize
double getTimeStepSize() const
Definition: CheckPointController.cpp:423
esys::lsm::StringVector
std::vector< std::string > StringVector
Definition: CheckPointInfo.h:24
CheckPointController::m_spatialDomainHasBeenSet
bool m_spatialDomainHasBeenSet
Definition: CheckPointController.h:210
Console::Debug
Console & Debug()
set verbose level of next message to "dbg"
mpibarrier.h
esys::lsm::GeometryInfo::setPeriodicDimensions
void setPeriodicDimensions(BoolVector periodicDimensions)
Definition: GeometryInfo.cpp:315
CheckPointController::setCheckPointParams
void setCheckPointParams(const std::string &fileNamePrefix, int beginTime, int endTime, int timeInterval, bool writeThroughMaster, int precision=12)
Definition: CheckPointController.cpp:365
CheckPointController::CheckPointController
CheckPointController()
Definition: CheckPointController.cpp:44
mpicmdbuf.h
CheckPointController::m_mpiComm
MPI_Comm m_mpiComm
Definition: CheckPointController.h:172
esys::lsm::CheckPointInfo::setNumTimeSteps
void setNumTimeSteps(int numTimeSteps)
Definition: CheckPointInfo.cpp:144
esys::lsm::BoundingBox::getMaxPt
const Vec3 & getMaxPt() const
Definition: BoundingBox.hpp:45
CheckPointController::getGeometryInfo
esys::lsm::GeometryInfo getGeometryInfo() const
Definition: CheckPointController.cpp:408
esys::lsm::CheckPointInfo::write
void write(std::ostream &oStream) const
Definition: CheckPointInfo.cpp:169
esys::lsm::GeometryInfo::setBBox
void setBBox(const Vec3 &min, const Vec3 &max)
Definition: GeometryInfo.cpp:348
CMD_SAVECHECKPOINTWTM
const int CMD_SAVECHECKPOINTWTM
Definition: sublattice_cmd.h:81
StringUtil.h
CheckPointController::spatialDomainHasBeenSet
bool spatialDomainHasBeenSet() const
Definition: CheckPointController.cpp:436
CheckPointController::setMpiComm
void setMpiComm(MPI_Comm mpiComm)
Definition: CheckPointController.cpp:122
CheckPointController::getLatticeDataFileName
std::string getLatticeDataFileName(const std::string &fileNamePrefix, int timeStep, int rank, bool bin=false)
Definition: CheckPointController.cpp:315
CheckPointParams::packInto
void packInto(AMPIBuffer *mpiBuff) const
Definition: CheckPointParams.cpp:49
CheckPointController::m_endTime
int m_endTime
Definition: CheckPointController.h:188
CheckPointController::m_writeThroughMaster
bool m_writeThroughMaster
Definition: CheckPointController.h:216
CheckPointController::issueCheckPointCmdWTM
virtual void issueCheckPointCmdWTM(int currentTime)
Definition: CheckPointController.cpp:167
CMPIBarrier
A convenience class encapsulating an MPI barrier. Includes timing of the wait and a debug message ( v...
Definition: mpibarrier.h:31
CheckPointController::issueCheckPointLoadingCmd
virtual void issueCheckPointLoadingCmd(const std::string &)
Definition: CheckPointController.cpp:248
CheckPointController::setPeriodicDimensions
void setPeriodicDimensions(esys::lsm::BoolVector periodicDimensions)
Definition: CheckPointController.cpp:392
esys::lsm::BoundingBox
3D bounding box
Definition: BoundingBox.h:28
esys::lsm::GeometryInfo::set_is2d
void set_is2d(bool do2d)
Definition: GeometryInfo.cpp:282
esys::lsm::CheckPointInfo::setTimeStep
void setTimeStep(int timeStep)
Definition: CheckPointInfo.cpp:149
esys::lsm::GeometryInfo::setLsmGeoVersion
void setLsmGeoVersion(float version)
Definition: GeometryInfo.cpp:320
CheckPointController::performCheckPoint
virtual void performCheckPoint(int currentTime)
Definition: CheckPointController.cpp:90
CheckPointController::m_fileNamePrefix
std::string m_fileNamePrefix
Definition: CheckPointController.h:178
esys::lsm::CheckPointInfo
Definition: CheckPointInfo.h:30
CheckPointParams::getFileName
std::string getFileName() const
Definition: CheckPointParams.cpp:41
esys::lsm::BoundingBox::getMinPt
const Vec3 & getMinPt() const
Definition: BoundingBox.hpp:40
mpivbuf.h
MpiInfo
Definition: MpiInfo.h:24
esys::lsm::CheckPointInfo::setLatticeDataFiles
void setLatticeDataFiles(const StringVector &fileNames)
Definition: CheckPointInfo.cpp:139
CheckPointController::m_timeStepSize
double m_timeStepSize
Definition: CheckPointController.h:208
CheckPointController::getNumTimeSteps
int getNumTimeSteps() const
Definition: CheckPointController.cpp:413
esys::lsm::CheckPointInfo::setGeometryInfo
void setGeometryInfo(const GeometryInfo &geoInfo)
Definition: CheckPointInfo.cpp:129
CheckPointController::setPrecision
void setPrecision(int precision)
Definition: CheckPointController.h:158
esys::lsm::GeometryInfo
Definition: GeometryInfo.h:34
CMD_LOADCHECKPOINT
const int CMD_LOADCHECKPOINT
Definition: sublattice_cmd.h:80
CMPILCmdBuffer
Class for sending commands from the LatticeMaster to the SubLatticeControler.
Definition: mpicmdbuf.h:30
comm.h
CVarMPIBuffer::broadcast
virtual void broadcast(int)
Definition: mpivbuf.cpp:251
CVarMPIBuffer::clear
virtual void clear()
Definition: mpivbuf.h:53
CheckPointController::setGeometryInfo
void setGeometryInfo(const esys::lsm::GeometryInfo &geoInfo)
Definition: CheckPointController.cpp:403
CheckPointController::setLsmGeoVersion
void setLsmGeoVersion(float version)
Definition: CheckPointController.cpp:387
esys::lsm::BoolVector
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
CheckPointController::setNumTimeSteps
void setNumTimeSteps(int numTimeSteps)
Definition: CheckPointController.cpp:418
CMD_SAVECHECKPOINT
const int CMD_SAVECHECKPOINT
Definition: sublattice_cmd.h:44
CheckPointController::m_numTimeSteps
int m_numTimeSteps
Definition: CheckPointController.h:203
CheckPointController.h
sublattice_cmd.h
TML_Comm
abstract base class for communicator
Definition: comm.h:47
CheckPointInfo.h
CheckPointController::m_precision
int m_precision
Definition: CheckPointController.h:217
CheckPointController::m_geoInfo
esys::lsm::GeometryInfo m_geoInfo
Definition: CheckPointController.h:198
CheckPointController::setTimeStepSize
void setTimeStepSize(double timeStepSize)
Definition: CheckPointController.cpp:428
MpiInfo.h
CheckPointController::~CheckPointController
virtual ~CheckPointController()
Definition: CheckPointController.cpp:79
CheckPointController::m_timeInterval
int m_timeInterval
Definition: CheckPointController.h:193
CheckPointParams.h
esys::lsm::CheckPointInfo::setTimeStepSize
void setTimeStepSize(double timeStepSize)
Definition: CheckPointInfo.cpp:159
CMD_SAVESNAPSHOT
const int CMD_SAVESNAPSHOT
Definition: sublattice_cmd.h:79
CheckPointController::issueSnapShotCmd
virtual void issueSnapShotCmd(int currentTime)
Definition: CheckPointController.cpp:213
CheckPointParams
Definition: CheckPointParams.h:29
TML_Comm::gather
void gather(multimap< int, T > &)
Definition: comm_coll.hpp:273
console
Console console
Definition: console.cpp:25
CheckPointController::getLatticeDataFiles
esys::lsm::StringVector getLatticeDataFiles(int timeStep, int size)
Definition: CheckPointController.cpp:327
CheckPointController::m_beginTime
int m_beginTime
Definition: CheckPointController.h:183
GeometryInfo.h
CMPIBarrier::wait
void wait(const char *)
Definition: mpibarrier.cpp:32
CheckPointController::getMpiComm
MPI_Comm getMpiComm() const
Definition: CheckPointController.cpp:117
CheckPointController::set_is2d
void set_is2d(bool do2d)
Definition: CheckPointController.cpp:382
BoundingBox.h