18 #ifndef __RIPLEY_BLOCKTOOLS_H__
19 #define __RIPLEY_BLOCKTOOLS_H__
58 #include <escript/EsysMPI.h>
130 double*
getOutBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
135 double*
getInBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
139 size_t getBuffSize(
unsigned char subx,
unsigned char suby,
unsigned char subz);
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);
159 void setUsed(
unsigned char buffid);
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,
231 size_t ymidlen,
unsigned int dpp=1);
237 double*
getOutBuffer(
unsigned char subx,
unsigned char suby);
242 double*
getInBuffer(
unsigned char subx,
unsigned char suby);
246 size_t getBuffSize(
unsigned char subx,
unsigned char suby);
250 size_t startOffset(
unsigned char subx,
unsigned char suby);
253 void displayBlock(
unsigned char subx,
unsigned char suby,
bool out);
266 void setUsed(
unsigned char buffid);
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);
Definition: blocktools.h:227
size_t inset
Definition: blocktools.h:284
double * getOutBuffer(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:101
Block2(size_t sx, size_t sy, size_t inset, size_t xmidlen, size_t ymidlen, unsigned int dpp=1)
Definition: blocktools2.cpp:247
size_t xmidlen
Definition: blocktools.h:285
void populateDimsTable()
Definition: blocktools2.cpp:166
void populateOffsetTable(size_t inset, size_t xmidlen, size_t ymidlen)
Definition: blocktools2.cpp:184
void displayBlock(unsigned char subx, unsigned char suby, bool out)
Definition: blocktools2.cpp:289
size_t dims[9][2]
Definition: blocktools.h:281
void createBuffArrays(double *startaddress, double *buffptr[27], size_t inset, size_t xmidlen, size_t ymidlen)
Definition: blocktools2.cpp:206
const unsigned int dpsize
Definition: blocktools.h:289
size_t flatoffsets[9]
Definition: blocktools.h:279
size_t getBuffSize(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:121
~Block2()
Definition: blocktools2.cpp:160
size_t buffoffsets[9]
Definition: blocktools.h:278
void copyAllToBuffer(double *src)
Definition: blocktools2.cpp:221
size_t sx
Definition: blocktools.h:282
size_t startOffset(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:277
void copyToBuffer(unsigned char buffid, double *src)
Definition: blocktools2.cpp:318
void copyUsedFromBuffer(double *dest)
Definition: blocktools2.cpp:234
void setUsed(unsigned char buffid)
Definition: blocktools2.cpp:216
double * outbuffptr[9]
Definition: blocktools.h:288
double * inbuffptr[9]
Definition: blocktools.h:287
size_t sy
Definition: blocktools.h:283
double * inbuff
Definition: blocktools.h:276
void copyFromBuffer(unsigned char buffid, double *dest)
Definition: blocktools2.cpp:346
double * outbuff
Definition: blocktools.h:277
double * getInBuffer(unsigned char subx, unsigned char suby)
Definition: blocktools2.cpp:111
size_t ymidlen
Definition: blocktools.h:286
bool used[9]
Definition: blocktools.h:280
Definition: blocktools.h:207
BlockGrid2(coord_t maxx, coord_t maxy)
Definition: blocktools2.cpp:24
coord_t xmax
Definition: blocktools.h:221
void generateOutNeighbours(coord_t blockx, coord_t blocky, messvec &v)
Definition: blocktools2.cpp:68
void generateInNeighbours(coord_t blockx, coord_t blocky, messvec &v)
Definition: blocktools2.cpp:35
neighbourID_t getNID(coord_t x, coord_t y) const
Definition: blocktools2.cpp:28
coord_t ymax
Definition: blocktools.h:222
Definition: blocktools.h:83
coord_t zmax
Definition: blocktools.h:101
neighbourID_t getNID(coord_t x, coord_t y, coord_t z) const
Definition: blocktools.cpp:29
coord_t ymax
Definition: blocktools.h:100
BlockGrid(coord_t maxx, coord_t maxy, coord_t maxz)
Definition: blocktools.cpp:25
void generateInNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:44
coord_t xmax
Definition: blocktools.h:99
void generateOutNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:83
Definition: blocktools.h:120
size_t getBuffSize(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:143
bool used[27]
Definition: blocktools.h:173
void copyToBuffer(unsigned char buffid, double *src)
Definition: blocktools.cpp:358
~Block()
Definition: blocktools.cpp:182
size_t ymidlen
Definition: blocktools.h:180
size_t dims[27][3]
Definition: blocktools.h:174
double * getOutBuffer(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:123
void copyFromBuffer(unsigned char buffid, double *dest)
Definition: blocktools.cpp:387
void displayBlock(unsigned char subx, unsigned char suby, unsigned char subz, bool out)
Definition: blocktools.cpp:324
void createBuffArrays(double *startaddress, double *buffptr[27], size_t inset, size_t xmidlen, size_t ymidlen, size_t zmidlen)
Definition: blocktools.cpp:237
void setUsed(unsigned char buffid)
Definition: blocktools.cpp:247
size_t zmidlen
Definition: blocktools.h:181
double * getInBuffer(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:133
size_t inset
Definition: blocktools.h:178
const unsigned int dpsize
Definition: blocktools.h:184
size_t xmidlen
Definition: blocktools.h:179
size_t sz
Definition: blocktools.h:177
void populateOffsetTable(size_t inset, size_t xmidlen, size_t ymidlen, size_t zmidlen)
Definition: blocktools.cpp:215
size_t buffoffsets[27]
Definition: blocktools.h:171
size_t sy
Definition: blocktools.h:176
size_t sx
Definition: blocktools.h:175
size_t flatoffsets[27]
Definition: blocktools.h:172
double * inbuff
Definition: blocktools.h:169
void copyUsedFromBuffer(double *dest)
Definition: blocktools.cpp:265
double * inbuffptr[27]
Definition: blocktools.h:182
size_t startOffset(unsigned char subx, unsigned char suby, unsigned char subz)
Definition: blocktools.cpp:310
void copyAllToBuffer(double *src)
Definition: blocktools.cpp:252
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:278
void populateDimsTable()
Definition: blocktools.cpp:188
double * outbuffptr[27]
Definition: blocktools.h:183
double * outbuff
Definition: blocktools.h:170
Definition: blocktools.h:70
unsigned char destbuffid
Definition: blocktools.h:76
unsigned char srcbuffid
Definition: blocktools.h:75
neighbourID_t destID
Definition: blocktools.h:73
int tag
Definition: blocktools.h:74
neighbourID_t sourceID
Definition: blocktools.h:72