Updating I/O pattern for lbpm_refine_pp

This commit is contained in:
James E McClure
2017-03-28 09:25:29 -04:00
parent 3ddea4dfbf
commit b7b3832306

View File

@@ -155,6 +155,116 @@ int main(int argc, char **argv)
fwrite(RefinedSignDist.data(),8,rnx*rny*rnz,REFINEDIST);
fclose(REFINEDIST);
DoubleArray BlockDist(nx,ny,nz);
int writerank;
// Write output blocks with the same sub-domain size as origina
// refinement increases the size of the process grid
writerank = 8*kproc*nprocx*nprocy + 4*jproc*nprocx + 2*iproc;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i,j,k);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = 8*kproc*nprocx*nprocy + 4*jproc*nprocx + 2*iproc+1;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i+nx,j,k);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = (2*kproc)*4*nprocx*nprocy + (2*jproc+1)*2*nprocx + 2*iproc+1;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i+nx,j+ny,k);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = (2*kproc)*4*nprocx*nprocy + (2*jproc+1)*2*nprocx + 2*iproc;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i,j+ny,k);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = (2*kproc+1)*4*nprocx*nprocy + (2*jproc)*2*nprocx + 2*iproc;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i,j,k+nz);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = (2*kproc+1)*4*nprocx*nprocy + (2*jproc)*2*nprocx + 2*iproc+1;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i+nx,j,k+nz);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = (2*kproc+1)*4*nprocx*nprocy + (2*jproc+1)*2*nprocx + 2*iproc;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i,j+ny,k+nz);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
writerank = (2*kproc+1)*4*nprocx*nprocy + (2*jproc+1)*2*nprocx + 2*iproc+1;
for (int k=0; k<nz; k++){
for (int j=0; j<ny; j++){
for (int i=0; i<nx; i++){
BlockDist(i,j,k) = RefinedSignDist(i+nx,j+ny,k+nz);
}
}
}
sprintf(LocalRankFilename,"RefineDist.%05i",writerank);
REFINEDIST = fopen(LocalRankFilename,"wb");
fwrite(BlockDist.data(),8,nx*ny*nz,REFINEDIST);
fclose(REFINEDIST);
}
MPI_Barrier(comm);
MPI_Finalize();