ls1-MarDyn
ls1-MarDyn molecular dynamics code
MPIKDNode.h
1#ifndef MPIKDNODE_H_
2#define MPIKDNODE_H_
3
4#include <mpi.h>
5
6#include <bitset>
7#include <sstream>
8#include <string>
9
20
21private:
22 int _lowCorner[3];
23 int _highCorner[3];
24 int _nodeID;
25 int _owningProc;
26 int _firstChildID;
27 int _secondChildID;
28 int _nextSendingProcess;
29 double _load;
30 double _OptimalLoadPerProcess;
31 double _deviationLowerBound;
32 double _deviation;
33 int _level;
34
40 int _packedRecords0;
41
42
43public:
44
46
50 MPIKDNodePacked(const std::bitset<3>& coversWholeDomain, const int& numProcs,
51 const int* lowCorner, const int* highCorner, const int& nodeID, const int& owningProc,
52 const int& firstChildID, const int& secondChildID, const int& nextSendingProcess,
53 const double& load, const double& OptimalLoadPerProcess, const double& expectedDeviation,
54 const double& deviation, const int& level);
55
59 virtual ~MPIKDNodePacked();
60
64 std::bitset<3> getCoversWholeDomain() const;
65
69 void setCoversWholeDomain(const std::bitset<3>& coversWholeDomain);
70
74 bool getCoversWholeDomain(int elementIndex) const;
75
79 void setCoversWholeDomain(int elementIndex, const bool& coversWholeDomain);
80
84 void flipCoversWholeDomain(int elementIndex);
85
89 int getNumProcs() const;
90
94 void setNumProcs(const int& numProcs);
95
99 const int* getLowCorner() const;
100
104 int getLowCorner(int elementIndex) const;
105
109 void setLowCorner(int elementIndex, const int& lowCorner);
110
114 const int* getHighCorner() const;
115
119 int getHighCorner(int elementIndex) const;
120
124 void setHighCorner(int elementIndex, const int& highCorner);
125
129 int getNodeID() const;
130
134 void setNodeID(const int& nodeID);
135
139 int getOwningProc() const;
140
144 void setOwningProc(const int& owningProc);
145
149 int getFirstChildID() const;
150
154 void setFirstChildID(const int& firstChildID);
155
159 int getSecondChildID() const;
160
164 void setSecondChildID(const int& secondChildID);
165
169 int getNextSendingProcess() const;
170
174 void setNextSendingProcess(const int& nextSendingProcess);
175
179 double getLoad() const;
180
184 void setLoad(const double& load);
185
189 double getOptimalLoadPerProcess() const;
190
194 void setOptimalLoadPerProcess(const double& OptimalLoadPerProcess);
195
196 double getDeviationLowerBound() const;
197
198 double getDeviation() const;
199
200 int getLevel() const;
201
205 std::string toString() const;
206
210 void toString(std::ostream& out) const;
211
212
218 static MPI_Datatype Datatype;
219
224 static void initDatatype();
225
226 static void shutdownDatatype();
227
228};
229
230#endif /* MPIKDNODE_H_ */
231
Definition: MPIKDNode.h:19
const int * getHighCorner() const
Definition: MPIKDNode.cpp:133
int getSecondChildID() const
Definition: MPIKDNode.cpp:192
void setNumProcs(const int &numProcs)
Definition: MPIKDNode.cpp:103
std::bitset< 3 > getCoversWholeDomain() const
Definition: MPIKDNode.cpp:40
static MPI_Datatype Datatype
Definition: MPIKDNode.h:218
void setFirstChildID(const int &firstChildID)
Definition: MPIKDNode.cpp:186
int getNumProcs() const
Definition: MPIKDNode.cpp:92
const int * getLowCorner() const
Definition: MPIKDNode.cpp:112
void setOwningProc(const int &owningProc)
Definition: MPIKDNode.cpp:174
int getNextSendingProcess() const
Definition: MPIKDNode.cpp:204
int getOwningProc() const
Definition: MPIKDNode.cpp:168
virtual ~MPIKDNodePacked()
Definition: MPIKDNode.cpp:37
void setLowCorner(int elementIndex, const int &lowCorner)
Definition: MPIKDNode.cpp:125
void setNextSendingProcess(const int &nextSendingProcess)
Definition: MPIKDNode.cpp:210
void setOptimalLoadPerProcess(const double &OptimalLoadPerProcess)
Definition: MPIKDNode.cpp:234
std::string toString() const
Definition: MPIKDNode.cpp:253
void setNodeID(const int &nodeID)
Definition: MPIKDNode.cpp:162
int getNodeID() const
Definition: MPIKDNode.cpp:156
void setCoversWholeDomain(const std::bitset< 3 > &coversWholeDomain)
Definition: MPIKDNode.cpp:50
int getFirstChildID() const
Definition: MPIKDNode.cpp:180
double getLoad() const
Definition: MPIKDNode.cpp:216
void flipCoversWholeDomain(int elementIndex)
Definition: MPIKDNode.cpp:82
void setHighCorner(int elementIndex, const int &highCorner)
Definition: MPIKDNode.cpp:147
double getOptimalLoadPerProcess() const
Definition: MPIKDNode.cpp:228
static void initDatatype()
Definition: MPIKDNode.cpp:305
void setLoad(const double &load)
Definition: MPIKDNode.cpp:222
void setSecondChildID(const int &secondChildID)
Definition: MPIKDNode.cpp:198
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: vtk-punstructured.h:270