Refactored cpu/Colo.cpp for MassD3Q7
This commit is contained in:
1 parent
2bbe6c965d
commit
162a8920c8
1 file changed
+22
-38
+22
-38
@@ -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
|
||||
|
||||
Reference in new issue
Block a user