Removed the number of sweeps S from cpu code
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include <math.h>
|
||||
|
||||
extern "C" void dvc_InitDenColor(char *ID, double *Den, double *Phi, double das, double dbs, int Nx, int Ny, int Nz, int S)
|
||||
extern "C" void dvc_InitDenColor(char *ID, double *Den, double *Phi, double das, double dbs, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
|
||||
@@ -35,7 +35,7 @@ extern "C" void dvc_InitDenColor(char *ID, double *Den, double *Phi, double das,
|
||||
}
|
||||
}
|
||||
extern "C" void dvc_InitDenColorDistancePacked(char *ID, double *Den, double *Phi, double *Distance,
|
||||
double das, double dbs, double beta, double xp, int Nx, int Ny, int Nz, int S)
|
||||
double das, double dbs, double beta, double xp, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
double d;
|
||||
@@ -79,7 +79,7 @@ extern "C" void dvc_InitDenColorDistancePacked(char *ID, double *Den, double *Ph
|
||||
}
|
||||
|
||||
extern "C" void dvc_InitDenColorDistance(char *ID, double *Den, double *Phi, double *Distance,
|
||||
double das, double dbs, double beta, double xp, int Nx, int Ny, int Nz, int S)
|
||||
double das, double dbs, double beta, double xp, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
double d;
|
||||
@@ -163,7 +163,7 @@ extern "C" void dvc_Compute_VELOCITY(char *ID, double *disteven, double *distodd
|
||||
}
|
||||
|
||||
extern "C" void dvc_ComputePressureD3Q19(char *ID, double *disteven, double *distodd, double *Pressure,
|
||||
int Nx, int Ny, int Nz, int S)
|
||||
int Nx, int Ny, int Nz)
|
||||
{
|
||||
int n,N;
|
||||
// distributions
|
||||
@@ -208,7 +208,7 @@ extern "C" void dvc_ComputePressureD3Q19(char *ID, double *disteven, double *dis
|
||||
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ColorBC_inlet(double *Phi, double *Den, double *A_even, double *A_odd,
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz, int S)
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
N = Nx*Ny*Nz;
|
||||
@@ -251,7 +251,7 @@ extern "C" void dvc_ColorBC_inlet(double *Phi, double *Den, double *A_even, doub
|
||||
}
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ColorBC_outlet(double *Phi, double *Den, double *A_even, double *A_odd,
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz, int S)
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
N = Nx*Ny*Nz;
|
||||
@@ -295,7 +295,7 @@ extern "C" void dvc_ColorBC_outlet(double *Phi, double *Den, double *A_even, dou
|
||||
}
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_PressureBC_inlet(double *disteven, double *distodd, double din,
|
||||
int Nx, int Ny, int Nz, int S)
|
||||
int Nx, int Ny, int Nz)
|
||||
{
|
||||
int n,N;
|
||||
// distributions
|
||||
@@ -364,7 +364,7 @@ extern "C" void dvc_PressureBC_inlet(double *disteven, double *distodd, double d
|
||||
}
|
||||
|
||||
extern "C" void dvc_PressureBC_outlet(double *disteven, double *distodd, double dout,
|
||||
int Nx, int Ny, int Nz, int S, int outlet)
|
||||
int Nx, int Ny, int Nz, int outlet)
|
||||
{
|
||||
int n,N;
|
||||
// distributions
|
||||
@@ -430,7 +430,7 @@ extern "C" void dvc_PressureBC_outlet(double *disteven, double *distodd, double
|
||||
}
|
||||
}
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ComputeColorGradient(char *ID, double *phi, double *ColorGrad, int Nx, int Ny, int Nz, int S)
|
||||
extern "C" void dvc_ComputeColorGradient(char *ID, double *phi, double *ColorGrad, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int n,N,i,j,k,nn;
|
||||
// distributions
|
||||
@@ -558,7 +558,7 @@ extern "C" void dvc_ComputeColorGradient(char *ID, double *phi, double *ColorGra
|
||||
}
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ColorCollide( char *ID, double *disteven, double *distodd, double *ColorGrad,
|
||||
double *Velocity, int Nx, int Ny, int Nz, int S,double rlx_setA, double rlx_setB,
|
||||
double *Velocity, int Nx, int Ny, int Nz, double rlx_setA, double rlx_setB,
|
||||
double alpha, double beta, double Fx, double Fy, double Fz, bool pBC)
|
||||
{
|
||||
|
||||
@@ -773,7 +773,7 @@ extern "C" void dvc_ColorCollide( char *ID, double *disteven, double *distodd, d
|
||||
}
|
||||
|
||||
extern "C" void dvc_ColorCollideOpt( char *ID, double *disteven, double *distodd, double *phi, double *ColorGrad,
|
||||
double *Velocity, int Nx, int Ny, int Nz, int S,double rlx_setA, double rlx_setB,
|
||||
double *Velocity, int Nx, int Ny, int Nz, double rlx_setA, double rlx_setB,
|
||||
double alpha, double beta, double Fx, double Fy, double Fz)
|
||||
{
|
||||
|
||||
@@ -1174,7 +1174,7 @@ extern "C" void dvc_ColorCollideOpt( char *ID, double *disteven, double *distodd
|
||||
}
|
||||
|
||||
extern "C" void dvc_MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, double *B_even, double *B_odd,
|
||||
double *Den, double *Phi, double *ColorGrad, double *Velocity, double beta, int N, bool pBC, int S)
|
||||
double *Den, double *Phi, double *ColorGrad, double *Velocity, double beta, int N, bool pBC)
|
||||
{
|
||||
char id;
|
||||
|
||||
@@ -1455,7 +1455,7 @@ extern "C" void dvc_ComputePhi(char *ID, double *Phi, double *Copy, double *Den,
|
||||
//...................................................................
|
||||
}
|
||||
*/
|
||||
extern "C" void dvc_ComputePhi(char *ID, double *Phi, double *Den, int N, int S)
|
||||
extern "C" void dvc_ComputePhi(char *ID, double *Phi, double *Den, int N)
|
||||
{
|
||||
int n;
|
||||
double Na,Nb;
|
||||
|
||||
@@ -2,5 +2,5 @@ extern "C" void dvc_PackDist(int q, int *list, int start, int count, double *sen
|
||||
extern "C" void dvc_UnpackDist(int q, int Cqx, int Cqy, int Cqz, int *list, int start, int count,
|
||||
double *recvbuf, double *dist, int Nx, int Ny, int Nz);
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_InitD3Q19(char *ID, double *f_even, double *f_odd, int Nx, int Ny, int Nz, int S);
|
||||
extern "C" void dvc_SwapD3Q19(char *ID, double *disteven, double *distodd, int Nx, int Ny, int Nz, int S);
|
||||
extern "C" void dvc_InitD3Q19(char *ID, double *f_even, double *f_odd, int Nx, int Ny, int Nz);
|
||||
extern "C" void dvc_SwapD3Q19(char *ID, double *disteven, double *distodd, int Nx, int Ny, int Nz);
|
||||
|
||||
@@ -52,7 +52,7 @@ extern "C" void dvc_UnpackDenD3Q7(int *list, int count, double *recvbuf, int nu
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void dvc_InitD3Q7(char *ID, double *f_even, double *f_odd, double *Den, int Nx, int Ny, int Nz, int S)
|
||||
extern "C" void dvc_InitD3Q7(char *ID, double *f_even, double *f_odd, double *Den, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int n,N;
|
||||
N = Nx*Ny*Nz;
|
||||
@@ -81,7 +81,7 @@ extern "C" void dvc_InitD3Q7(char *ID, double *f_even, double *f_odd, double *De
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_SwapD3Q7(char *ID, double *disteven, double *distodd, int Nx, int Ny, int Nz, int S)
|
||||
extern "C" void dvc_SwapD3Q7(char *ID, double *disteven, double *distodd, int Nx, int Ny, int Nz)
|
||||
{
|
||||
int i,j,k,n,nn,N;
|
||||
// distributions
|
||||
@@ -143,7 +143,7 @@ extern "C" void dvc_SwapD3Q7(char *ID, double *disteven, double *distodd, int Nx
|
||||
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ComputeDensityD3Q7(char *ID, double *disteven, double *distodd, double *Den,
|
||||
int Nx, int Ny, int Nz, int S)
|
||||
int Nx, int Ny, int Nz)
|
||||
{
|
||||
char id;
|
||||
int n;
|
||||
|
||||
@@ -8,9 +8,9 @@ extern "C" void dvc_PackDenD3Q7(int *list, int count, double *sendbuf, int numbe
|
||||
|
||||
extern "C" void dvc_UnpackDenD3Q7(int *list, int count, double *recvbuf, int number, double *Data, int N);
|
||||
|
||||
extern "C" void dvc_InitD3Q7(char *ID, double *f_even, double *f_odd, double *Den, int Nx, int Ny, int Nz, int S);
|
||||
extern "C" void dvc_InitD3Q7(char *ID, double *f_even, double *f_odd, double *Den, int Nx, int Ny, int Nz);
|
||||
|
||||
extern "C" void dvc_SwapD3Q7(char *ID, double *disteven, double *distodd, int Nx, int Ny, int Nz, int S);
|
||||
extern "C" void dvc_SwapD3Q7(char *ID, double *disteven, double *distodd, int Nx, int Ny, int Nz);
|
||||
|
||||
extern "C" void dvc_ComputeDensityD3Q7(char *ID, double *disteven, double *distodd, double *Den,
|
||||
int Nx, int Ny, int Nz, int S);
|
||||
int Nx, int Ny, int Nz);
|
||||
@@ -1147,12 +1147,12 @@ int main(int argc, char **argv)
|
||||
//...........................................................................
|
||||
if (rank==0) printf("Setting the distributions, size = %i\n", N);
|
||||
//...........................................................................
|
||||
dvc_InitD3Q19(ID, f_even, f_odd, Nx, Ny, Nz, S);
|
||||
dvc_InitD3Q19(ID, f_even, f_odd, Nx, Ny, Nz);
|
||||
//......................................................................
|
||||
// dvc_InitDenColorDistance(ID, Copy, Phi, SignDist.data, das, dbs, beta, xIntPos, Nx, Ny, Nz, S);
|
||||
dvc_InitDenColorDistance(ID, Den, Phi, SignDist.data, das, dbs, beta, xIntPos, Nx, Ny, Nz, S);
|
||||
dvc_InitD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz, S);
|
||||
dvc_InitD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz, S);
|
||||
dvc_InitDenColorDistance(ID, Den, Phi, SignDist.data, das, dbs, beta, xIntPos, Nx, Ny, Nz);
|
||||
dvc_InitD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
|
||||
dvc_InitD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
|
||||
//......................................................................
|
||||
// Once phase has been initialized, map solid to account for 'smeared' interface
|
||||
//......................................................................
|
||||
@@ -1181,7 +1181,7 @@ int main(int argc, char **argv)
|
||||
// Compute the phase indicator field and reset Copy, Den
|
||||
//*************************************************************************
|
||||
// dvc_ComputePhi(ID, Phi, Copy, Den, N, S);
|
||||
dvc_ComputePhi(ID, Phi, Den, N, S);
|
||||
dvc_ComputePhi(ID, Phi, Den, N);
|
||||
//*************************************************************************
|
||||
//...................................................................................
|
||||
dvc_PackValues(dvcSendList_x, sendCount_x,sendbuf_x, Phi, N);
|
||||
@@ -1284,13 +1284,13 @@ int main(int argc, char **argv)
|
||||
printf("Setting outlet pressure = %f \n", dout);
|
||||
}
|
||||
if (pBC && kproc == 0) {
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz,S);
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz);
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz);
|
||||
}
|
||||
|
||||
if (pBC && kproc == nprocz-1){
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,S,Nx*Ny*(Nz-2));
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,Nx*Ny*(Nz-2));
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz);
|
||||
}
|
||||
|
||||
//...........................................................................
|
||||
@@ -1304,7 +1304,7 @@ int main(int argc, char **argv)
|
||||
// Copy the phase from the GPU -> CPU
|
||||
//...........................................................................
|
||||
dvc_Barrier();
|
||||
dvc_ComputePressureD3Q19(ID,f_even,f_odd,Pressure,Nx,Ny,Nz,S);
|
||||
dvc_ComputePressureD3Q19(ID,f_even,f_odd,Pressure,Nx,Ny,Nz);
|
||||
dvc_CopyToHost(Phase.data,Phi,N*sizeof(double));
|
||||
dvc_CopyToHost(Press.data,Pressure,N*sizeof(double));
|
||||
dvc_CopyToHost(Vel_x.data,&Velocity[0],N*sizeof(double));
|
||||
@@ -1342,25 +1342,11 @@ int main(int argc, char **argv)
|
||||
//************ MAIN ITERATION LOOP ***************************************/
|
||||
while (timestep < timestepMax){
|
||||
|
||||
//*************************************************************************
|
||||
// Compute the color gradient
|
||||
//*************************************************************************
|
||||
//dvc_ComputeColorGradient(nBlocks, nthreads, S,
|
||||
// ID, Phi, ColorGrad, Nx, Ny, Nz);
|
||||
//*************************************************************************
|
||||
|
||||
//*************************************************************************
|
||||
// Perform collision step for the momentum transport
|
||||
//*************************************************************************
|
||||
// dvc_ColorCollide(nBlocks, nthreads, S, ID, f_even, f_odd, ColorGrad, Velocity,
|
||||
// rlxA, rlxB,alpha, beta, Fx, Fy, Fz, Nx, Ny, Nz, pBC);
|
||||
//*************************************************************************
|
||||
|
||||
//*************************************************************************
|
||||
// Fused Color Gradient and Collision
|
||||
//*************************************************************************
|
||||
dvc_ColorCollideOpt( ID,f_even,f_odd,Phi,ColorGrad,
|
||||
Velocity,Nx,Ny,Nz,S,rlxA,rlxB,alpha,beta,Fx,Fy,Fz);
|
||||
Velocity,Nx,Ny,Nz,rlxA,rlxB,alpha,beta,Fx,Fy,Fz);
|
||||
//*************************************************************************
|
||||
|
||||
//...................................................................................
|
||||
@@ -1472,13 +1458,13 @@ int main(int argc, char **argv)
|
||||
// dvc_DensityStreamD3Q7(ID, Den, Copy, Phi, ColorGrad, Velocity, beta, Nx, Ny, Nz, pBC, S);
|
||||
//*************************************************************************
|
||||
dvc_MassColorCollideD3Q7(ID, A_even, A_odd, B_even, B_odd, Den, Phi,
|
||||
ColorGrad, Velocity, beta, N, pBC, S);
|
||||
ColorGrad, Velocity, beta, N, pBC);
|
||||
|
||||
|
||||
//*************************************************************************
|
||||
// Swap the distributions for momentum transport
|
||||
//*************************************************************************
|
||||
dvc_SwapD3Q19(ID, f_even, f_odd, Nx, Ny, Nz, S);
|
||||
dvc_SwapD3Q19(ID, f_even, f_odd, Nx, Ny, Nz);
|
||||
//*************************************************************************
|
||||
|
||||
//...................................................................................
|
||||
@@ -1592,8 +1578,8 @@ int main(int argc, char **argv)
|
||||
MPI_Irecv(recvbuf_z, 2*recvCount_z,MPI_DOUBLE,rank_z,recvtag,MPI_COMM_WORLD,&req2[5]);
|
||||
//...................................................................................
|
||||
|
||||
dvc_SwapD3Q7(ID, A_even, A_odd, Nx, Ny, Nz, S);
|
||||
dvc_SwapD3Q7(ID, B_even, B_odd, Nx, Ny, Nz, S);
|
||||
dvc_SwapD3Q7(ID, A_even, A_odd, Nx, Ny, Nz);
|
||||
dvc_SwapD3Q7(ID, B_even, B_odd, Nx, Ny, Nz);
|
||||
|
||||
//...................................................................................
|
||||
// Wait for completion of D3Q19 communication
|
||||
@@ -1627,14 +1613,14 @@ int main(int argc, char **argv)
|
||||
//..................................................................................
|
||||
|
||||
//..................................................................................
|
||||
dvc_ComputeDensityD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz, S);
|
||||
dvc_ComputeDensityD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz, S);
|
||||
dvc_ComputeDensityD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
|
||||
dvc_ComputeDensityD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
|
||||
|
||||
//*************************************************************************
|
||||
// Compute the phase indicator field
|
||||
//*************************************************************************
|
||||
// dvc_ComputePhi(ID, Phi, Copy, Den, N, S);
|
||||
dvc_ComputePhi(ID, Phi, Den, N, S);
|
||||
// dvc_ComputePhi(ID, Phi, Copy, Den, N);
|
||||
dvc_ComputePhi(ID, Phi, Den, N);
|
||||
//*************************************************************************
|
||||
|
||||
//...................................................................................
|
||||
@@ -1733,13 +1719,13 @@ int main(int argc, char **argv)
|
||||
|
||||
|
||||
if (pBC && kproc == 0) {
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz,S);
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz);
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz);
|
||||
}
|
||||
|
||||
if (pBC && kproc == nprocz-1){
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,S,Nx*Ny*(Nz-2));
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,Nx*Ny*(Nz-2));
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz);
|
||||
}
|
||||
|
||||
//...................................................................................
|
||||
@@ -1763,7 +1749,7 @@ int main(int argc, char **argv)
|
||||
// Copy the phase from the GPU -> CPU
|
||||
//...........................................................................
|
||||
dvc_Barrier();
|
||||
dvc_ComputePressureD3Q19(ID,f_even,f_odd,Pressure,Nx,Ny,Nz,S);
|
||||
dvc_ComputePressureD3Q19(ID,f_even,f_odd,Pressure,Nx,Ny,Nz);
|
||||
dvc_CopyToHost(Phase.data,Phi,N*sizeof(double));
|
||||
dvc_CopyToHost(Press.data,Pressure,N*sizeof(double));
|
||||
dvc_CopyToHost(Vel_x.data,&Velocity[0],N*sizeof(double));
|
||||
@@ -2238,7 +2224,7 @@ int main(int argc, char **argv)
|
||||
// fwrite(MeanCurvature.data,8,N,PHASE);
|
||||
fclose(PHASE);
|
||||
//#endif
|
||||
dvc_ComputePressureD3Q19(ID,f_even,f_odd,Pressure,Nx,Ny,Nz,S);
|
||||
dvc_ComputePressureD3Q19(ID,f_even,f_odd,Pressure,Nx,Ny,Nz);
|
||||
dvc_CopyToHost(Press.data,Pressure,N*sizeof(double));
|
||||
sprintf(LocalRankFilename,"%s%s","Pressure.",LocalRankString);
|
||||
FILE *PRESS;
|
||||
|
||||
Reference in New Issue
Block a user