Finished refactoring MassColorCollideD3Q7
This commit is contained in:
parent
252fdecdc1
commit
d6cf96f24c
@ -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
|
||||
|
90
gpu/Color.cu
90
gpu/Color.cu
@ -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;
|
||||
//...............................................
|
||||
//........................................................................
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user