17 #ifndef __RIPLEY_BLOCKTOOLS_H__ 18 #define __RIPLEY_BLOCKTOOLS_H__ 61 #include <esysUtils/Esys_MPI.h> 123 Block(
size_t sx,
size_t sy,
size_t sz,
size_t inset,
size_t xmidlen,
124 size_t ymidlen,
size_t zmidlen,
unsigned int dpp=1);
130 double* getOutBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
131 double* getOutBuffer(
unsigned char bid);
135 double* getInBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
136 double* getInBuffer(
unsigned char bid);
139 size_t getBuffSize(
unsigned char subx,
unsigned char suby,
unsigned char subz);
140 size_t getBuffSize(
unsigned char bid);
143 size_t startOffset(
unsigned char subx,
unsigned char suby,
unsigned char subz);
146 void displayBlock(
unsigned char subx,
unsigned char suby,
unsigned char subz,
bool out);
149 void copyToBuffer(
unsigned char buffid,
double* src);
152 void copyFromBuffer(
unsigned char buffid,
double* dest);
155 void copyAllToBuffer(
double* src);
157 void copyUsedFromBuffer(
double* dest);
159 void setUsed(
unsigned char buffid);
164 void populateDimsTable();
165 void populateOffsetTable(
size_t inset,
size_t xmidlen,
size_t ymidlen,
size_t zmidlen);
166 void createBuffArrays(
double* startaddress,
double* buffptr[27],
size_t inset,
size_t xmidlen,
size_t ymidlen,
size_t zmidlen);
171 size_t buffoffsets[27];
172 size_t flatoffsets[27];
182 double* inbuffptr[27];
183 double* outbuffptr[27];
188 int getTag(
unsigned char sourcex,
unsigned char sourcey,
unsigned char sourcez,
189 unsigned char targetx,
unsigned char targety,
unsigned char targetz);
193 int getTag(
unsigned char destx,
unsigned char desty,
unsigned char destz,
194 bool deltax,
bool deltay,
bool deltaz);
198 unsigned char getSrcBuffID(
unsigned char destx,
unsigned char desty,
199 unsigned char destz,
bool deltax,
bool deltay,
230 Block2(
size_t sx,
size_t sy,
size_t inset,
size_t xmidlen,
231 size_t ymidlen,
unsigned int dpp=1);
237 double* getOutBuffer(
unsigned char subx,
unsigned char suby);
238 double* getOutBuffer(
unsigned char bid);
242 double* getInBuffer(
unsigned char subx,
unsigned char suby);
243 double* getInBuffer(
unsigned char bid);
246 size_t getBuffSize(
unsigned char subx,
unsigned char suby);
247 size_t getBuffSize(
unsigned char bid);
250 size_t startOffset(
unsigned char subx,
unsigned char suby);
253 void displayBlock(
unsigned char subx,
unsigned char suby,
bool out);
256 void copyToBuffer(
unsigned char buffid,
double* src);
259 void copyFromBuffer(
unsigned char buffid,
double* dest);
262 void copyAllToBuffer(
double* src);
264 void copyUsedFromBuffer(
double* dest);
266 void setUsed(
unsigned char buffid);
271 void populateDimsTable();
272 void populateOffsetTable(
size_t inset,
size_t xmidlen,
size_t ymidlen);
273 void createBuffArrays(
double* startaddress,
double* buffptr[27],
size_t inset,
size_t xmidlen,
size_t ymidlen);
278 size_t buffoffsets[9];
279 size_t flatoffsets[9];
287 double* inbuffptr[9];
288 double* outbuffptr[9];
294 int getTag2(
unsigned char sourcex,
unsigned char sourcey,
unsigned char targetx,
unsigned char targety);
298 int getTag2(
unsigned char destx,
unsigned char desty,
bool deltax,
bool deltay);
302 unsigned char getSrcBuffID2(
unsigned char destx,
unsigned char desty,
bool deltax,
bool deltay);
304 #endif // __RIPLEY_BLOCKTOOLS_H__ void generateInNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:43
Definition: blocktools.h:69
int tag
Definition: blocktools.h:74
size_t sx
Definition: blocktools.h:175
double * inbuff
Definition: blocktools.h:169
unsigned char destbuffid
Definition: blocktools.h:76
size_t sx
Definition: blocktools.h:282
const unsigned int dpsize
Definition: blocktools.h:184
size_t inset
Definition: blocktools.h:178
Definition: blocktools.h:226
double * outbuff
Definition: blocktools.h:277
size_t ymidlen
Definition: blocktools.h:286
Definition: blocktools.h:206
void generateOutNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:82
Definition: blocktools.h:82
double * outbuff
Definition: blocktools.h:170
coord_t zmax
Definition: blocktools.h:101
neighbourID_t sourceID
Definition: blocktools.h:72
const unsigned int dpsize
Definition: blocktools.h:289
double * inbuff
Definition: blocktools.h:276
size_t ymidlen
Definition: blocktools.h:180
neighbourID_t destID
Definition: blocktools.h:73
BlockGrid(coord_t maxx, coord_t maxy, coord_t maxz)
Definition: blocktools.cpp:24
coord_t xmax
Definition: blocktools.h:221
unsigned char srcbuffid
Definition: blocktools.h:75
neighbourID_t getNID(coord_t x, coord_t y, coord_t z) const
Definition: blocktools.cpp:28
size_t xmidlen
Definition: blocktools.h:179
size_t sy
Definition: blocktools.h:283
size_t xmidlen
Definition: blocktools.h:285
int Esys_MPI_rank
Definition: Esys_MPI.h:59
size_t sy
Definition: blocktools.h:176
size_t inset
Definition: blocktools.h:284
coord_t ymax
Definition: blocktools.h:100
coord_t xmax
Definition: blocktools.h:99
size_t zmidlen
Definition: blocktools.h:181
Definition: blocktools.h:119
coord_t ymax
Definition: blocktools.h:222
size_t sz
Definition: blocktools.h:177