Refactored cpu/Colo.cpp for MassD3Q7

This commit is contained in:
James E McClure committed 2015-07-04 08:50:25 -04:00
1 parent 2bbe6c965d
commit 162a8920c8
1 file changed
+22 -38
+22 -38
View File
@@ -1109,7 +1109,7 @@ extern "C" void MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, do
// int sendLoc;
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;
@@ -1156,6 +1156,7 @@ extern "C" void MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, do
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
@@ -1173,17 +1174,13 @@ extern "C" void MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, do
//...............................................
// q = 0,2,4
// Cq = {1,0,0}, {0,1,0}, {0,0,1}
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;
}
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;
@@ -1191,17 +1188,13 @@ extern "C" void MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, do
//...............................................
// 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;
}
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;
@@ -1209,21 +1202,12 @@ extern "C" void MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, do
//...............................................
// 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;
}
A_odd[2*N+n] = a1;
A_even[3*N+n] = a2;
B_odd[2*N+n] = b1;
B_even[3*N+n] = b2;
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);
//...............................................
/* // Construction and streaming for the components