Added Domain::VoxelConnection(x,y,z)
This commit is contained in:
parent
414d18f527
commit
6a91d286aa
@ -86,7 +86,12 @@ struct Domain{
|
||||
void getBlobConnections();
|
||||
|
||||
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 j2 = (j+nprocy)%nprocy;
|
||||
@ -111,6 +116,25 @@ private:
|
||||
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;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user