Adding files from OLCF
This commit is contained in:
parent
f79a66e5d3
commit
db6dac1e49
@ -243,7 +243,7 @@ void run_analysis( int timestep, int restart_interval,
|
|||||||
// Identify blobs and update global ids in time
|
// Identify blobs and update global ids in time
|
||||||
type = static_cast<AnalysisType>( type | IdentifyBlobs );
|
type = static_cast<AnalysisType>( type | IdentifyBlobs );
|
||||||
}
|
}
|
||||||
#ifdef USE_CUDA
|
/* #ifdef USE_CUDA
|
||||||
if ( tpool.getQueueSize()<=3 && tpool.getNumThreads()>0 && timestep%50==0 ) {
|
if ( tpool.getQueueSize()<=3 && tpool.getNumThreads()>0 && timestep%50==0 ) {
|
||||||
// Keep a few blob identifications queued up to keep the processors busy,
|
// Keep a few blob identifications queued up to keep the processors busy,
|
||||||
// allowing us to track the blobs as fast as possible
|
// allowing us to track the blobs as fast as possible
|
||||||
@ -251,7 +251,7 @@ void run_analysis( int timestep, int restart_interval,
|
|||||||
type = static_cast<AnalysisType>( type | IdentifyBlobs );
|
type = static_cast<AnalysisType>( type | IdentifyBlobs );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
if ( timestep%ANALYSIS_INTERVAL == 0 ) {
|
if ( timestep%ANALYSIS_INTERVAL == 0 ) {
|
||||||
// Copy the averages to the CPU (and identify blobs)
|
// Copy the averages to the CPU (and identify blobs)
|
||||||
type = static_cast<AnalysisType>( type | CopySimState );
|
type = static_cast<AnalysisType>( type | CopySimState );
|
||||||
@ -369,7 +369,7 @@ void run_analysis( int timestep, int restart_interval,
|
|||||||
// Retain the timestep associated with the restart files
|
// Retain the timestep associated with the restart files
|
||||||
if (rank==0){
|
if (rank==0){
|
||||||
FILE *Rst = fopen("Restart.txt","w");
|
FILE *Rst = fopen("Restart.txt","w");
|
||||||
fprintf(Rst,"%i\n",timestep);
|
fprintf(Rst,"%i\n",timestep+5);
|
||||||
fclose(Rst);
|
fclose(Rst);
|
||||||
}
|
}
|
||||||
// Write the restart file (using a seperate thread)
|
// Write the restart file (using a seperate thread)
|
||||||
|
@ -228,7 +228,7 @@ int main(int argc, char **argv)
|
|||||||
printf("Force(x) = %f \n", Fx);
|
printf("Force(x) = %f \n", Fx);
|
||||||
printf("Force(y) = %f \n", Fy);
|
printf("Force(y) = %f \n", Fy);
|
||||||
printf("Force(z) = %f \n", Fz);
|
printf("Force(z) = %f \n", Fz);
|
||||||
printf("Sub-domain size = %i x %i x %i\n",Nz,Nz,Nz);
|
printf("Sub-domain size = %i x %i x %i\n",Nx,Ny,Nz);
|
||||||
printf("Parallel domain size = %i x %i x %i\n",nprocx,nprocy,nprocz);
|
printf("Parallel domain size = %i x %i x %i\n",nprocx,nprocy,nprocz);
|
||||||
printf("********************************************************\n");
|
printf("********************************************************\n");
|
||||||
}
|
}
|
||||||
@ -246,7 +246,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
MPI_Barrier(comm);
|
MPI_Barrier(comm);
|
||||||
|
|
||||||
Nz += 2;
|
Nx += 2; Ny += 2; Nz += 2;
|
||||||
//Nx = Ny = Nz; // Cubic domain
|
//Nx = Ny = Nz; // Cubic domain
|
||||||
|
|
||||||
int N = Nx*Ny*Nz;
|
int N = Nx*Ny*Nz;
|
||||||
|
@ -18,16 +18,20 @@ int main(int argc, char **argv)
|
|||||||
// Initialize MPI
|
// Initialize MPI
|
||||||
int rank, nprocs;
|
int rank, nprocs;
|
||||||
MPI_Init(&argc,&argv);
|
MPI_Init(&argc,&argv);
|
||||||
MPI_Comm comm = MPI_COMM_WORLD;
|
|
||||||
|
MPI_Comm comm = MPI_COMM_WORLD;
|
||||||
MPI_Comm_rank(comm,&rank);
|
MPI_Comm_rank(comm,&rank);
|
||||||
MPI_Comm_size(comm,&nprocs);
|
MPI_Comm_size(comm,&nprocs);
|
||||||
|
{
|
||||||
|
|
||||||
int SOLID=atoi(argv[1]);
|
int SOLID=atoi(argv[1]);
|
||||||
int NWP=atoi(argv[2]);
|
int NWP=atoi(argv[2]);
|
||||||
|
//char NWP,SOLID;
|
||||||
|
//SOLID=argv[1][0];
|
||||||
|
//NWP=argv[2][0];
|
||||||
if (rank==0){
|
if (rank==0){
|
||||||
printf("Solid Label %i \n",SOLID);
|
printf("Solid Label: %i \n",SOLID);
|
||||||
printf("NWP Label %i \n",NWP);
|
printf("NWP Label: %i \n",NWP);
|
||||||
}
|
}
|
||||||
//.......................................................................
|
//.......................................................................
|
||||||
// Reading the domain information file
|
// Reading the domain information file
|
||||||
@ -189,22 +193,15 @@ int main(int argc, char **argv)
|
|||||||
nx+=2; ny+=2; nz+=2;
|
nx+=2; ny+=2; nz+=2;
|
||||||
N=nx*ny*nz;
|
N=nx*ny*nz;
|
||||||
|
|
||||||
//if (rank==0) printf("WARNING: assumed that INPUT: WP(1),NWP(2) OUTPUT will be NWP(1),WP(2) (lbpm_segmented_decomp) \n");
|
|
||||||
if (rank==0) printf("All sub-domains recieved \n");
|
if (rank==0) printf("All sub-domains recieved \n");
|
||||||
// Really need a better way to do this -- this is to flip convention for a particular data set
|
|
||||||
for (k=0;k<nz;k++){
|
for (k=0;k<nz;k++){
|
||||||
for (j=0;j<ny;j++){
|
for (j=0;j<ny;j++){
|
||||||
for (i=0;i<nx;i++){
|
for (i=0;i<nx;i++){
|
||||||
n = k*nx*ny+j*nx+i;
|
n = k*nx*ny+j*nx+i;
|
||||||
if (Dm.id[n]==char(SOLID)) Dm.id[n] = 0;
|
if (Dm.id[n]==char(SOLID)) Dm.id[n] = 0;
|
||||||
else if (Dm.id[n]==char(NWP)) Dm.id[n] = 1;
|
else if (Dm.id[n]==char(NWP)) Dm.id[n] = 1;
|
||||||
else Dm.id[n] = 2;
|
else Dm.id[n] = 2;
|
||||||
|
|
||||||
// if (Dm.id[n] == 1) Dm.id[n]=2;
|
|
||||||
//else if (Dm.id[n] == 2) Dm.id[n]=1;
|
|
||||||
// Initialize the solid phase
|
|
||||||
// if (Dm.id[n] == 0) id[n] = 0;
|
|
||||||
// else id[n] = 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -230,6 +227,24 @@ int main(int argc, char **argv)
|
|||||||
float porosity = float(totalGlobal-countGlobal)/totalGlobal;
|
float porosity = float(totalGlobal-countGlobal)/totalGlobal;
|
||||||
if (rank==0) printf("Porosity=%f\n",porosity);
|
if (rank==0) printf("Porosity=%f\n",porosity);
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
total = 0;
|
||||||
|
countGlobal = 0;
|
||||||
|
totalGlobal = 0;
|
||||||
|
for (k=1;k<nz-1;k++){
|
||||||
|
for (j=1;j<ny-1;j++){
|
||||||
|
for (i=1;i<nx-1;i++){
|
||||||
|
n=k*nx*ny+j*nx+i;
|
||||||
|
if (Dm.id[n] != 0) total++;
|
||||||
|
if (Dm.id[n] == 2) count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MPI_Allreduce(&count,&countGlobal,1,MPI_INT,MPI_SUM,comm);
|
||||||
|
MPI_Allreduce(&total,&totalGlobal,1,MPI_INT,MPI_SUM,comm);
|
||||||
|
float saturation = float(countGlobal)/totalGlobal;
|
||||||
|
if (rank==0) printf("wetting phase saturation=%f\n",saturation);
|
||||||
|
|
||||||
|
|
||||||
char LocalRankFilename[40];
|
char LocalRankFilename[40];
|
||||||
|
|
||||||
@ -264,7 +279,7 @@ int main(int argc, char **argv)
|
|||||||
// fwrite(SymDist.get(),8,SymDist.length(),SYMDIST);
|
// fwrite(SymDist.get(),8,SymDist.length(),SYMDIST);
|
||||||
fwrite(symid,1,N,SYMID);
|
fwrite(symid,1,N,SYMID);
|
||||||
fclose(SYMID);
|
fclose(SYMID);
|
||||||
|
}
|
||||||
MPI_Barrier(comm);
|
MPI_Barrier(comm);
|
||||||
MPI_Finalize();
|
MPI_Finalize();
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import csv
|
|||||||
import glob
|
import glob
|
||||||
|
|
||||||
name=sys.argv[1]
|
name=sys.argv[1]
|
||||||
numpts=int(sys.argv[2])
|
#numpts=int(sys.argv[2])
|
||||||
process="drain"
|
process="drain"
|
||||||
cwd=os.getcwd()
|
cwd=os.getcwd()
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ print("Drainage should initialize imbibition!")
|
|||||||
print("Base name is "+name)
|
print("Base name is "+name)
|
||||||
|
|
||||||
# Parameters for color LBM
|
# Parameters for color LBM
|
||||||
tau=0.7
|
tau=0.8
|
||||||
alpha=0.005
|
alpha=0.005
|
||||||
beta=0.95
|
beta=0.95
|
||||||
phisol=-1.0
|
phisol=-1.0
|
||||||
@ -25,7 +25,7 @@ Restart=1
|
|||||||
pBC=3
|
pBC=3
|
||||||
din=1.001
|
din=1.001
|
||||||
dout=0.999
|
dout=0.999
|
||||||
maxtime=100005
|
maxtime=2000005
|
||||||
interval=50000
|
interval=50000
|
||||||
tolerance=1e-5
|
tolerance=1e-5
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user