Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
VirtualFluids
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
iRMB
VirtualFluids
Commits
d62cb39e
Commit
d62cb39e
authored
4 years ago
by
kutscher
Browse files
Options
Downloads
Patches
Plain Diff
clean multiphase kernal
parent
ef020a02
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!25
remove warnings in multiphase classes
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp
+14
-466
14 additions, 466 deletions
...cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp
with
14 additions
and
466 deletions
src/cpu/VirtualFluidsCore/LBM/MultiphaseCumulantLBMKernel.cpp
+
14
−
466
View file @
d62cb39e
...
...
@@ -85,49 +85,18 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
using
namespace
D3Q27System
;
using
namespace
UbMath
;
// initializing of forcing stuff
/*if (withForcing)
{
muForcingX1.DefineVar("x1",&muX1); muForcingX1.DefineVar("x2",&muX2); muForcingX1.DefineVar("x3",&muX3);
muForcingX2.DefineVar("x1",&muX1); muForcingX2.DefineVar("x2",&muX2); muForcingX2.DefineVar("x3",&muX3);
muForcingX3.DefineVar("x1",&muX1); muForcingX3.DefineVar("x2",&muX2); muForcingX3.DefineVar("x3",&muX3);
muDeltaT = deltaT;
muForcingX1.DefineVar("dt",&muDeltaT);
muForcingX2.DefineVar("dt",&muDeltaT);
muForcingX3.DefineVar("dt",&muDeltaT);
muNu = (1.0/3.0)*(1.0/collFactor - 1.0/2.0);
muForcingX1.DefineVar("nu",&muNu);
muForcingX2.DefineVar("nu",&muNu);
muForcingX3.DefineVar("nu",&muNu);
LBMReal forcingX1 = 0;
LBMReal forcingX2 = 0;
LBMReal forcingX3 = 0;
}*/
forcingX1
=
0.0
;
forcingX2
=
0.0
;
forcingX3
=
0.0
;
/////////////////////////////////////
localDistributionsF
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getFdistributions
())
->
getLocalDistributions
();
nonLocalDistributionsF
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getFdistributions
())
->
getNonLocalDistributions
();
zeroDistributionsF
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getFdistributions
())
->
getZeroDistributions
();
localDistributionsH
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getHdistributions
())
->
getLocalDistributions
();
nonLocalDistributionsH
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getHdistributions
())
->
getNonLocalDistributions
();
zeroDistributionsH
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getHdistributions
())
->
getZeroDistributions
();
localDistributionsF
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getFdistributions
())
->
getLocalDistributions
();
nonLocalDistributionsF
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getFdistributions
())
->
getNonLocalDistributions
();
zeroDistributionsF
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getFdistributions
())
->
getZeroDistributions
();
// phaseField = dataSet->getPhaseField();
localDistributionsH
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getHdistributions
())
->
getLocalDistributions
();
nonLocalDistributionsH
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getHdistributions
())
->
getNonLocalDistributions
();
zeroDistributionsH
=
dynamicPointerCast
<
D3Q27EsoTwist3DSplittedVector
>
(
dataSet
->
getHdistributions
())
->
getZeroDistributions
();
SPtr
<
BCArray3D
>
bcArray
=
this
->
getBCProcessor
()
->
getBCArray
();
...
...
@@ -142,19 +111,11 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
int
maxX2
=
bcArrayMaxX2
-
ghostLayerWidth
;
int
maxX3
=
bcArrayMaxX3
-
ghostLayerWidth
;
//#pragma omp parallel num_threads(8)
{
// int i = omp_get_thread_num();
// printf_s("Hello from thread %d\n", i);
//}
//#pragma omp for
CbArray3D
<
LBMReal
,
IndexerX3X2X1
>::
CbArray3DPtr
phaseField
(
new
CbArray3D
<
LBMReal
,
IndexerX3X2X1
>
(
bcArrayMaxX1
,
bcArrayMaxX2
,
bcArrayMaxX3
,
-
999.0
));
CbArray3D
<
LBMReal
,
IndexerX3X2X1
>::
CbArray3DPtr
divU
(
new
CbArray3D
<
LBMReal
,
IndexerX3X2X1
>
(
bcArrayMaxX1
,
bcArrayMaxX2
,
bcArrayMaxX3
,
0.0
));
// CbArray3D<LBMReal> phaseField(bcArrayMaxX1, bcArrayMaxX2, bcArrayMaxX3,-999);
for
(
int
x3
=
0
;
x3
<=
maxX3
;
x3
++
)
{
for
(
int
x2
=
0
;
x2
<=
maxX2
;
x2
++
)
{
...
...
@@ -192,10 +153,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
LBMReal
mfcca
=
(
*
this
->
nonLocalDistributionsH
)(
D3Q27System
::
ET_BNE
,
x1
,
x2
,
x3p
);
LBMReal
mfbbb
=
(
*
this
->
zeroDistributionsH
)(
x1
,
x2
,
x3
);
// LBMReal phase = h[REST] + h[E] + h[W] + h[N] + h[S] + h[T] + h[B] + h[NE] + h[SW] + h[SE] +
// h[NW] + h[TE] + h[BW] + h[BE] + h[TW] + h[TN] + h[BS] + h[BN] + h[TS] + h[TNE] + h[TNW] +
//h[TSE] + h[TSW] + h[BNE] + h[BNW] + h[BSE] + h[BSW]; if (phase > 1.0) phase = 1.0e0;
//(*phaseField)(x1,x2,x3) = phase;
(
*
phaseField
)(
x1
,
x2
,
x3
)
=
(
mfaaa
+
mfaac
+
mfaca
+
mfcaa
+
mfacc
+
mfcac
+
mfccc
+
mfcca
)
+
(
mfaab
+
mfacb
+
mfcab
+
mfccb
)
+
(
mfaba
+
mfabc
+
mfcba
+
mfcbc
)
+
(
mfbaa
+
mfbac
+
mfbca
+
mfbcc
)
+
(
mfabb
+
mfcbb
)
+
...
...
@@ -207,31 +164,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
LBMReal
collFactorM
;
LBMReal
forcingTerm
[
D3Q27System
::
ENDF
+
1
];
// LBMReal m000, m100, m010, m001, m110, m101, m011, m200, m020, m002, m120, m102, m210, m012, m201, m021, m111,
// m220, m202, m022, m211, m121, m112, m221, m212, m122, m222; LBMReal k000, k100, k010, k001, k110, k101, k011,
// k200, k020, k002, k120, k102, k210, k012, k201, k021, k111, k220, k202, k022, k211, k121, k112, k221, k212,
// k122, k222; LBMReal c000, c100, c010, c001, c110, c101, c011, c200, c020, c002, c120, c102, c210, c012, c201,
// c021, c111, c220, c202, c022, c211, c121, c112, c221, c212, c122, c222;
// LBMReal k200_pl_k020_pl_k002, k200_mi_k020, k200_mi_k002, k210_pl_k012, k210_mi_k012, k201_pl_k021,
// k201_mi_k021, k120_pl_k102, k120_mi_k102, k220_pl_k202_pl_k022,
// k220_mi2_k202_pl_k022, k220_pl_k202_mi2_k022;
// LBMReal c200_pl_c020_pl_c002, c200_mi_c020, c200_mi_c002, c210_pl_c012, c210_mi_c012, c201_pl_c021,
// c201_mi_c021, c120_pl_c102, c120_mi_c102, c220_pl_c202_pl_c022,
// c220_mi2_c202_pl_c022, c220_pl_c202_mi2_c022;
LBMReal
w1
,
w2
,
w3
,
w4
,
w5
,
w6
,
w7
,
w8
,
w9
,
w10
;
w2
=
1.0
;
w3
=
1.0
;
w4
=
1.0
;
w5
=
1.0
;
w6
=
1.0
;
w7
=
1.0
;
w8
=
1.0
;
w9
=
1.0
;
w10
=
1.0
;
for
(
int
x3
=
minX3
;
x3
<
maxX3
;
x3
++
)
{
for
(
int
x2
=
minX2
;
x2
<
maxX2
;
x2
++
)
{
...
...
@@ -262,35 +194,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
// a b c
//-1 0 1
/*
phi[REST] = (phaseField)(x1,x2,x3);
phi[E ] = (phaseField)(x1 + DX1[E ], x2 + DX2[E ], x3 + DX3[E ]);
phi[N ] = (phaseField)(x1 + DX1[N ], x2 + DX2[N ], x3 + DX3[N ]);
phi[T ] = (phaseField)(x1 + DX1[T ], x2 + DX2[T ], x3 + DX3[T ]);
phi[W ] = (phaseField)(x1 + DX1[W ], x2 + DX2[W ], x3 + DX3[W ]);
phi[S ] = (phaseField)(x1 + DX1[S ], x2 + DX2[S ], x3 + DX3[S ]);
phi[B ] = (phaseField)(x1 + DX1[B ], x2 + DX2[B ], x3 + DX3[B ]);
phi[NE ] = (phaseField)(x1 + DX1[NE ], x2 + DX2[NE ], x3 + DX3[NE ]);
phi[NW ] = (phaseField)(x1 + DX1[NW ], x2 + DX2[NW ], x3 + DX3[NW ]);
phi[TE ] = (phaseField)(x1 + DX1[TE ], x2 + DX2[TE ], x3 + DX3[TE ]);
phi[TW ] = (phaseField)(x1 + DX1[TW ], x2 + DX2[TW ], x3 + DX3[TW ]);
phi[TN ] = (phaseField)(x1 + DX1[TN ], x2 + DX2[TN ], x3 + DX3[TN ]);
phi[TS ] = (phaseField)(x1 + DX1[TS ], x2 + DX2[TS ], x3 + DX3[TS ]);
phi[SW ] = (phaseField)(x1 + DX1[SW ], x2 + DX2[SW ], x3 + DX3[SW ]);
phi[SE ] = (phaseField)(x1 + DX1[SE ], x2 + DX2[SE ], x3 + DX3[SE ]);
phi[BW ] = (phaseField)(x1 + DX1[BW ], x2 + DX2[BW ], x3 + DX3[BW ]);
phi[BE ] = (phaseField)(x1 + DX1[BE ], x2 + DX2[BE ], x3 + DX3[BE ]);
phi[BS ] = (phaseField)(x1 + DX1[BS ], x2 + DX2[BS ], x3 + DX3[BS ]);
phi[BN ] = (phaseField)(x1 + DX1[BN ], x2 + DX2[BN ], x3 + DX3[BN ]);
phi[BSW] = (phaseField)(x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW]);
phi[BSE] = (phaseField)(x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE]);
phi[BNW] = (phaseField)(x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW]);
phi[BNE] = (phaseField)(x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE]);
phi[TNE] = (phaseField)(x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE]);
phi[TNW] = (phaseField)(x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW]);
phi[TSE] = (phaseField)(x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE]);
phi[TSW] = (phaseField)(x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW]);
*/
findNeighbors
(
phaseField
,
x1
,
x2
,
x3
);
LBMReal
mfcbb
=
(
*
this
->
localDistributionsF
)(
D3Q27System
::
ET_E
,
x1
,
x2
,
x3
);
...
...
@@ -325,62 +228,20 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
LBMReal
rhoH
=
1.0
;
LBMReal
rhoL
=
1.0
/
densityRatio
;
// LBMReal rhoToPhi = (1.0 - 1.0/densityRatio);
LBMReal
rhoToPhi
=
(
rhoH
-
rhoL
)
/
(
phiH
-
phiL
);
// collFactorM = phi[REST]*collFactorL + (1-phi[REST])*collFactorG;
// collFactorM = phi[REST]*collFactorG + (1-phi[REST])*collFactorL;
// LBMReal tauH = 1.0;
// LBMReal di = sqrt(8*kappa/beta);
LBMReal
dX1_phi
=
gradX1_phi
();
LBMReal
dX2_phi
=
gradX2_phi
();
LBMReal
dX3_phi
=
gradX3_phi
();
LBMReal
denom
=
sqrt
(
dX1_phi
*
dX1_phi
+
dX2_phi
*
dX2_phi
+
dX3_phi
*
dX3_phi
)
+
1e-9
;
// LBMReal normX1 = dX1_phi/denom;
// LBMReal normX2 = dX2_phi/denom;
// LBMReal normX3 = dX3_phi/denom;
collFactorM
=
collFactorL
+
(
collFactorL
-
collFactorG
)
*
(
phi
[
REST
]
-
phiH
)
/
(
phiH
-
phiL
);
/*if ((phi[REST] > 0.1)||(phi[REST] < 0.9))
{
collFactorM*=(1.0-denom);
}*/
w1
=
collFactorM
;
/*dX1_phi = -normX1*((phi[REST]>phiH || phi[REST]<phiL) ? 0.0 : 4*(phi[REST] - phiL)*(phi[REST]
- phiH)/di); dX2_phi = -normX2*((phi[REST]>phiH || phi[REST]<phiL) ? 0.0 : 4*(phi[REST] -
phiL)*(phi[REST] - phiH)/di); dX3_phi = -normX3*((phi[REST]>phiH || phi[REST]<phiL) ? 0.0 :
4*(phi[REST] - phiL)*(phi[REST] - phiH)/di);*/
// UbTupleDouble3 coords = grid->getNodeCoordinates(block, x1, x2, x3);
/*Block3D bl = this->block();
int wX1 = bl->getX1() + x1;
int wX2 = bl->getX2() + x2;
int wX3 = bl->getX3() + x3;*/
/*if (wX3 >= 30.0)
{
dX1_phi = 0.0;
dX2_phi = 0.0;
dX3_phi = 0.0;
}*/
LBMReal
mu
=
2
*
beta
*
phi
[
REST
]
*
(
phi
[
REST
]
-
1
)
*
(
2
*
phi
[
REST
]
-
1
)
-
kappa
*
nabla2_phi
();
// LBMReal rhoToPhi = (1.0/densityRatio - 1.0);
LBMReal
mu
=
2
*
beta
*
phi
[
REST
]
*
(
phi
[
REST
]
-
1
)
*
(
2
*
phi
[
REST
]
-
1
)
-
kappa
*
nabla2_phi
();
//----------- Calculating Macroscopic Values -------------
// LBMReal rho = phi[REST] + (1.0 - phi[REST])*1.0/densityRatio;
LBMReal
rho
=
rhoH
+
rhoToPhi
*
(
phi
[
REST
]
-
phiH
);
// LBMReal rho = phi[REST]*1.0/densityRatio + (1.0 - phi[REST]);
if
(
withForcing
)
{
// muX1 = static_cast<double>(x1-1+ix1*maxX1);
...
...
@@ -419,62 +280,19 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
(
rho
*
c1o3
)
+
(
mu
*
dX3_phi
+
forcingX3
)
/
(
2
*
rho
);
// LBMReal p1 = (mfaaa+mfaac+mfaca+mfcaa+mfacc+mfcac+mfccc+mfcca)
// +(mfaab+mfacb+mfcab+mfccb)+(mfaba+mfabc+mfcba+mfcbc)+(mfbaa+mfbac+mfbca+mfbcc)
// +(mfabb+mfcbb)+(mfbab+mfbcb)+(mfbba+mfbbc)+mfbbb +
//(ux*rhoToPhi*dX1_phi*c1o3 + uy*rhoToPhi*dX2_phi*c1o3 + uz*rhoToPhi*dX3_phi*c1o3)/2.0;
// vvx = 0.0; vvy = 0.0; vvz = 0.0;
//--------------------------------------------------------
LBMReal
ux2
=
ux
*
ux
;
LBMReal
uy2
=
uy
*
uy
;
LBMReal
uz2
=
uz
*
uz
;
// LBMReal ux_uy = ux*uy;
// LBMReal ux_uz = ux*uz;
// LBMReal uy_uz = uy*uz;
// LBMReal ux_uy_uz = ux*uy*uz;
/*
//----------- Calculating Forcing Terms -------------
LBMReal forcingTerm1 = (ux*mu*dX1_phi + uy*mu*dX2_phi + uz*mu*dX3_phi);
for (int dir = STARTF; dir < (ENDF+1); dir++)
{
if (dir != REST)
{
LBMReal dirGrad_phi = (phi[dir] - phi[INVDIR[dir]])/2.0;
forcingTerm[dir] = (c1o3*rhoToPhi*dirGrad_phi +
mu*dirGrad_phi)*(DX1[dir]*ux + DX2[dir]*uy + DX3[dir]*uz)*WEIGTH[dir]/c1o3 +
mu*dirGrad_phi*WEIGTH[dir] - (forcingTerm1)*WEIGTH[dir];
}
else
{
forcingTerm[REST] = -(forcingTerm1)*WEIGTH[REST];
}
}
//--------------------------------------------------------
*/
//----------- Calculating Forcing Terms * -------------
// LBMReal forcingTerm1 = (ux*mu*dX1_phi + uy*mu*dX2_phi + uz*mu*dX3_phi);
for
(
int
dir
=
STARTF
;
dir
<=
(
FENDDIR
);
dir
++
)
{
LBMReal
velProd
=
DX1
[
dir
]
*
ux
+
DX2
[
dir
]
*
uy
+
DX3
[
dir
]
*
uz
;
LBMReal
velSq1
=
velProd
*
velProd
;
LBMReal
gamma
=
WEIGTH
[
dir
]
*
(
1.0
+
3
*
velProd
+
4.5
*
velSq1
-
1.5
*
(
ux2
+
uy2
+
uz2
));
// forcingTerm[dir] = (DX1[dir] - ux)*((gamma - WEIGTH[dir])*c1o3*rhoToPhi*dX1_phi +
// gamma*mu*dX1_phi) +
// (DX2[dir] - uy)*((gamma - WEIGTH[dir])*c1o3*rhoToPhi*dX2_phi + gamma*mu*dX2_phi) +
// (DX3[dir] - uz)*((gamma - WEIGTH[dir])*c1o3*rhoToPhi*dX3_phi + gamma*mu*dX3_phi);
LBMReal
fac1
=
(
gamma
-
WEIGTH
[
dir
])
*
c1o3
*
rhoToPhi
;
// LBMReal dirGrad_phi = (phi[dir] - phi[INVDIR[dir]])/2.0;
// LBMReal dirGrad_phi = DX1[dir]*dX1_phi + DX2[dir]*dX2_phi + DX3[dir]*dX3_phi;
/*forcingTerm[dir] = (- (ux)*(fac1*dX1_phi + gamma*mu*dX1_phi) -
(uy)*(fac1*dX2_phi + gamma*mu*dX2_phi) -
(uz)*(fac1*dX3_phi + gamma*mu*dX3_phi)) + (fac1*dirGrad_phi + gamma*mu*dirGrad_phi +
DX1[dir]*forcingX1 + DX2[dir]*forcingX2 + DX3[dir]*forcingX3);*/
forcingTerm
[
dir
]
=
((
-
ux
)
*
(
fac1
*
dX1_phi
+
gamma
*
(
mu
*
dX1_phi
+
forcingX1
))
+
(
-
uy
)
*
(
fac1
*
dX2_phi
+
gamma
*
(
mu
*
dX2_phi
+
forcingX2
))
+
...
...
@@ -485,9 +303,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
}
LBMReal
gamma
=
WEIGTH
[
REST
]
*
(
1.0
-
1.5
*
(
ux2
+
uy2
+
uz2
));
/*forcingTerm[REST] = -(ux)*((gamma - WEIGTH[REST])*c1o3*rhoToPhi*dX1_phi + gamma*mu*dX1_phi) -
(uy)*((gamma - WEIGTH[REST])*c1o3*rhoToPhi*dX2_phi + gamma*mu*dX2_phi) -
(uz)*((gamma - WEIGTH[REST])*c1o3*rhoToPhi*dX3_phi + gamma*mu*dX3_phi);*/
LBMReal
fac1
=
(
gamma
-
WEIGTH
[
REST
])
*
c1o3
*
rhoToPhi
;
forcingTerm
[
REST
]
=
(
-
ux
)
*
(
fac1
*
dX1_phi
+
gamma
*
(
mu
*
dX1_phi
+
forcingX1
))
+
(
-
uy
)
*
(
fac1
*
dX2_phi
+
gamma
*
(
mu
*
dX2_phi
+
forcingX2
))
+
...
...
@@ -495,37 +310,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
//--------------------------------------------------------
/*
f1[E ] = (g[E ] + 0.5*forcingTerm[E ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[E ]/c1o3;
f1[N ] = (g[N ] + 0.5*forcingTerm[N ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[N ]/c1o3;
f1[T ] = (g[T ] + 0.5*forcingTerm[T ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[T ]/c1o3;
f1[NE ] = (g[NE ] + 0.5*forcingTerm[NE ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[NE
]/c1o3; f1[NW ] = (g[NW ] + 0.5*forcingTerm[NW ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[NW ]/c1o3;
f1[TE ] = (g[TE ] + 0.5*forcingTerm[TE ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[TE
]/c1o3; f1[TW ] = (g[TW ] + 0.5*forcingTerm[TW ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[TW ]/c1o3;
f1[TN ] = (g[TN ] + 0.5*forcingTerm[TN ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[TN
]/c1o3; f1[TS ] = (g[TS ] + 0.5*forcingTerm[TS ])/c1o3 - (p1 - rho*c1o3)*WEIGTH[TS ]/c1o3;
f1[TNE] = (g[TNE] + 0.5*forcingTerm[TNE])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[TNE]/c1o3; f1[TNW] = (g[TNW] + 0.5*forcingTerm[TNW])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[TNW]/c1o3; f1[TSE] = (g[TSE] + 0.5*forcingTerm[TSE])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[TSE]/c1o3; f1[TSW] = (g[TSW] + 0.5*forcingTerm[TSW])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[TSW]/c1o3; f1[W ] = (g[W ] + 0.5*forcingTerm[W ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[W ]/c1o3; f1[S ] = (g[S ] + 0.5*forcingTerm[S ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[S ]/c1o3; f1[B ] = (g[B ] + 0.5*forcingTerm[B ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[B ]/c1o3; f1[SW ] = (g[SW ] + 0.5*forcingTerm[SW ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[SW ]/c1o3; f1[SE ] = (g[SE ] + 0.5*forcingTerm[SE ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[SE ]/c1o3; f1[BW ] = (g[BW ] + 0.5*forcingTerm[BW ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BW ]/c1o3; f1[BE ] = (g[BE ] + 0.5*forcingTerm[BE ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BE ]/c1o3; f1[BS ] = (g[BS ] + 0.5*forcingTerm[BS ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BS ]/c1o3; f1[BN ] = (g[BN ] + 0.5*forcingTerm[BN ])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BN ]/c1o3; f1[BSW] = (g[BSW] + 0.5*forcingTerm[BSW])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BSW]/c1o3; f1[BSE] = (g[BSE] + 0.5*forcingTerm[BSE])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BSE]/c1o3; f1[BNW] = (g[BNW] + 0.5*forcingTerm[BNW])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BNW]/c1o3; f1[BNE] = (g[BNE] + 0.5*forcingTerm[BNE])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[BNE]/c1o3; f1[REST] = (g[REST] + 0.5*forcingTerm[REST])/c1o3 - (p1 -
rho*c1o3)*WEIGTH[REST]/c1o3;
*/
mfcbb
=
3.0
*
(
mfcbb
+
0.5
*
forcingTerm
[
E
])
/
rho
;
//-(3.0*p1 - rho)*WEIGTH[E ];
mfbcb
=
3.0
*
(
mfbcb
+
0.5
*
forcingTerm
[
N
])
/
rho
;
//-(3.0*p1 - rho)*WEIGTH[N ];
mfbbc
=
3.0
*
(
mfbbc
+
0.5
*
forcingTerm
[
T
])
/
rho
;
//-(3.0*p1 - rho)*WEIGTH[T ];
...
...
@@ -559,25 +343,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
(
mfbaa
+
mfbac
+
mfbca
+
mfbcc
)
+
(
mfabb
+
mfcbb
)
+
(
mfbab
+
mfbcb
)
+
(
mfbba
+
mfbbc
)
+
mfbbb
;
/*
//forcing
///////////////////////////////////////////////////////////////////////////////////////////
if (withForcing)
{
muX1 = static_cast<double>(x1-1+ix1*maxX1);
muX2 = static_cast<double>(x2-1+ix2*maxX2);
muX3 = static_cast<double>(x3-1+ix3*maxX3);
forcingX1 = muForcingX1.Eval();
forcingX2 = muForcingX2.Eval();
forcingX3 = muForcingX3.Eval();
vvx += forcingX1*deltaT*0.5; // X
vvy += forcingX2*deltaT*0.5; // Y
vvz += forcingX3*deltaT*0.5; // Z
}
///////////////////////////////////////////////////////////////////////////////////////////
*/
LBMReal
oMdrho
,
m0
,
m1
,
m2
;
...
...
@@ -849,11 +614,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
LBMReal
O6
=
1.
;
// Cum 4.
// LBMReal CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + 2. * mfbba * mfbab); //
// till 18.05.2015 LBMReal CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba *
// mfabb); // till 18.05.2015 LBMReal CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + 2. *
// mfbab * mfabb); // till 18.05.2015
LBMReal
CUMcbb
=
mfcbb
-
((
mfcaa
+
c1o3
)
*
mfabb
+
2.
*
mfbba
*
mfbab
);
LBMReal
CUMbcb
=
mfbcb
-
((
mfaca
+
c1o3
)
*
mfbab
+
2.
*
mfbba
*
mfabb
);
LBMReal
CUMbbc
=
mfbbc
-
((
mfaac
+
c1o3
)
*
mfbba
+
2.
*
mfbab
*
mfabb
);
...
...
@@ -865,12 +625,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
LBMReal
CUMacc
=
mfacc
-
((
mfaac
*
mfaca
+
2.
*
mfabb
*
mfabb
)
+
c1o3
*
(
mfaac
+
mfaca
)
*
oMdrho
+
c1o9
*
(
oMdrho
-
1
)
*
oMdrho
);
// LBMReal CUMcca = mfcca - ((mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) *
// oMdrho + c1o9*(-p1/c1o3)*oMdrho); LBMReal CUMcac = mfcac - ((mfcaa * mfaac + 2. * mfbab *
// mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(-p1/c1o3)*oMdrho); LBMReal CUMacc = mfacc -
// ((mfaac * mfaca + 2. * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho +
// c1o9*(-p1/c1o3)*oMdrho);
// Cum 5.
LBMReal
CUMbcc
=
mfbcc
-
(
mfaac
*
mfbca
+
mfaca
*
mfbac
+
4.
*
mfabb
*
mfbbb
+
...
...
@@ -911,14 +665,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
LBMReal
dyuy
=
dxux
+
collFactorM
*
c3o2
*
mxxMyy
;
LBMReal
dzuz
=
dxux
+
collFactorM
*
c3o2
*
mxxMzz
;
/*LBMReal Dxy =-three*collFactorM*mfbba;
LBMReal Dxz =-three*collFactorM*mfbab;
LBMReal Dyz =-three*collFactorM*mfabb;
LBMReal strainMag = sqrt(2*(dxux*dxux + dyuy*dyuy + dzuz*dzuz) + Dxy*Dxy + Dxz*Dxz + Dyz*Dyz);
LBMReal intVis = 3*abs(denom - 1e-9)*strainMag;
LBMReal fluidVis = (1.0/collFactorM - 0.5)/3.0;
collFactorM = 1.0/((fluidVis + intVis)*3.0 + 0.5);*/
(
*
divU
)(
x1
,
x2
,
x3
)
=
dxux
+
dyuy
+
dzuz
;
// relax
...
...
@@ -990,10 +736,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
// back cumulants to central moments
// 4.
// mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + 2. * mfbba * mfbab); // till 18.05.2015
// mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + 2. * mfbba * mfabb); // till 18.05.2015
// mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + 2. * mfbab * mfabb); // till 18.05.2015
mfcbb
=
CUMcbb
+
((
mfcaa
+
c1o3
)
*
mfabb
+
2.
*
mfbba
*
mfbab
);
mfbcb
=
CUMbcb
+
((
mfaca
+
c1o3
)
*
mfbab
+
2.
*
mfbba
*
mfabb
);
mfbbc
=
CUMbbc
+
((
mfaac
+
c1o3
)
*
mfbba
+
2.
*
mfbab
*
mfabb
);
...
...
@@ -1005,11 +747,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
mfacc
=
CUMacc
+
(
mfaac
*
mfaca
+
2.
*
mfabb
*
mfabb
)
+
c1o3
*
(
mfaac
+
mfaca
)
*
oMdrho
+
c1o9
*
(
oMdrho
-
1
)
*
oMdrho
;
// mfcca = CUMcca + (mfcaa * mfaca + 2. * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho +
// c1o9*(-p1/c1o3)*oMdrho; mfcac = CUMcac + (mfcaa * mfaac + 2. * mfbab * mfbab) + c1o3 * (mfcaa
// + mfaac) * oMdrho + c1o9*(-p1/c1o3)*oMdrho; mfacc = CUMacc + (mfaac * mfaca + 2. * mfabb *
// mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(-p1/c1o3)*oMdrho;
// 5.
mfbcc
=
CUMbcc
+
(
mfaac
*
mfbca
+
mfaca
*
mfbac
+
4.
*
mfabb
*
mfbbb
+
...
...
@@ -1266,10 +1003,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
(
mfbaa
+
mfbac
+
mfbca
+
mfbcc
)
+
(
mfabb
+
mfcbb
)
+
(
mfbab
+
mfbcb
)
+
(
mfbba
+
mfbbc
)
+
mfbbb
;
/*LBMReal rho_post = f1[REST] + f1[E] + f1[W] + f1[N] + f1[S] + f1[T] + f1[B] + f1[NE] + f1[SW]
+ f1[SE] + f1[NW] + f1[TE] + f1[BW] + f1[BE] + f1[TW] + f1[TN] + f1[BS] + f1[BN] + f1[TS] +
f1[TNE] + f1[TNW] + f1[TSE] + f1[TSW] + f1[BNE] + f1[BNW] + f1[BSE] + f1[BSW]; */
// LBMReal dif = fabs(rho - rho_post);
LBMReal
dif
=
rho1
-
rho_post
;
#ifdef SINGLEPRECISION
if
(
dif
>
10.0E-7
||
dif
<
-
10.0E-7
)
...
...
@@ -1282,9 +1015,6 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
UbSystem
::
toString
(
rho_post
)
+
" dif="
+
UbSystem
::
toString
(
dif
)
+
" rho is not correct for node "
+
UbSystem
::
toString
(
x1
)
+
","
+
UbSystem
::
toString
(
x2
)
+
","
+
UbSystem
::
toString
(
x3
)));
// UBLOG(logERROR,"LBMKernelETD3Q27CCLB::collideAll(): rho is not correct for node
// "+UbSystem::toString(x1)+","+UbSystem::toString(x2)+","+UbSystem::toString(x3));
// exit(EXIT_FAILURE);
}
#endif
...
...
@@ -1385,41 +1115,22 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
h
[
REST
]
=
(
*
this
->
zeroDistributionsH
)(
x1
,
x2
,
x3
);
// LBMReal denom = sqrt(dX1_phi*dX1_phi + dX2_phi*dX2_phi + dX3_phi*dX3_phi) + 1e-15;
// LBMReal di = sqrt(8*kappa/beta);
// LBMReal tauH1 = 3.0*mob + 0.5;
for
(
int
dir
=
STARTF
;
dir
<
(
ENDF
+
1
);
dir
++
)
{
LBMReal
velProd
=
DX1
[
dir
]
*
ux
+
DX2
[
dir
]
*
uy
+
DX3
[
dir
]
*
uz
;
LBMReal
velSq1
=
velProd
*
velProd
;
LBMReal
hEq
;
//, gEq;
if
(
dir
!=
REST
)
{
// LBMReal dirGrad_phi = DX1[dir]*dX1_phi+DX2[dir]*dX2_phi+DX3[dir]*dX3_phi;
LBMReal
dirGrad_phi
=
(
phi
[
dir
]
-
phi
[
INVDIR
[
dir
]])
/
2.0
;
LBMReal
hSource
=
(
tauH
-
0.5
)
*
(
1.0
-
phi
[
REST
])
*
(
phi
[
REST
])
*
(
dirGrad_phi
)
/
denom
;
// + phi[REST]*(dxux + dyuy + dzuz);
// LBMReal hSource =((phi[REST]>phiH || phi[REST]<phiL) ? 0.1 : 1.0)
// * 3.0*mob*(-4.0)/di*(phi[REST] - phiL)*(phi[REST] - phiH)*(dirGrad_phi)/denom; LBMReal
// hSource = 3.0*mob*(-4.0)/di*(phi[REST] - phiL)*(phi[REST] - phiH)*(dirGrad_phi)/denom;
hEq
=
phi
[
REST
]
*
WEIGTH
[
dir
]
*
(
1.0
+
3.0
*
velProd
+
4.5
*
velSq1
-
1.5
*
(
ux2
+
uy2
+
uz2
))
+
hSource
*
WEIGTH
[
dir
];
// gEq = rho*WEIGTH[dir]*(1 + 3*velProd + 4.5*velSq1 - 1.5*(vx2+vy2+vz2))*c1o3 +
// (p1-rho*c1o3)*WEIGTH[dir]; h[dir] = hEq; //h[dir] - (h[dir] - hEq)/(tauH + 0.5)); ///
LBMReal
hSource
=
(
tauH
-
0.5
)
*
(
1.0
-
phi
[
REST
])
*
(
phi
[
REST
])
*
(
dirGrad_phi
)
/
denom
;
hEq
=
phi
[
REST
]
*
WEIGTH
[
dir
]
*
(
1.0
+
3.0
*
velProd
+
4.5
*
velSq1
-
1.5
*
(
ux2
+
uy2
+
uz2
))
+
hSource
*
WEIGTH
[
dir
];
// This corresponds with the collision factor of 1.0 which equals (tauH + 0.5).
h
[
dir
]
=
h
[
dir
]
-
(
h
[
dir
]
-
hEq
)
/
(
tauH
);
// + WEIGTH[dir]*phi[REST]*(dxux + dyuy + dzuz);
// h[dir] = h[dir] - (h[dir] - hEq)/(tauH1);
// g[dir] = g[dir] - collFactorM*(g[dir]-gEq) + 0.5*forcingTerm[dir];
h
[
dir
]
=
h
[
dir
]
-
(
h
[
dir
]
-
hEq
)
/
(
tauH
);
}
else
{
hEq
=
phi
[
REST
]
*
WEIGTH
[
REST
]
*
(
1.0
-
1.5
*
(
ux2
+
uy2
+
uz2
));
// gEq = rho*WEIGTH[dir]*(1 + 3*velProd + 4.5*velSq1 - 1.5*(vx2+vy2+vz2))*c1o3 +
// (p1-rho*c1o3)*WEIGTH[dir]; h[dir] = hEq;
h
[
REST
]
=
h
[
REST
]
-
(
h
[
REST
]
-
hEq
)
/
(
tauH
);
// + WEIGTH[REST]*phi[REST]*(dxux + dyuy + dzuz);
// g[dir] = g[dir] - collFactorM*(g[dir]-gEq) + 0.5*forcingTerm[dir];
h
[
REST
]
=
h
[
REST
]
-
(
h
[
REST
]
-
hEq
)
/
(
tauH
);
}
}
...
...
@@ -1460,7 +1171,7 @@ void MultiphaseCumulantLBMKernel::calculate(int step)
}
dataSet
->
setPhaseField
(
divU
);
}
}
//////////////////////////////////////////////////////////////////////////
LBMReal
MultiphaseCumulantLBMKernel
::
gradX1_phi
()
...
...
@@ -1502,17 +1213,12 @@ LBMReal MultiphaseCumulantLBMKernel::nabla2_phi()
}
return
6.0
*
sum
;
}
///// Commnets neeeded ////////
void
MultiphaseCumulantLBMKernel
::
computePhasefield
()
{
using
namespace
D3Q27System
;
SPtr
<
DistributionArray3D
>
distributionsH
=
dataSet
->
getHdistributions
();
// const int bcArrayMaxX1 = (int)distributionsH->getNX1();
// const int bcArrayMaxX2 = (int)distributionsH->getNX2();
// const int bcArrayMaxX3 = (int)distributionsH->getNX3();
int
minX1
=
ghostLayerWidth
;
int
minX2
=
ghostLayerWidth
;
int
minX3
=
ghostLayerWidth
;
...
...
@@ -1559,61 +1265,10 @@ void MultiphaseCumulantLBMKernel::computePhasefield()
h
[
BNE
]
=
(
*
this
->
nonLocalDistributionsH
)(
D3Q27System
::
ET_BNE
,
x1
,
x2
,
x3p
);
h
[
REST
]
=
(
*
this
->
zeroDistributionsH
)(
x1
,
x2
,
x3
);
/*(*this->phaseField)(x1,x2,x3) = h[REST] + h[E] + h[W] + h[N] + h[S] + h[T] + h[B] + h[NE] + h[SW]
+ h[SE] + h[NW] + h[TE] + h[BW] +
h[BE] + h[TW] + h[TN] + h[BS] + h[BN] + h[TS] + h[TNE] + h[TNW] + h[TSE] + h[TSW] + h[BNE] +
h[BNW] + h[BSE] + h[BSW];*/
}
}
}
}
//----------------------------------------------------------
/*
/////// Filling ghost nodes for FD computations //////////
for(int x1 = minX1; x1 < maxX1; x1++)
{
for(int x2 = minX2; x2 < maxX2; x2++)
{
int x3 = 0;
(*phaseField)(x1, x2, x3) = (*phaseField)(x1, x2, maxX3-1);
x3 = maxX3;
(*phaseField)(x1, x2, x3) = (*phaseField)(x1, x2, minX3);
}
}
for(int x2 = minX2; x2 < maxX2; x2++)
{
for(int x3 = minX3; x3 < maxX3; x3++)
{
int x1 = 0;
(*phaseField)(x1, x2, x3) = (*phaseField)(maxX1-1, x2, x3);
x1 = maxX1;
(*phaseField)(x1, x2, x3) = (*phaseField)(minX1, x2, x3);
}
}
for(int x1 = minX1; x1 < maxX1; x1++)
{
for(int x3 = minX3; x3 < maxX3; x3++)
{
int x2 = 0;
(*phaseField)(x1, x2, x3) = (*phaseField)(x1, maxX2-1, x3);
x2 = maxX2;
(*phaseField)(x1, x2, x3) = (*phaseField)(x1, minX2, x3);
}
}
(*phaseField)(0, 0, 0 ) = (*phaseField)(maxX1-1, maxX2-1, maxX3-1);
(*phaseField)(0, 0, maxX3) = (*phaseField)(maxX1-1, maxX2-1, minX3 );
(*phaseField)(0, maxX2, 0 ) = (*phaseField)(maxX1-1, minX2, maxX3-1 );
(*phaseField)(0, maxX2, maxX3) = (*phaseField)(maxX1-1, minX2, minX3 );
(*phaseField)(maxX1, 0, 0 ) = (*phaseField)(minX1, maxX2-1, maxX3-1);
(*phaseField)(maxX1, 0, maxX3) = (*phaseField)(minX1, maxX2-1, minX3 );
(*phaseField)(maxX1, maxX2, 0 ) = (*phaseField)(minX1, minX2, maxX3-1 );
(*phaseField)(maxX1, maxX2, maxX3) = (*phaseField)(minX1, minX2, minX3 );
/////////////////////////////////////////////////////////
*/
}
void
MultiphaseCumulantLBMKernel
::
findNeighbors
(
CbArray3D
<
LBMReal
,
IndexerX3X2X1
>::
CbArray3DPtr
ph
,
int
x1
,
int
x2
,
...
...
@@ -1625,124 +1280,17 @@ void MultiphaseCumulantLBMKernel::findNeighbors(CbArray3D<LBMReal, IndexerX3X2X1
phi
[
REST
]
=
(
*
ph
)(
x1
,
x2
,
x3
);
// LBMReal a = -0.5*sqrt(2*beta/kappa)*cos(contactAngle*UbMath::PI/180);
// LBMReal a1 = 1 + a;
for
(
int
k
=
FSTARTDIR
;
k
<=
FENDDIR
;
k
++
)
{
if
(
!
bcArray
->
isSolid
(
x1
+
DX1
[
k
],
x2
+
DX2
[
k
],
x3
+
DX3
[
k
]))
{
phi
[
k
]
=
(
*
ph
)(
x1
+
DX1
[
k
],
x2
+
DX2
[
k
],
x3
+
DX3
[
k
]);
}
else
{
/*
if (phi[REST] < 1e-2)
{
phi[k] = (*ph)(x1 + DX1[INVDIR[k]], x2 + DX2[INVDIR[k]], x3 + DX3[INVDIR[k]]);
}
else
{
LBMReal phi_f = (*ph)(x1 + DX1[k], x2, x3 + DX3[k]);
phi[k] = (a1 - sqrt(a1*a1 - 4*a*phi_f) )/a - phi_f;
}
*/
phi
[
k
]
=
(
*
ph
)(
x1
,
x2
,
x3
);
// if (bcArray->isSolid(x1 + DX1[k], x2, x3))
//{
// phi[k] = (*ph)(x1, x2, x3);
// //if (!bcArray->isSolid(x1 , x2 + DX2[k], x3 + DX3[k]))
// //{
// // //phi[k] = (*ph)(x1 , x2 + DX2[k], x3 + DX3[k]);
// // LBMReal phi_f = (*ph)(x1 , x2 + DX2[k], x3 + DX3[k]);
// // phi[k] = (a1 - sqrt(a1*a1 - 4*a*phi_f) )/a - phi_f;
// //}
// //else
// //{
// // phi[k] = (*ph)(x1, x2, x3);
// //}
//}
//
// if (bcArray->isSolid(x1 , x2 + DX2[k], x3))
//{
// phi[k] = (*ph)(x1, x2, x3);
// //if (!bcArray->isSolid(x1 + DX1[k], x2 , x3 + DX3[k]))
// //{
// // //phi[k] = (*ph)(x1 + DX1[k], x2 , x3 + DX3[k]);
// // LBMReal phi_f = (*ph)(x1 + DX1[k], x2 , x3 + DX3[k]);
// // phi[k] = (a1 - sqrt(a1*a1 - 4*a*phi_f) )/a - phi_f;
// //}
// //else
// //{
// // phi[k] = (*ph)(x1, x2, x3);
// //}
//}
// if (bcArray->isSolid(x1 , x2, x3+ DX3[k]))
//{
// if (!bcArray->isSolid(x1 + DX1[k], x2 + DX2[k], x3))
// {
// //phi[k] = (*ph)(x1 + DX1[k], x2 + DX2[k], x3);
// LBMReal phi_f = (*ph)(x1 + DX1[k], x2 + DX2[k], x3);
// phi[k] = (a1 - sqrt(a1*a1 - 4*a*phi_f) )/a - phi_f;
// }
// else
// {
// phi[k] = (*ph)(x1, x2, x3);
// }
//}
/*if (bcArray->isSolid(x1 + DX1[k], x2, x3)) phi[k] = (*ph)(x1 , x2 + DX2[k], x3 + DX3[k]);
if (bcArray->isSolid(x1 , x2 + DX2[k], x3)) phi[k] = (*ph)(x1 + DX1[k], x2 , x3 + DX3[k]);
if (bcArray->isSolid(x1 , x2, x3+ DX3[k])) phi[k] = (*ph)(x1 + DX1[k], x2 + DX2[k], x3 );*/
/*if (phi[REST] < 0.00001)
{
phi[k] = 0.0;
}
else
{
phi[k] = 0.5;
}*/
// phi[k] = 0.5;
// phi[k] = (*ph)(x1, x2, x3);
// phi[k] = (*ph)(x1 + DX1[INVDIR[k]], x2 + DX2[INVDIR[k]], x3 + DX3[INVDIR[k]]);
}
}
}
/*
phi[E ] = (*ph)(x1 + DX1[E ], x2 + DX2[E ], x3 + DX3[E ]);
phi[N ] = (*ph)(x1 + DX1[N ], x2 + DX2[N ], x3 + DX3[N ]);
phi[T ] = (*ph)(x1 + DX1[T ], x2 + DX2[T ], x3 + DX3[T ]);
phi[W ] = (*ph)(x1 + DX1[W ], x2 + DX2[W ], x3 + DX3[W ]);
phi[S ] = (*ph)(x1 + DX1[S ], x2 + DX2[S ], x3 + DX3[S ]);
phi[B ] = (*ph)(x1 + DX1[B ], x2 + DX2[B ], x3 + DX3[B ]);
phi[NE ] = (*ph)(x1 + DX1[NE ], x2 + DX2[NE ], x3 + DX3[NE ]);
phi[NW ] = (*ph)(x1 + DX1[NW ], x2 + DX2[NW ], x3 + DX3[NW ]);
phi[TE ] = (*ph)(x1 + DX1[TE ], x2 + DX2[TE ], x3 + DX3[TE ]);
phi[TW ] = (*ph)(x1 + DX1[TW ], x2 + DX2[TW ], x3 + DX3[TW ]);
phi[TN ] = (*ph)(x1 + DX1[TN ], x2 + DX2[TN ], x3 + DX3[TN ]);
phi[TS ] = (*ph)(x1 + DX1[TS ], x2 + DX2[TS ], x3 + DX3[TS ]);
phi[SW ] = (*ph)(x1 + DX1[SW ], x2 + DX2[SW ], x3 + DX3[SW ]);
phi[SE ] = (*ph)(x1 + DX1[SE ], x2 + DX2[SE ], x3 + DX3[SE ]);
phi[BW ] = (*ph)(x1 + DX1[BW ], x2 + DX2[BW ], x3 + DX3[BW ]);
phi[BE ] = (*ph)(x1 + DX1[BE ], x2 + DX2[BE ], x3 + DX3[BE ]);
phi[BS ] = (*ph)(x1 + DX1[BS ], x2 + DX2[BS ], x3 + DX3[BS ]);
phi[BN ] = (*ph)(x1 + DX1[BN ], x2 + DX2[BN ], x3 + DX3[BN ]);
phi[BSW] = (*ph)(x1 + DX1[BSW], x2 + DX2[BSW], x3 + DX3[BSW]);
phi[BSE] = (*ph)(x1 + DX1[BSE], x2 + DX2[BSE], x3 + DX3[BSE]);
phi[BNW] = (*ph)(x1 + DX1[BNW], x2 + DX2[BNW], x3 + DX3[BNW]);
phi[BNE] = (*ph)(x1 + DX1[BNE], x2 + DX2[BNE], x3 + DX3[BNE]);
phi[TNE] = (*ph)(x1 + DX1[TNE], x2 + DX2[TNE], x3 + DX3[TNE]);
phi[TNW] = (*ph)(x1 + DX1[TNW], x2 + DX2[TNW], x3 + DX3[TNW]);
phi[TSE] = (*ph)(x1 + DX1[TSE], x2 + DX2[TSE], x3 + DX3[TSE]);
phi[TSW] = (*ph)(x1 + DX1[TSW], x2 + DX2[TSW], x3 + DX3[TSW]);
*/
}
void
MultiphaseCumulantLBMKernel
::
swapDistributions
()
{
LBMKernel
::
swapDistributions
();
dataSet
->
getHdistributions
()
->
swap
();
// computePhasefield();
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment