Finished refactoring MassColorCollideD3Q7

This commit is contained in:
James E McClure 2015-07-04 09:55:50 -04:00
parent 252fdecdc1
commit d6cf96f24c
2 changed files with 38 additions and 57 deletions

View File

@ -1208,6 +1208,11 @@ extern "C" void MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, do
b1 = nb*(0.1111111111111111*(1+4.5*uz))-delta;
a2 = na*(0.1111111111111111*(1-4.5*uz))-delta;
b2 = nb*(0.1111111111111111*(1-4.5*uz)+delta);
A_odd[2*N+n] = a1;
A_even[3*N+n] = a2;
B_odd[2*N+n] = b1;
B_even[3*N+n] = b2;
//...............................................
/* // Construction and streaming for the components

View File

@ -1094,7 +1094,7 @@ __global__ void dvc_MassColorCollideD3Q7(char *ID, double *A_even, double *A_od
{
int n;
double f0,f1,f2,f3,f4,f5,f6;
double na,nb; // density values
double na,nb,nab; // density values
double ux,uy,uz; // flow velocity
double nx,ny,nz,C; // color gradient components
double a1,a2,b1,b2;
@ -1144,75 +1144,51 @@ __global__ void dvc_MassColorCollideD3Q7(char *ID, double *A_even, double *A_od
f3 = B_even[2*N+n];
f5 = B_even[3*N+n];
nb = f0+f1+f2+f3+f4+f5+f6;
nab = 1.0/(na+nb);
//........................................................................
//....Instantiate the density distributions
// Generate Equilibrium Distributions and stream
// Stationary value - distribution 0
A_even[n] = 0.3333333333333333*na;
B_even[n] = 0.3333333333333333*nb;
// Non-Stationary equilibrium distributions
//feq[0] = 0.1111111111111111*(1+4.5*ux);
//feq[1] = 0.1111111111111111*(1-4.5*ux);
//feq[2] = 0.1111111111111111*(1+4.5*uy);
//feq[3] = 0.1111111111111111*(1-4.5*uy);
//feq[4] = 0.1111111111111111*(1+4.5*uz);
//feq[5] = 0.1111111111111111*(1-4.5*uz);
//...............................................
// q = 0
// Cq = {1,0,0}
a1 = na*(0.1111111111111111*(1+4.5*ux));
b1 = nb*(0.1111111111111111*(1+4.5*ux));
a2 = na*(0.1111111111111111*(1-4.5*ux));
b2 = nb*(0.1111111111111111*(1-4.5*ux));
if (na*nb > 0.0){
delta = na*nb/(na+nb)*0.1111111111111111*nx;
a1 += beta*delta;
a2 -= beta*delta;
b1 -= beta*delta;
b2 += beta*delta;
}
A_odd[n] = a1;
delta = beta*na*nb*nab*0.1111111111111111*nx;
if (!(na*nb*nab>0)) delta=0;
a1 = na*(0.1111111111111111*(1+4.5*ux))+delta;
b1 = nb*(0.1111111111111111*(1+4.5*ux))-delta;
a2 = na*(0.1111111111111111*(1-4.5*ux))-delta;
b2 = nb*(0.1111111111111111*(1-4.5*ux))+delta;
A_odd[n] = a1;
A_even[N+n] = a2;
B_odd[n] = b1;
B_odd[n] = b1;
B_even[N+n] = b2;
//...............................................
//........................................................................
// q = 2
// Cq = {0,1,0}
a1 = na*(0.1111111111111111*(1+4.5*uy));
b1 = nb*(0.1111111111111111*(1+4.5*uy));
a2 = na*(0.1111111111111111*(1-4.5*uy));
b2 = nb*(0.1111111111111111*(1-4.5*uy));
if (na*nb > 0.0){
delta = na*nb/(na+nb)*0.1111111111111111*ny;
a1 += beta*delta;
a2 -= beta*delta;
b1 -= beta*delta;
b2 += beta*delta;
}
A_odd[N+n] = a1;
delta = beta*na*nb*nab*0.1111111111111111*ny;
if (!(na*nb*nab>0)) delta=0;
a1 = na*(0.1111111111111111*(1+4.5*uy))+delta;
b1 = nb*(0.1111111111111111*(1+4.5*uy))-delta;
a2 = na*(0.1111111111111111*(1-4.5*uy))-delta;
b2 = nb*(0.1111111111111111*(1-4.5*uy))+delta;
A_odd[N+n] = a1;
A_even[2*N+n] = a2;
B_odd[N+n] = b1;
B_odd[N+n] = b1;
B_even[2*N+n] = b2;
//...............................................
//........................................................................
// q = 4
// Cq = {0,0,1}
a1 = na*(0.1111111111111111*(1+4.5*uz));
b1 = nb*(0.1111111111111111*(1+4.5*uz));
a2 = na*(0.1111111111111111*(1-4.5*uz));
b2 = nb*(0.1111111111111111*(1-4.5*uz));
if (na*nb > 0.0){
delta = na*nb/(na+nb)*0.1111111111111111*nz;
a1 += beta*delta;
a2 -= beta*delta;
b1 -= beta*delta;
b2 += beta*delta;
}
delta = beta*na*nb*nab*0.1111111111111111*nz;
if (!(na*nb*nab>0)) delta=0;
a1 = na*(0.1111111111111111*(1+4.5*uz))+delta;
b1 = nb*(0.1111111111111111*(1+4.5*uz))-delta;
a2 = na*(0.1111111111111111*(1-4.5*uz))-delta;
b2 = nb*(0.1111111111111111*(1-4.5*uz)+delta);
A_odd[2*N+n] = a1;
A_even[3*N+n] = a2;
B_odd[2*N+n] = b1;
B_even[3*N+n] = b2;
//...............................................
//........................................................................
}
}
}