Go to the documentation of this file.
17 #ifndef __RIPLEY_BLOCKTOOLS_H__
18 #define __RIPLEY_BLOCKTOOLS_H__
57 #include <escript/EsysMPI.h>
74 unsigned char srcbuffid;
75 unsigned char destbuffid;
78 typedef std::vector<message>
messvec;
129 double*
getOutBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
134 double*
getInBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
138 size_t getBuffSize(
unsigned char subx,
unsigned char suby,
unsigned char subz);
142 size_t startOffset(
unsigned char subx,
unsigned char suby,
unsigned char subz);
145 void displayBlock(
unsigned char subx,
unsigned char suby,
unsigned char subz,
bool out);
158 void setUsed(
unsigned char buffid);
183 const unsigned int dpsize;
187 int getTag(
unsigned char sourcex,
unsigned char sourcey,
unsigned char sourcez,
188 unsigned char targetx,
unsigned char targety,
unsigned char targetz);
192 int getTag(
unsigned char destx,
unsigned char desty,
unsigned char destz,
193 bool deltax,
bool deltay,
bool deltaz);
197 unsigned char getSrcBuffID(
unsigned char destx,
unsigned char desty,
198 unsigned char destz,
bool deltax,
bool deltay,
230 size_t ymidlen,
unsigned int dpp=1);
236 double*
getOutBuffer(
unsigned char subx,
unsigned char suby);
241 double*
getInBuffer(
unsigned char subx,
unsigned char suby);
245 size_t getBuffSize(
unsigned char subx,
unsigned char suby);
249 size_t startOffset(
unsigned char subx,
unsigned char suby);
252 void displayBlock(
unsigned char subx,
unsigned char suby,
bool out);
265 void setUsed(
unsigned char buffid);
288 const unsigned int dpsize;
293 int getTag2(
unsigned char sourcex,
unsigned char sourcey,
unsigned char targetx,
unsigned char targety);
297 int getTag2(
unsigned char destx,
unsigned char desty,
bool deltax,
bool deltay);
301 unsigned char getSrcBuffID2(
unsigned char destx,
unsigned char desty,
bool deltax,
bool deltay);
303 #endif // __RIPLEY_BLOCKTOOLS_H__
double * getInBuffer(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:132
Block(size_t sx, size_t sy, size_t sz, size_t inset, size_t xmidlen, size_t ymidlen, size_t zmidlen, unsigned int dpp=1)
Definition: blocktools.cpp:277
void displayBlock(unsigned char subx, unsigned char suby, unsigned char subz, bool out)
Definition: blocktools.cpp:323
double * getOutBuffer(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:122
neighbourID_t sourceID
Definition: blocktools.h:70
void populateOffsetTable(size_t inset, size_t xmidlen, size_t ymidlen)
Definition: blocktools2.cpp:182
size_t startOffset(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:275
size_t sx
Definition: blocktools.h:173
Definition: blocktools.h:67
void createBuffArrays(double *startaddress, double *buffptr[27], size_t inset, size_t xmidlen, size_t ymidlen)
Definition: blocktools2.cpp:204
BlockGrid(coord_t maxx, coord_t maxy, coord_t maxz)
Definition: blocktools.cpp:24
neighbourID_t destID
Definition: blocktools.h:71
const unsigned int dpsize
Definition: blocktools.h:287
size_t buffoffsets[27]
Definition: blocktools.h:169
size_t dims[9][2]
Definition: blocktools.h:279
size_t startOffset(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:309
size_t inset
Definition: blocktools.h:176
size_t sx
Definition: blocktools.h:280
void copyFromBuffer(unsigned char buffid, double *dest)
Definition: blocktools.cpp:386
double * inbuff
Definition: blocktools.h:167
double * outbuff
Definition: blocktools.h:275
void populateDimsTable()
Definition: blocktools2.cpp:164
int tag
Definition: blocktools.h:72
void populateOffsetTable(size_t inset, size_t xmidlen, size_t ymidlen, size_t zmidlen)
Definition: blocktools.cpp:214
double * inbuff
Definition: blocktools.h:274
size_t dims[27][3]
Definition: blocktools.h:172
double * getOutBuffer(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:99
const unsigned int dpsize
Definition: blocktools.h:182
double * outbuffptr[9]
Definition: blocktools.h:286
Definition: blocktools.h:224
size_t ymidlen
Definition: blocktools.h:178
double * outbuffptr[27]
Definition: blocktools.h:181
void createBuffArrays(double *startaddress, double *buffptr[27], size_t inset, size_t xmidlen, size_t ymidlen, size_t zmidlen)
Definition: blocktools.cpp:236
void copyAllToBuffer(double *src)
Definition: blocktools.cpp:251
void generateOutNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:82
double * outbuff
Definition: blocktools.h:168
coord_t zmax
Definition: blocktools.h:99
Definition: blocktools.h:80
neighbourID_t getNID(coord_t x, coord_t y, coord_t z) const
Definition: blocktools.cpp:28
void copyFromBuffer(unsigned char buffid, double *dest)
Definition: blocktools2.cpp:344
size_t sy
Definition: blocktools.h:281
void generateInNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:43
void copyToBuffer(unsigned char buffid, double *src)
Definition: blocktools2.cpp:316
neighbourID_t getNID(coord_t x, coord_t y) const
Definition: blocktools2.cpp:26
double * getInBuffer(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:109
size_t xmidlen
Definition: blocktools.h:177
size_t flatoffsets[9]
Definition: blocktools.h:277
Block2(size_t sx, size_t sy, size_t inset, size_t xmidlen, size_t ymidlen, unsigned int dpp=1)
Definition: blocktools2.cpp:245
size_t flatoffsets[27]
Definition: blocktools.h:170
size_t buffoffsets[9]
Definition: blocktools.h:276
size_t xmidlen
Definition: blocktools.h:283
void populateDimsTable()
Definition: blocktools.cpp:187
size_t getBuffSize(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:119
void setUsed(unsigned char buffid)
Definition: blocktools.cpp:246
bool used[9]
Definition: blocktools.h:278
coord_t ymax
Definition: blocktools.h:98
void copyToBuffer(unsigned char buffid, double *src)
Definition: blocktools.cpp:357
void setUsed(unsigned char buffid)
Definition: blocktools2.cpp:214
size_t zmidlen
Definition: blocktools.h:179
bool used[27]
Definition: blocktools.h:171
coord_t xmax
Definition: blocktools.h:97
Definition: blocktools.h:204
size_t getBuffSize(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:142
Definition: blocktools.h:117
size_t sy
Definition: blocktools.h:174
void displayBlock(unsigned char subx, unsigned char suby, bool out)
Definition: blocktools2.cpp:287
BlockGrid2(coord_t maxx, coord_t maxy)
Definition: blocktools2.cpp:22
void copyUsedFromBuffer(double *dest)
Definition: blocktools.cpp:264
coord_t xmax
Definition: blocktools.h:219
size_t sz
Definition: blocktools.h:175
unsigned char destbuffid
Definition: blocktools.h:74
unsigned char srcbuffid
Definition: blocktools.h:73
double * inbuffptr[27]
Definition: blocktools.h:180
size_t ymidlen
Definition: blocktools.h:284
~Block2()
Definition: blocktools2.cpp:158
void copyAllToBuffer(double *src)
Definition: blocktools2.cpp:219
~Block()
Definition: blocktools.cpp:181
size_t inset
Definition: blocktools.h:282
double * inbuffptr[9]
Definition: blocktools.h:285
coord_t ymax
Definition: blocktools.h:220
void generateInNeighbours(coord_t blockx, coord_t blocky, messvec &v)
Definition: blocktools2.cpp:33
void copyUsedFromBuffer(double *dest)
Definition: blocktools2.cpp:232
void generateOutNeighbours(coord_t blockx, coord_t blocky, messvec &v)
Definition: blocktools2.cpp:66