Debugging TestMassConservationD3Q7

This commit is contained in:
James E McClure 2015-06-25 09:52:10 -04:00
parent 357133fe29
commit 5cd69cf9c5

View File

@ -57,23 +57,38 @@ int main(int argc, char **argv)
N = Nx*Ny*Nz;
int dist_mem_size = N*sizeof(double);
double *DenOriginal, *DenFinal;
DenOriginal = new double [2*N];
DenFinal = new double [2*N];
double *Vel;
Vel = new double [3*N];
char *id;
id = new char [N];
for (k=0;k<Nz;k++){
for (j=0;j<Ny;j++){
for (i=0;i<Nx;i++){
n = k*Nx*Ny+j*Nx+i;
if (k<10) id[n] = 0;
else if (k>80) id[n] = 0;
else if (i<50) id[n]=1;
else id[n]=2;
else if (i<50){
id[n]=1;
Vel[n]=0.1;
Vel[N+n]=0.1;
Vel[2*N+n]=0.1;
}
else {
id[n]=2;
Vel[n]=0.1;
Vel[N+n]=0.1;
Vel[2*N+n]=0.1;
}
}
}
}
double *DenOriginal, *DenFinal;
DenOriginal = new double [2*N];
DenFinal = new double [2*N];
//......................device distributions.................................
double *A_even,*A_odd,*B_even,*B_odd;
@ -83,20 +98,20 @@ int main(int argc, char **argv)
AllocateDeviceMemory((void **) &B_even, 4*dist_mem_size); // Allocate device memory
AllocateDeviceMemory((void **) &B_odd, 3*dist_mem_size); // Allocate device memory
//...........................................................................
double *Phi,*Den, *DenUpdated;
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);
AllocateDeviceMemory((void **) &DenUpdated, 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
// Copy to the device
CopyToDevice(ID, id, N);
CopyToDevice(Velocity, Vel, 3*N*sizeof(double));
//...........................................................................
InitDenColor(ID, Den, Phi, das, dbs, Nx, Ny, Nz);
@ -114,15 +129,15 @@ int main(int argc, char **argv)
//*************************************************************************
//..................................................................................
ComputeDensityD3Q7(ID, A_even, A_odd, &DenUpdated[0], Nx, Ny, Nz);
ComputeDensityD3Q7(ID, B_even, B_odd, &DenUpdated[N], Nx, Ny, Nz);
ComputeDensityD3Q7(ID, A_even, A_odd, &Den[0], Nx, Ny, Nz);
ComputeDensityD3Q7(ID, B_even, B_odd, &Den[N], Nx, Ny, Nz);
//..................................................................................
// Compare and make sure mass is conserved at every lattice site
bool CleanCheck = true;
double original,final;
CopyToHost(DenFinal,DenUpdated,2*N*sizeof(double));
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++){