update greyscale diffusion contribution

This commit is contained in:
James McClure 2021-10-11 21:55:57 -04:00
parent 2032e7af95
commit ea7cb97bb7
2 changed files with 21 additions and 19 deletions

View File

@ -1378,7 +1378,7 @@ extern "C" void ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int *Map
/* Corey model parameters */ /* Corey model parameters */
double Kn_grey,Kw_grey; double Kn_grey,Kw_grey;
double Swn,Krn_grey,Krw_grey,mobility_ratio,jA,jB; double Swn,Krn_grey,Krw_grey,mobility_ratio,jA,jB;
double GreyDiff; // grey diffusion double GreyDiff=0.0e-4; // grey diffusion
const double mrt_V1=0.05263157894736842; const double mrt_V1=0.05263157894736842;
const double mrt_V2=0.012531328320802; const double mrt_V2=0.012531328320802;
@ -1399,7 +1399,7 @@ extern "C" void ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int *Map
nB = Den[Np + n]; nB = Den[Np + n];
porosity = Poros[n]; porosity = Poros[n];
GreyDiff = Perm[n]; //GreyDiff = Perm[n];
perm = 1.0; perm = 1.0;
W = GreySolidW[n]; W = GreySolidW[n];
Sn_grey = GreySn[n]; Sn_grey = GreySn[n];
@ -2104,7 +2104,7 @@ extern "C" void ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int *Map
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx;
jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2134,7 +2134,7 @@ extern "C" void ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int *Map
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny;
jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2165,7 +2165,7 @@ extern "C" void ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int *Map
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz;
jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2218,7 +2218,7 @@ extern "C" void ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dist, do
/* Corey model parameters */ /* Corey model parameters */
double Kn_grey,Kw_grey; double Kn_grey,Kw_grey;
double Swn,Krn_grey,Krw_grey,mobility_ratio,jA,jB; double Swn,Krn_grey,Krw_grey,mobility_ratio,jA,jB;
double GreyDiff; // grey diffusion double GreyDiff=0.0e-4; // grey diffusion
//double GeoFun=0.0;//geometric function from Guo's PRE 66, 036304 (2002) //double GeoFun=0.0;//geometric function from Guo's PRE 66, 036304 (2002)
double porosity; double porosity;
@ -2248,7 +2248,7 @@ extern "C" void ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dist, do
nB = Den[Np + n]; nB = Den[Np + n];
porosity = Poros[n]; porosity = Poros[n];
GreyDiff = Perm[n]; //GreyDiff = Perm[n];
perm = 1.0; perm = 1.0;
W = GreySolidW[n]; W = GreySolidW[n];
Sn_grey = GreySn[n]; Sn_grey = GreySn[n];
@ -2887,7 +2887,7 @@ extern "C" void ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dist, do
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx;
jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2913,7 +2913,7 @@ extern "C" void ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dist, do
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny;
jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2940,7 +2940,7 @@ extern "C" void ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dist, do
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz;
jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio);
} }

View File

@ -1480,6 +1480,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int
double Fcpx,Fcpy,Fcpz;//capillary penalty force double Fcpx,Fcpy,Fcpz;//capillary penalty force
double W;//greyscale wetting strength double W;//greyscale wetting strength
double Sn_grey,Sw_grey; double Sn_grey,Sw_grey;
double GreyDiff=0.0e-4;
/* Corey model parameters */ /* Corey model parameters */
double Kn_grey,Kw_grey; double Kn_grey,Kw_grey;
@ -1508,7 +1509,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int
nB = Den[Np + n]; nB = Den[Np + n];
porosity = Poros[n]; porosity = Poros[n];
GreyDiff = Perm[n]; //GreyDiff = Perm[n];
perm = 1.0; perm = 1.0;
W = GreySolidW[n]; W = GreySolidW[n];
Sn_grey = GreySn[n]; Sn_grey = GreySn[n];
@ -2156,7 +2157,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx;
jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2186,7 +2187,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny;
jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2217,7 +2218,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAodd_GreyscaleColor_CP(int *neighborList, int
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz;
jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2271,6 +2272,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dis
double Fcpx,Fcpy,Fcpz;//capillary penalty force double Fcpx,Fcpy,Fcpz;//capillary penalty force
double W;//greyscale wetting strength double W;//greyscale wetting strength
double Sn_grey,Sw_grey; double Sn_grey,Sw_grey;
double GreyDiff=0.0e-4;
/* Corey model parameters */ /* Corey model parameters */
double Kn_grey,Kw_grey; double Kn_grey,Kw_grey;
@ -2299,7 +2301,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dis
nB = Den[Np + n]; nB = Den[Np + n];
porosity = Poros[n]; porosity = Poros[n];
GreyDiff = Perm[n]; //GreyDiff = Perm[n];
perm = 1.0; perm = 1.0;
W = GreySolidW[n]; W = GreySolidW[n];
Sn_grey = GreySn[n]; Sn_grey = GreySn[n];
@ -2881,7 +2883,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dis
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nx;
jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*ux*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*ux*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2907,7 +2909,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dis
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*ny;
jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uy*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uy*(nA+nB)*(1.0-mobility_ratio);
} }
@ -2934,7 +2936,7 @@ __global__ void dvc_ScaLBL_D3Q19_AAeven_GreyscaleColor_CP(int *Map, double *dis
//----------------newly added for better control of recoloring---------------// //----------------newly added for better control of recoloring---------------//
if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){ if (nA/(nA+nB)>=Sn_grey && nA/(nA+nB) <= Sw_grey && porosity !=1.0){
//delta = 0.0; //delta = 0.0;
delta = 0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz; delta = -0.111111111111111*C*W*GreyDiff*nA*nB*nAB*nz;
jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio); jA = 0.5*uz*(nA+nB)*(1.0+mobility_ratio);
jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio); jB = 0.5*uz*(nA+nB)*(1.0-mobility_ratio);
} }