17 #ifndef __RIPLEY_BLOCKTOOLS_H__ 18 #define __RIPLEY_BLOCKTOOLS_H__ 57 #include <escript/EsysMPI.h> 122 Block(
size_t sx,
size_t sy,
size_t sz,
size_t inset,
size_t xmidlen,
123 size_t ymidlen,
size_t zmidlen,
unsigned int dpp=1);
129 double* getOutBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
130 double* getOutBuffer(
unsigned char bid);
134 double* getInBuffer(
unsigned char subx,
unsigned char suby,
unsigned char subz);
135 double* getInBuffer(
unsigned char bid);
138 size_t getBuffSize(
unsigned char subx,
unsigned char suby,
unsigned char subz);
139 size_t getBuffSize(
unsigned char bid);
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);
148 void copyToBuffer(
unsigned char buffid,
double* src);
151 void copyFromBuffer(
unsigned char buffid,
double* dest);
154 void copyAllToBuffer(
double* src);
156 void copyUsedFromBuffer(
double* dest);
158 void setUsed(
unsigned char buffid);
163 void populateDimsTable();
164 void populateOffsetTable(
size_t inset,
size_t xmidlen,
size_t ymidlen,
size_t zmidlen);
165 void createBuffArrays(
double* startaddress,
double* buffptr[27],
size_t inset,
size_t xmidlen,
size_t ymidlen,
size_t zmidlen);
170 size_t buffoffsets[27];
171 size_t flatoffsets[27];
181 double* inbuffptr[27];
182 double* outbuffptr[27];
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,
229 Block2(
size_t sx,
size_t sy,
size_t inset,
size_t xmidlen,
230 size_t ymidlen,
unsigned int dpp=1);
236 double* getOutBuffer(
unsigned char subx,
unsigned char suby);
237 double* getOutBuffer(
unsigned char bid);
241 double* getInBuffer(
unsigned char subx,
unsigned char suby);
242 double* getInBuffer(
unsigned char bid);
245 size_t getBuffSize(
unsigned char subx,
unsigned char suby);
246 size_t getBuffSize(
unsigned char bid);
249 size_t startOffset(
unsigned char subx,
unsigned char suby);
252 void displayBlock(
unsigned char subx,
unsigned char suby,
bool out);
255 void copyToBuffer(
unsigned char buffid,
double* src);
258 void copyFromBuffer(
unsigned char buffid,
double* dest);
261 void copyAllToBuffer(
double* src);
263 void copyUsedFromBuffer(
double* dest);
265 void setUsed(
unsigned char buffid);
270 void populateDimsTable();
271 void populateOffsetTable(
size_t inset,
size_t xmidlen,
size_t ymidlen);
272 void createBuffArrays(
double* startaddress,
double* buffptr[27],
size_t inset,
size_t xmidlen,
size_t ymidlen);
277 size_t buffoffsets[9];
278 size_t flatoffsets[9];
286 double* inbuffptr[9];
287 double* outbuffptr[9];
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__ void generateInNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:43
Definition: blocktools.h:68
int tag
Definition: blocktools.h:73
size_t sx
Definition: blocktools.h:174
double * inbuff
Definition: blocktools.h:168
unsigned char destbuffid
Definition: blocktools.h:75
size_t sx
Definition: blocktools.h:281
neighbourID_t getNID(coord_t x, coord_t y, coord_t z) const
Definition: blocktools.cpp:28
const unsigned int dpsize
Definition: blocktools.h:183
size_t inset
Definition: blocktools.h:177
Definition: blocktools.h:225
double * outbuff
Definition: blocktools.h:276
size_t ymidlen
Definition: blocktools.h:285
Definition: blocktools.h:205
void generateOutNeighbours(coord_t blockx, coord_t blocky, coord_t blockz, messvec &v)
Definition: blocktools.cpp:82
Definition: blocktools.h:81
double * outbuff
Definition: blocktools.h:169
coord_t zmax
Definition: blocktools.h:100
neighbourID_t sourceID
Definition: blocktools.h:71
const unsigned int dpsize
Definition: blocktools.h:288
double * inbuff
Definition: blocktools.h:275
size_t ymidlen
Definition: blocktools.h:179
neighbourID_t destID
Definition: blocktools.h:72
BlockGrid(coord_t maxx, coord_t maxy, coord_t maxz)
Definition: blocktools.cpp:24
coord_t xmax
Definition: blocktools.h:220
unsigned char srcbuffid
Definition: blocktools.h:74
size_t xmidlen
Definition: blocktools.h:178
size_t sy
Definition: blocktools.h:282
size_t xmidlen
Definition: blocktools.h:284
size_t sy
Definition: blocktools.h:175
size_t inset
Definition: blocktools.h:283
coord_t ymax
Definition: blocktools.h:99
coord_t xmax
Definition: blocktools.h:98
size_t zmidlen
Definition: blocktools.h:180
Definition: blocktools.h:118
coord_t ymax
Definition: blocktools.h:221
size_t sz
Definition: blocktools.h:176