replacing ScaLBL functions in tests/*cpp

This commit is contained in:
James E McClure
2016-11-23 16:16:48 -05:00
parent 6ca3eb2079
commit b7a5ea342f
11 changed files with 1442 additions and 1329 deletions

View File

@@ -90,56 +90,56 @@ int main(int argc, char **argv)
//......................device distributions.................................
double *A_even,*A_odd,*B_even,*B_odd;
//...........................................................................
AllocateDeviceMemory((void **) &A_even, 4*dist_mem_size); // Allocate device memory
AllocateDeviceMemory((void **) &A_odd, 3*dist_mem_size); // Allocate device memory
AllocateDeviceMemory((void **) &B_even, 4*dist_mem_size); // Allocate device memory
AllocateDeviceMemory((void **) &B_odd, 3*dist_mem_size); // Allocate device memory
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &A_even, 4*dist_mem_size); // Allocate device memory
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &A_odd, 3*dist_mem_size); // Allocate device memory
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &B_even, 4*dist_mem_size); // Allocate device memory
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &B_odd, 3*dist_mem_size); // Allocate device memory
//...........................................................................
double *Phi,*Den;
double *ColorGrad, *Velocity;
//...........................................................................
AllocateDeviceMemory((void **) &Phi, dist_mem_size);
AllocateDeviceMemory((void **) &Velocity, 3*dist_mem_size);
AllocateDeviceMemory((void **) &ColorGrad, 3*dist_mem_size);
AllocateDeviceMemory((void **) &Den, 2*dist_mem_size);
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &Phi, dist_mem_size);
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &Velocity, 3*dist_mem_size);
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &ColorGrad, 3*dist_mem_size);
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &Den, 2*dist_mem_size);
//...........device phase ID.................................................
if (rank==0) printf ("Copying phase ID to device \n");
char *ID;
AllocateDeviceMemory((void **) &ID, N); // Allocate device memory
ScaLBL_ScaLBL_AllocateDeviceMemory((void **) &ID, N); // Allocate device memory
// Copy to the device
CopyToDevice(ID, id, N);
CopyToDevice(Velocity, Vel, 3*N*sizeof(double));
ScaLBL_CopyToDevice(ID, id, N);
ScaLBL_CopyToDevice(Velocity, Vel, 3*N*sizeof(double));
//...........................................................................
InitDenColor(ID, Den, Phi, das, dbs, Nx, Ny, Nz);
CopyToHost(DenOriginal,Den,2*N*sizeof(double));
ScaLBL_Color_Init(ID, Den, Phi, das, dbs, Nx, Ny, Nz);
ScaLBL_CopyToHost(DenOriginal,Den,2*N*sizeof(double));
//......................................................................
InitD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
InitD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
ComputePhi(ID, Phi, Den, N);
ComputeColorGradient(ID,Phi,ColorGrad,Nx,Ny,Nz);
ScaLBL_D3Q7_Init(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
ScaLBL_D3Q7_Init(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
ScaLBL_ComputePhaseField(ID, Phi, Den, N);
ScaLBL_D3Q19_ColorGradient(ID,Phi,ColorGrad,Nx,Ny,Nz);
//..................................................................................
//*************************************************************************
// Carry out the density streaming step for mass transport
//*************************************************************************
MassColorCollideD3Q7(ID, A_even, A_odd, B_even, B_odd, Den, Phi,
ScaLBL_D3Q7_ColorCollideMass(ID, A_even, A_odd, B_even, B_odd, Den, Phi,
ColorGrad, Velocity, beta, N, pBC);
//*************************************************************************
//..................................................................................
ComputeDensityD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
ComputeDensityD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
ScaLBL_D3Q7_Density(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
ScaLBL_D3Q7_Density(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
//..................................................................................
ComputePhi(ID, Phi, Den, N);
ComputeColorGradient(ID,Phi,ColorGrad,Nx,Ny,Nz);
ScaLBL_ComputePhaseField(ID, Phi, Den, N);
ScaLBL_D3Q19_ColorGradient(ID,Phi,ColorGrad,Nx,Ny,Nz);
//..................................................................................
// Compare and make sure mass is conserved at every lattice site
bool CleanCheck = true;
double original,final;
CopyToHost(DenFinal,Den,2*N*sizeof(double));
ScaLBL_CopyToHost(DenFinal,Den,2*N*sizeof(double));
for (k=0;k<Nz;k++){
for (j=0;j<Ny;j++){
for (i=0;i<Nx;i++){
@@ -172,10 +172,10 @@ int main(int argc, char **argv)
Aodd = new double[3*N];
Beven = new double[4*N];
Bodd = new double[3*N];
CopyToHost(Aeven,A_even,4*dist_mem_size);
CopyToHost(Aodd,A_odd,3*dist_mem_size);
CopyToHost(Beven,B_even,4*dist_mem_size);
CopyToHost(Bodd,B_odd,3*dist_mem_size);
ScaLBL_CopyToHost(Aeven,A_even,4*dist_mem_size);
ScaLBL_CopyToHost(Aodd,A_odd,3*dist_mem_size);
ScaLBL_CopyToHost(Beven,B_even,4*dist_mem_size);
ScaLBL_CopyToHost(Bodd,B_odd,3*dist_mem_size);
double rho,ux,uy,uz;
for (k=0;k<Nz;k++){
for (j=0;j<Ny;j++){