Added Domain::VoxelConnection(x,y,z)

This commit is contained in:
James McClure 2014-06-26 13:57:27 -04:00
parent 414d18f527
commit 6a91d286aa

View File

@ -86,7 +86,12 @@ struct Domain{
void getBlobConnections(); void getBlobConnections();
private: private:
int getRankForBlock( int i, int j, int k ) int d[26][3] = {{1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1},
{1,1,0},{1,-1,0},{-1,1,0},{-1,-1,0},{1,0,1},{-1,0,1},
{1,0,-1},{-1,0,-1},{0,1,1},{0,-1,1},{0,1,-1},{0,-1,-1},
{1,1,1},{1,1,-1},{1,-1,1},{1,-1,-1},{-1,1,1},{-1,1,-1},
int getRankForBlock( int i, int j, int k )
{ {
int i2 = (i+nprocx)%nprocx; int i2 = (i+nprocx)%nprocx;
int j2 = (j+nprocy)%nprocy; int j2 = (j+nprocy)%nprocy;
@ -111,6 +116,25 @@ private:
data[n] = recvbuf[idx]; data[n] = recvbuf[idx];
} }
} }
int VoxelConnection(int x, int y, int z){
int returnVal = -1;
int nodx,nody,nodz;
for (int p=0;p<26;p++){
nodx=x+d[p][0];
// Get the neighbor and guarantee it is in the domain
if (nodx < 0 ){ nodx = 0; }
if (nodx > Nx-1 ){ nodx = Nx-1; }
nody=y+d[p][1];
if (nody < 0 ){ nody = 0; }
if (nody > Ny-1 ){ nody = Ny-1; }
nodz=z+d[p][2];
if (nodz < 0 ){ nodz = 0; }
if (nodz > Nz-1 ){ nodz = Nz-1; }
if (Blobs(nodx,nody,nodz) > returnVal ) returnVal = Blobs(nodx,nody,nodz);
}
return returnVal;
}
}; };