mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -109,6 +109,9 @@ int main(int argc, char *argv[])
|
|||||||
surfaceScalarField phiv_pos(U_pos & mesh.Sf());
|
surfaceScalarField phiv_pos(U_pos & mesh.Sf());
|
||||||
surfaceScalarField phiv_neg(U_neg & mesh.Sf());
|
surfaceScalarField phiv_neg(U_neg & mesh.Sf());
|
||||||
|
|
||||||
|
fvc::makeRelative(phiv_pos, U);
|
||||||
|
fvc::makeRelative(phiv_neg, U);
|
||||||
|
|
||||||
volScalarField c(sqrt(thermo.Cp()/thermo.Cv()*rPsi));
|
volScalarField c(sqrt(thermo.Cp()/thermo.Cv()*rPsi));
|
||||||
surfaceScalarField cSf_pos
|
surfaceScalarField cSf_pos
|
||||||
(
|
(
|
||||||
@ -161,17 +164,9 @@ int main(int argc, char *argv[])
|
|||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
|
|
||||||
mesh.movePoints(motionPtr->newPoints());
|
mesh.movePoints(motionPtr->newPoints());
|
||||||
phiv_pos = U_pos & mesh.Sf();
|
|
||||||
phiv_neg = U_neg & mesh.Sf();
|
|
||||||
fvc::makeRelative(phiv_pos, U);
|
|
||||||
fvc::makeRelative(phiv_neg, U);
|
|
||||||
phiv_neg -= mesh.phi();
|
|
||||||
phiv_pos *= a_pos;
|
|
||||||
phiv_neg *= a_neg;
|
|
||||||
aphiv_pos = phiv_pos - aSf;
|
|
||||||
aphiv_neg = phiv_neg + aSf;
|
|
||||||
|
|
||||||
surfaceScalarField phi("phi", aphiv_pos*rho_pos + aphiv_neg*rho_neg);
|
phi = aphiv_pos*rho_pos + aphiv_neg*rho_neg;
|
||||||
|
Info<< phi.boundaryField()[0] << endl;
|
||||||
|
|
||||||
surfaceVectorField phiUp
|
surfaceVectorField phiUp
|
||||||
(
|
(
|
||||||
@ -183,6 +178,7 @@ int main(int argc, char *argv[])
|
|||||||
(
|
(
|
||||||
aphiv_pos*(rho_pos*(e_pos + 0.5*magSqr(U_pos)) + p_pos)
|
aphiv_pos*(rho_pos*(e_pos + 0.5*magSqr(U_pos)) + p_pos)
|
||||||
+ aphiv_neg*(rho_neg*(e_neg + 0.5*magSqr(U_neg)) + p_neg)
|
+ aphiv_neg*(rho_neg*(e_neg + 0.5*magSqr(U_neg)) + p_neg)
|
||||||
|
+ mesh.phi()*(a_pos*p_pos + a_neg*p_neg)
|
||||||
+ aSf*p_pos - aSf*p_neg
|
+ aSf*p_pos - aSf*p_neg
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
solve
|
||||||
|
(
|
||||||
|
fvm::ddt(rho, e)
|
||||||
|
+ fvm::div(phi, e)
|
||||||
|
- fvm::laplacian(turbulence->alphaEff(), e)
|
||||||
|
==
|
||||||
|
- p*fvc::div(phi/fvc::interpolate(rho) + mesh.phi())
|
||||||
|
);
|
||||||
|
|
||||||
|
thermo.correct();
|
||||||
|
}
|
||||||
@ -76,34 +76,23 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
|
|||||||
volScalarField bp(pow(beta, -2.65));
|
volScalarField bp(pow(beta, -2.65));
|
||||||
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
||||||
|
|
||||||
volScalarField Cds(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wen and Yu (1966)
|
// Wen and Yu (1966)
|
||||||
tmp<volScalarField> tKWenYu(0.75*Cds*phase2_.rho()*Ur*bp/d);
|
return
|
||||||
volScalarField& KWenYu = tKWenYu();
|
(
|
||||||
|
pos(beta - 0.8)
|
||||||
// Ergun
|
*(0.75*Cds*phase2_.rho()*Ur*bp/d)
|
||||||
forAll (beta, cellj)
|
+ neg(beta - 0.8)
|
||||||
{
|
*(
|
||||||
if (beta[cellj] <= 0.8)
|
150.0*alpha_*phase2_.nu()*phase2_.rho()/(sqr(beta*d))
|
||||||
{
|
+ 1.75*phase2_.rho()*Ur/(beta*d)
|
||||||
KWenYu[cellj] =
|
)
|
||||||
150.0*alpha_[cellj]*phase2_.nu().value()*phase2_.rho().value()
|
);
|
||||||
/sqr(beta[cellj]*d[cellj])
|
|
||||||
+ 1.75*phase2_.rho().value()*Ur[cellj]
|
|
||||||
/(beta[cellj]*d[cellj]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return tKWenYu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -75,15 +75,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
|
|||||||
volScalarField bp(pow(beta, -2.65));
|
volScalarField bp(pow(beta, -2.65));
|
||||||
|
|
||||||
volScalarField Re(max(beta*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(beta*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,15 +72,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,15 +73,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
|
|||||||
{
|
{
|
||||||
volScalarField beta(max(scalar(1) - alpha_, scalar(1.0e-6)));
|
volScalarField beta(max(scalar(1) - alpha_, scalar(1.0e-6)));
|
||||||
volScalarField A(pow(beta, 4.14));
|
volScalarField A(pow(beta, 4.14));
|
||||||
volScalarField B(0.8*pow(beta, 1.28));
|
volScalarField B
|
||||||
|
(
|
||||||
forAll (beta, celli)
|
neg(beta - 0.85)*(0.8*pow(beta, 1.28))
|
||||||
{
|
+ pos(beta - 0.85)*(pow(beta, 2.65))
|
||||||
if (beta[celli] > 0.85)
|
);
|
||||||
{
|
|
||||||
B[celli] = pow(beta[celli], 2.65);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
|
|
||||||
|
|||||||
@ -75,15 +75,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
|
|||||||
volScalarField bp(pow(beta, -2.65));
|
volScalarField bp(pow(beta, -2.65));
|
||||||
|
|
||||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -149,6 +149,8 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::muf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
muff.correctBoundaryConditions();
|
||||||
|
|
||||||
return tmuf;
|
return tmuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -21,16 +21,27 @@ forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
|
|||||||
+ fvm::div(phase.phiAlpha(), U)
|
+ fvm::div(phase.phiAlpha(), U)
|
||||||
- fvm::Sp(fvc::ddt(alpha) + fvc::div(phase.phiAlpha()), U)
|
- fvm::Sp(fvc::ddt(alpha) + fvc::div(phase.phiAlpha()), U)
|
||||||
)
|
)
|
||||||
- fvm::laplacian(alpha*nuEff, U)
|
- fvm::laplacian(alpha*nuEff, U)
|
||||||
- fvc::div
|
- fvc::div
|
||||||
(
|
(
|
||||||
alpha*(nuEff*dev(T(fvc::grad(U))) /*- ((2.0/3.0)*I)*k*/),
|
alpha*(nuEff*dev(T(fvc::grad(U))) /*- ((2.0/3.0)*I)*k*/),
|
||||||
"div(Rc)"
|
"div(Rc)"
|
||||||
)
|
)
|
||||||
==
|
==
|
||||||
- fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U)
|
- fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U)
|
||||||
//- (alpha*phase.rho())*fluid.lift(phase)
|
//- (alpha*phase.rho())*fluid.lift(phase)
|
||||||
+ (alpha/phase.rho())*fluid.Svm(phase)
|
+ (alpha/phase.rho())*fluid.Svm(phase)
|
||||||
|
- fvm::Sp
|
||||||
|
(
|
||||||
|
slamDampCoeff
|
||||||
|
*max
|
||||||
|
(
|
||||||
|
mag(U.dimensionedInternalField()) - maxSlamVelocity,
|
||||||
|
dimensionedScalar("U0", dimVelocity, 0)
|
||||||
|
)
|
||||||
|
/pow(mesh.V(), 1.0/3.0),
|
||||||
|
U
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
mrfZones.addCoriolis(alpha, UEqns[phasei]);
|
mrfZones.addCoriolis(alpha, UEqns[phasei]);
|
||||||
|
|||||||
@ -53,6 +53,18 @@
|
|||||||
phi += fvc::interpolate(alpha)*phase.phi();
|
phi += fvc::interpolate(alpha)*phase.phi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scalar slamDampCoeff
|
||||||
|
(
|
||||||
|
fluid.lookupOrDefault<scalar>("slamDampCoeff", 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
dimensionedScalar maxSlamVelocity
|
||||||
|
(
|
||||||
|
"maxSlamVelocity",
|
||||||
|
dimVelocity,
|
||||||
|
fluid.lookupOrDefault<scalar>("maxSlamVelocity", GREAT)
|
||||||
|
);
|
||||||
|
|
||||||
// dimensionedScalar pMin
|
// dimensionedScalar pMin
|
||||||
// (
|
// (
|
||||||
// "pMin",
|
// "pMin",
|
||||||
|
|||||||
@ -1,80 +0,0 @@
|
|||||||
volScalarField dragCoeff
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"dragCoeff",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar("dragCoeff", dimensionSet(1, -3, -1, 0, 0), 0)
|
|
||||||
);
|
|
||||||
|
|
||||||
volVectorField liftForce
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"liftForce",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedVector("liftForce", dimensionSet(1, -2, -2, 0, 0), vector::zero)
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField heatTransferCoeff
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"heatTransferCoeff",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar("heatTransferCoeff", dimensionSet(1, -1, -3, -1, 0), 0)
|
|
||||||
);
|
|
||||||
|
|
||||||
{
|
|
||||||
volVectorField Ur = U1 - U2;
|
|
||||||
volScalarField magUr = mag(Ur);
|
|
||||||
|
|
||||||
if (dispersedPhase == "1")
|
|
||||||
{
|
|
||||||
dragCoeff = drag1->K(magUr);
|
|
||||||
heatTransferCoeff = heatTransfer1->K(magUr);
|
|
||||||
}
|
|
||||||
else if (dispersedPhase == "2")
|
|
||||||
{
|
|
||||||
dragCoeff = drag2->K(magUr);
|
|
||||||
heatTransferCoeff = heatTransfer2->K(magUr);
|
|
||||||
}
|
|
||||||
else if (dispersedPhase == "both")
|
|
||||||
{
|
|
||||||
dragCoeff =
|
|
||||||
(
|
|
||||||
alpha2*drag1->K(magUr)
|
|
||||||
+ alpha1*drag2->K(magUr)
|
|
||||||
);
|
|
||||||
|
|
||||||
heatTransferCoeff =
|
|
||||||
(
|
|
||||||
alpha2*heatTransfer1->K(magUr)
|
|
||||||
+ alpha1*heatTransfer2->K(magUr)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorIn(args.executable())
|
|
||||||
<< "dispersedPhase: " << dispersedPhase << " is incorrect"
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
volScalarField alphaCoeff
|
|
||||||
(
|
|
||||||
(alpha1 + minInterfaceAlpha)*(alpha2 + minInterfaceAlpha)
|
|
||||||
);
|
|
||||||
dragCoeff *= alphaCoeff;
|
|
||||||
heatTransferCoeff *= alphaCoeff;
|
|
||||||
|
|
||||||
liftForce = Cl*(alpha1*rho1 + alpha2*rho2)*(Ur ^ fvc::curl(U));
|
|
||||||
}
|
|
||||||
@ -75,34 +75,23 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
|
|||||||
volScalarField bp(pow(beta, -2.65));
|
volScalarField bp(pow(beta, -2.65));
|
||||||
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3)));
|
||||||
|
|
||||||
volScalarField Cds(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wen and Yu (1966)
|
// Wen and Yu (1966)
|
||||||
tmp<volScalarField> tKWenYu = 0.75*Cds*phase2_.rho()*Ur*bp/d;
|
return
|
||||||
volScalarField& KWenYu = tKWenYu();
|
(
|
||||||
|
pos(beta - 0.8)
|
||||||
// Ergun
|
*(0.75*Cds*phase2_.rho()*Ur*bp/d)
|
||||||
forAll (beta, cellj)
|
+ neg(beta - 0.8)
|
||||||
{
|
*(
|
||||||
if (beta[cellj] <= 0.8)
|
150.0*phase1_*phase2_.nu()*phase2_.rho()/(sqr(beta*d))
|
||||||
{
|
+ 1.75*phase2_.rho()*Ur/(beta*d)
|
||||||
KWenYu[cellj] =
|
)
|
||||||
150.0*phase1_[cellj]*phase2_.nu().value()*phase2_.rho().value()
|
);
|
||||||
/sqr(beta[cellj]*d[cellj])
|
|
||||||
+ 1.75*phase2_.rho().value()*Ur[cellj]
|
|
||||||
/(beta[cellj]*d[cellj]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return tKWenYu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -74,15 +74,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
|
|||||||
volScalarField bp(pow(beta, -2.65));
|
volScalarField bp(pow(beta, -2.65));
|
||||||
|
|
||||||
volScalarField Re(max(beta*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(beta*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -71,15 +71,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
return 0.75*Cds*phase2_.rho()*Ur/phase1_.d();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,15 +72,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
|
|||||||
{
|
{
|
||||||
volScalarField beta(max(phase2_, scalar(1.0e-6)));
|
volScalarField beta(max(phase2_, scalar(1.0e-6)));
|
||||||
volScalarField A(pow(beta, 4.14));
|
volScalarField A(pow(beta, 4.14));
|
||||||
volScalarField B(0.8*pow(beta, 1.28));
|
volScalarField B
|
||||||
|
(
|
||||||
forAll (beta, celli)
|
neg(beta - 0.85)*(0.8*pow(beta, 1.28))
|
||||||
{
|
+ pos(beta - 0.85)*(pow(beta, 2.65))
|
||||||
if (beta[celli] > 0.85)
|
);
|
||||||
{
|
|
||||||
B[celli] = pow(beta[celli], 2.65);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
|
|
||||||
|
|||||||
@ -74,15 +74,11 @@ Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
|
|||||||
volScalarField bp(pow(beta, -2.65));
|
volScalarField bp(pow(beta, -2.65));
|
||||||
|
|
||||||
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3)));
|
||||||
volScalarField Cds(24.0*(scalar(1) + 0.15*pow(Re, 0.687))/Re);
|
volScalarField Cds
|
||||||
|
(
|
||||||
forAll(Re, celli)
|
neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
|
||||||
{
|
+ pos(Re - 1000)*0.44
|
||||||
if (Re[celli] > 1000.0)
|
);
|
||||||
{
|
|
||||||
Cds[celli] = 0.44;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -149,6 +149,8 @@ Foam::kineticTheoryModels::frictionalStressModels::Schaeffer::muf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
muff.correctBoundaryConditions();
|
||||||
|
|
||||||
return tmuf;
|
return tmuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -82,7 +82,6 @@ int main(int argc, char *argv[])
|
|||||||
rho = fluid.rho();
|
rho = fluid.rho();
|
||||||
#include "zonePhaseVolumes.H"
|
#include "zonePhaseVolumes.H"
|
||||||
|
|
||||||
//#include "interfacialCoeffs.H"
|
|
||||||
//#include "TEqns.H"
|
//#include "TEqns.H"
|
||||||
#include "UEqns.H"
|
#include "UEqns.H"
|
||||||
|
|
||||||
|
|||||||
@ -37,8 +37,10 @@
|
|||||||
|
|
||||||
U0s.set(phasei, new volVectorField(phase.U()));
|
U0s.set(phasei, new volVectorField(phase.U()));
|
||||||
phi0s.set(phasei, new surfaceScalarField(phase.phi()));
|
phi0s.set(phasei, new surfaceScalarField(phase.phi()));
|
||||||
|
mrfZones.absoluteFlux(phi0s[phasei]);
|
||||||
|
|
||||||
phasei++;
|
phasei++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
surfaceScalarField phi0
|
surfaceScalarField phi0
|
||||||
@ -67,6 +69,8 @@
|
|||||||
|
|
||||||
phase.U() = rAUs[phasei]*UEqns[phasei].H();
|
phase.U() = rAUs[phasei]*UEqns[phasei].H();
|
||||||
|
|
||||||
|
phase.phi().oldTime();
|
||||||
|
mrfZones.absoluteFlux(phase.phi().oldTime());
|
||||||
mrfZones.absoluteFlux(phase.phi());
|
mrfZones.absoluteFlux(phase.phi());
|
||||||
phase.phi() =
|
phase.phi() =
|
||||||
(
|
(
|
||||||
@ -74,7 +78,8 @@
|
|||||||
+ fvc::ddtPhiCorr(rAUs[phasei], alpha, phase.U(), phase.phi())
|
+ fvc::ddtPhiCorr(rAUs[phasei], alpha, phase.U(), phase.phi())
|
||||||
);
|
);
|
||||||
mrfZones.relativeFlux(phase.phi());
|
mrfZones.relativeFlux(phase.phi());
|
||||||
surfaceScalarField pphi0("pphi0", phase.phi());
|
mrfZones.relativeFlux(phase.phi().oldTime());
|
||||||
|
surfaceScalarField pphi0("pphi0", 1.0*phase.phi());
|
||||||
pphi0 += rAlphaAUfs[phasei]*(g & mesh.Sf());
|
pphi0 += rAlphaAUfs[phasei]*(g & mesh.Sf());
|
||||||
|
|
||||||
multiphaseSystem::dragModelTable::const_iterator dmIter =
|
multiphaseSystem::dragModelTable::const_iterator dmIter =
|
||||||
@ -196,7 +201,7 @@
|
|||||||
p.relax();
|
p.relax();
|
||||||
mSfGradp = pEqnIncomp.flux()/Dp;
|
mSfGradp = pEqnIncomp.flux()/Dp;
|
||||||
|
|
||||||
U = dimensionedVector("U", dimVelocity, vector::zero);
|
U = dimensionedVector("U", dimVelocity, vector::zero);
|
||||||
|
|
||||||
phasei = 0;
|
phasei = 0;
|
||||||
forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
|
forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
|
||||||
@ -254,9 +259,17 @@
|
|||||||
phasej++;
|
phasej++;
|
||||||
}
|
}
|
||||||
|
|
||||||
phase.U() +=
|
// phase.U() +=
|
||||||
(1.0/phase.rho())
|
// (1.0/phase.rho())*rAUs[phasei]*(*dcIter())
|
||||||
*rAUs[phasei]*(*dcIter())*U0s[phasej];
|
// *U0s[phasej];
|
||||||
|
|
||||||
|
phase.U() += fvc::reconstruct
|
||||||
|
(
|
||||||
|
fvc::interpolate
|
||||||
|
(
|
||||||
|
(1.0/phase.rho())*rAUs[phasei]*(*dcIter())
|
||||||
|
)*phi0s[phasej]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,10 +50,14 @@ int main()
|
|||||||
<< (t1 & t7 & t1.T()) << " " << transform(t1, t7) << endl;
|
<< (t1 & t7 & t1.T()) << " " << transform(t1, t7) << endl;
|
||||||
|
|
||||||
symmTensor st1(1, 2, 3, 4, 5, 6);
|
symmTensor st1(1, 2, 3, 4, 5, 6);
|
||||||
|
symmTensor st2(7, 8, 9, 10, 11, 12);
|
||||||
|
|
||||||
Info<< "Check symmetric transformation "
|
Info<< "Check symmetric transformation "
|
||||||
<< transform(t1, st1) << endl;
|
<< transform(t1, st1) << endl;
|
||||||
|
|
||||||
|
Info<< "Check for dot product of symmetric tensors "
|
||||||
|
<< (st1 & st2) << endl;
|
||||||
|
|
||||||
vector v1(1, 2, 3);
|
vector v1(1, 2, 3);
|
||||||
|
|
||||||
Info<< sqr(v1) << endl;
|
Info<< sqr(v1) << endl;
|
||||||
|
|||||||
@ -55,6 +55,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -164,6 +164,9 @@ tmp<Field<symmTensor> > transformFieldMask<symmTensor>
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,7 @@ SourceFiles
|
|||||||
#include "vectorField.H"
|
#include "vectorField.H"
|
||||||
#include "sphericalTensor.H"
|
#include "sphericalTensor.H"
|
||||||
#include "symmTensor.H"
|
#include "symmTensor.H"
|
||||||
|
#include "tensor.H"
|
||||||
|
|
||||||
#define TEMPLATE
|
#define TEMPLATE
|
||||||
#include "FieldFunctionsM.H"
|
#include "FieldFunctionsM.H"
|
||||||
@ -69,6 +70,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -53,6 +53,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,10 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|||||||
@ -24,6 +24,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "Vector.H"
|
#include "Vector.H"
|
||||||
|
#include "Tensor.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -184,18 +185,21 @@ inline Vector<Cmpt> operator*(const SymmTensor<Cmpt>& st)
|
|||||||
|
|
||||||
//- Inner-product between two symmetric tensors
|
//- Inner-product between two symmetric tensors
|
||||||
template <class Cmpt>
|
template <class Cmpt>
|
||||||
inline SymmTensor<Cmpt>
|
inline Tensor<Cmpt>
|
||||||
operator&(const SymmTensor<Cmpt>& st1, const SymmTensor<Cmpt>& st2)
|
operator&(const SymmTensor<Cmpt>& st1, const SymmTensor<Cmpt>& st2)
|
||||||
{
|
{
|
||||||
return SymmTensor<Cmpt>
|
return Tensor<Cmpt>
|
||||||
(
|
(
|
||||||
st1.xx()*st2.xx() + st1.xy()*st2.xy() + st1.xz()*st2.xz(),
|
st1.xx()*st2.xx() + st1.xy()*st2.xy() + st1.xz()*st2.xz(),
|
||||||
st1.xx()*st2.xy() + st1.xy()*st2.yy() + st1.xz()*st2.yz(),
|
st1.xx()*st2.xy() + st1.xy()*st2.yy() + st1.xz()*st2.yz(),
|
||||||
st1.xx()*st2.xz() + st1.xy()*st2.yz() + st1.xz()*st2.zz(),
|
st1.xx()*st2.xz() + st1.xy()*st2.yz() + st1.xz()*st2.zz(),
|
||||||
|
|
||||||
|
st1.xy()*st2.xx() + st1.yy()*st2.xy() + st1.yz()*st2.xz(),
|
||||||
st1.xy()*st2.xy() + st1.yy()*st2.yy() + st1.yz()*st2.yz(),
|
st1.xy()*st2.xy() + st1.yy()*st2.yy() + st1.yz()*st2.yz(),
|
||||||
st1.xy()*st2.xz() + st1.yy()*st2.yz() + st1.yz()*st2.zz(),
|
st1.xy()*st2.xz() + st1.yy()*st2.yz() + st1.yz()*st2.zz(),
|
||||||
|
|
||||||
|
st1.xz()*st2.xx() + st1.yz()*st2.xy() + st1.zz()*st2.xz(),
|
||||||
|
st1.xz()*st2.xy() + st1.yz()*st2.yy() + st1.zz()*st2.yz(),
|
||||||
st1.xz()*st2.xz() + st1.yz()*st2.yz() + st1.zz()*st2.zz()
|
st1.xz()*st2.xz() + st1.yz()*st2.yz() + st1.zz()*st2.zz()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,13 +40,15 @@ SourceFiles
|
|||||||
|
|
||||||
#include "Vector.H"
|
#include "Vector.H"
|
||||||
#include "SphericalTensor.H"
|
#include "SphericalTensor.H"
|
||||||
#include "SymmTensor.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
|
||||||
|
template<class Cmpt>
|
||||||
|
class SymmTensor;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class Tensor Declaration
|
Class Tensor Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -23,6 +23,8 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "SymmTensor.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
|
|||||||
@ -970,381 +970,381 @@ internalField nonuniform List<scalar>
|
|||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
0
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
|
|||||||
@ -970,381 +970,381 @@ internalField nonuniform List<scalar>
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
|
|||||||
@ -970,381 +970,381 @@ internalField nonuniform List<scalar>
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
|
|||||||
@ -15,7 +15,7 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
LESModel Smagorinsky;
|
LESModel laminar;
|
||||||
|
|
||||||
printCoeffs on;
|
printCoeffs on;
|
||||||
|
|
||||||
@ -26,61 +26,4 @@ cubeRootVolCoeffs
|
|||||||
deltaCoeff 1;
|
deltaCoeff 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PrandtlCoeffs
|
|
||||||
{
|
|
||||||
delta cubeRootVol;
|
|
||||||
cubeRootVolCoeffs
|
|
||||||
{
|
|
||||||
deltaCoeff 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
smoothCoeffs
|
|
||||||
{
|
|
||||||
delta cubeRootVol;
|
|
||||||
cubeRootVolCoeffs
|
|
||||||
{
|
|
||||||
deltaCoeff 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
maxDeltaRatio 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Cdelta 0.158;
|
|
||||||
}
|
|
||||||
|
|
||||||
vanDriestCoeffs
|
|
||||||
{
|
|
||||||
delta cubeRootVol;
|
|
||||||
cubeRootVolCoeffs
|
|
||||||
{
|
|
||||||
deltaCoeff 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
smoothCoeffs
|
|
||||||
{
|
|
||||||
delta cubeRootVol;
|
|
||||||
cubeRootVolCoeffs
|
|
||||||
{
|
|
||||||
deltaCoeff 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
maxDeltaRatio 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Aplus 26;
|
|
||||||
Cdelta 0.158;
|
|
||||||
}
|
|
||||||
|
|
||||||
smoothCoeffs
|
|
||||||
{
|
|
||||||
delta cubeRootVol;
|
|
||||||
cubeRootVolCoeffs
|
|
||||||
{
|
|
||||||
deltaCoeff 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
maxDeltaRatio 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -25,7 +25,7 @@ regions
|
|||||||
(
|
(
|
||||||
boxToCell
|
boxToCell
|
||||||
{
|
{
|
||||||
box (0 0 -0.1) (0.15 0.501 0.1);
|
box (0 0 -0.1) (0.15 0.701 0.1);
|
||||||
fieldValues
|
fieldValues
|
||||||
(
|
(
|
||||||
volScalarFieldValue alphaair 0
|
volScalarFieldValue alphaair 0
|
||||||
|
|||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type fluxCorrectedVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object Uair;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type fluxCorrectedVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object Umercury;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type fluxCorrectedVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object Uoil;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type fluxCorrectedVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object Uwater;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type fluxCorrectedVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,79 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object alphaair;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type alphaContactAngle;
|
||||||
|
thetaProperties
|
||||||
|
(
|
||||||
|
( water air ) 90 0 0 0
|
||||||
|
( oil air ) 90 0 0 0
|
||||||
|
( mercury air ) 90 0 0 0
|
||||||
|
( water oil ) 90 0 0 0
|
||||||
|
( water mercury ) 90 0 0 0
|
||||||
|
( oil mercury ) 90 0 0 0
|
||||||
|
);
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type alphaContactAngle;
|
||||||
|
thetaProperties
|
||||||
|
(
|
||||||
|
( water air ) 90 0 0 0
|
||||||
|
( oil air ) 90 0 0 0
|
||||||
|
( mercury air ) 90 0 0 0
|
||||||
|
( water oil ) 90 0 0 0
|
||||||
|
( water mercury ) 90 0 0 0
|
||||||
|
( oil mercury ) 90 0 0 0
|
||||||
|
);
|
||||||
|
value uniform 1;
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type alphaContactAngle;
|
||||||
|
thetaProperties
|
||||||
|
(
|
||||||
|
( water air ) 90 0 0 0
|
||||||
|
( oil air ) 90 0 0 0
|
||||||
|
( mercury air ) 90 0 0 0
|
||||||
|
( water oil ) 90 0 0 0
|
||||||
|
( water mercury ) 90 0 0 0
|
||||||
|
( oil mercury ) 90 0 0 0
|
||||||
|
);
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue uniform 1;
|
||||||
|
value uniform 1;
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object alphamercury;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object alphaoil;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object alphas;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object alphawater;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object p;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type multiphaseFixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type multiphaseFixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type multiphaseFixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type totalPressure;
|
||||||
|
p0 uniform 0;
|
||||||
|
U Uair;
|
||||||
|
phi phiair;
|
||||||
|
rho rho;
|
||||||
|
psi none;
|
||||||
|
gamma 1;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
11
tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/Allclean
Executable file
11
tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/Allclean
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
# Source tutorial clean functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||||
|
|
||||||
|
cleanCase
|
||||||
|
|
||||||
|
\rm -rf 0
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------- end-of-file
|
||||||
19
tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/Allrun
Executable file
19
tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/Allrun
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
# Set application name
|
||||||
|
application=`getApplication`
|
||||||
|
|
||||||
|
\rm -rf 0
|
||||||
|
cp -r 0.org 0
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
runApplication setFields
|
||||||
|
runApplication decomposePar
|
||||||
|
runParallel $application 4
|
||||||
|
runApplication reconstructPar
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------- end-of-file
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object LESProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
LESModel laminar;
|
||||||
|
|
||||||
|
printCoeffs on;
|
||||||
|
|
||||||
|
delta cubeRootVol;
|
||||||
|
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object MRFZones;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
0()
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class uniformDimensionedVectorField;
|
||||||
|
location "constant";
|
||||||
|
object g;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -2 0 0 0 0];
|
||||||
|
value ( 0 -9.81 0 );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object motionProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
movingFvMesh staticFvMesh;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,108 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 0.146;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
(0 0 0)
|
||||||
|
(2 0 0)
|
||||||
|
(2.16438 0 0)
|
||||||
|
(4 0 0)
|
||||||
|
(0 0.32876 0)
|
||||||
|
(2 0.32876 0)
|
||||||
|
(2.16438 0.32876 0)
|
||||||
|
(4 0.32876 0)
|
||||||
|
(0 4 0)
|
||||||
|
(2 4 0)
|
||||||
|
(2.16438 4 0)
|
||||||
|
(4 4 0)
|
||||||
|
(0 0 0.1)
|
||||||
|
(2 0 0.1)
|
||||||
|
(2.16438 0 0.1)
|
||||||
|
(4 0 0.1)
|
||||||
|
(0 0.32876 0.1)
|
||||||
|
(2 0.32876 0.1)
|
||||||
|
(2.16438 0.32876 0.1)
|
||||||
|
(4 0.32876 0.1)
|
||||||
|
(0 4 0.1)
|
||||||
|
(2 4 0.1)
|
||||||
|
(2.16438 4 0.1)
|
||||||
|
(4 4 0.1)
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 5 4 12 13 17 16) (92 15 1) simpleGrading (1 1 1)
|
||||||
|
hex (2 3 7 6 14 15 19 18) (76 15 1) simpleGrading (1 1 1)
|
||||||
|
hex (4 5 9 8 16 17 21 20) (92 180 1) simpleGrading (1 1 1)
|
||||||
|
hex (5 6 10 9 17 18 22 21) (8 180 1) simpleGrading (1 1 1)
|
||||||
|
hex (6 7 11 10 18 19 23 22) (76 180 1) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
edges
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 12 16 4)
|
||||||
|
(4 16 20 8)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(7 19 15 3)
|
||||||
|
(11 23 19 7)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 13 12)
|
||||||
|
(1 5 17 13)
|
||||||
|
(5 6 18 17)
|
||||||
|
(2 14 18 6)
|
||||||
|
(2 3 15 14)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(8 20 21 9)
|
||||||
|
(9 21 22 10)
|
||||||
|
(10 22 23 11)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
mergePatchPairs
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class polyBoundaryMesh;
|
||||||
|
location "constant/polyMesh";
|
||||||
|
object boundary;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
5
|
||||||
|
(
|
||||||
|
leftWall
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
nFaces 195;
|
||||||
|
startFace 68014;
|
||||||
|
}
|
||||||
|
rightWall
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
nFaces 195;
|
||||||
|
startFace 68209;
|
||||||
|
}
|
||||||
|
lowerWall
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
nFaces 206;
|
||||||
|
startFace 68404;
|
||||||
|
}
|
||||||
|
atmosphere
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
nFaces 176;
|
||||||
|
startFace 68610;
|
||||||
|
}
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
nFaces 68400;
|
||||||
|
startFace 68786;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,248 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phases
|
||||||
|
(
|
||||||
|
water
|
||||||
|
{
|
||||||
|
nu 1e-06;
|
||||||
|
kappa 1e-06;
|
||||||
|
Cp 4195;
|
||||||
|
rho 1000;
|
||||||
|
|
||||||
|
diameterModel constant;
|
||||||
|
constantCoeffs
|
||||||
|
{
|
||||||
|
d 1e-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
oil
|
||||||
|
{
|
||||||
|
nu 1e-06;
|
||||||
|
kappa 1e-06;
|
||||||
|
Cp 4195;
|
||||||
|
rho 500;
|
||||||
|
|
||||||
|
diameterModel constant;
|
||||||
|
constantCoeffs
|
||||||
|
{
|
||||||
|
d 1e-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mercury
|
||||||
|
{
|
||||||
|
nu 1.125e-07;
|
||||||
|
kappa 1e-06;
|
||||||
|
Cp 4195;
|
||||||
|
rho 13529;
|
||||||
|
|
||||||
|
diameterModel constant;
|
||||||
|
constantCoeffs
|
||||||
|
{
|
||||||
|
d 1e-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
air
|
||||||
|
{
|
||||||
|
nu 1.48e-05;
|
||||||
|
kappa 2.63e-2;
|
||||||
|
Cp 1007;
|
||||||
|
rho 1;
|
||||||
|
|
||||||
|
diameterModel constant;
|
||||||
|
constantCoeffs
|
||||||
|
{
|
||||||
|
d 3e-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
sigmas
|
||||||
|
(
|
||||||
|
(air water) 0.07
|
||||||
|
(air oil) 0.07
|
||||||
|
(air mercury) 0.07
|
||||||
|
(water oil) 0
|
||||||
|
(water mercury) 0
|
||||||
|
(oil mercury) 0
|
||||||
|
);
|
||||||
|
|
||||||
|
interfaceCompression
|
||||||
|
(
|
||||||
|
(air water) 1
|
||||||
|
(air oil) 1
|
||||||
|
(air mercury) 1
|
||||||
|
(water oil) 0
|
||||||
|
(water mercury) 0
|
||||||
|
(oil mercury) 0
|
||||||
|
);
|
||||||
|
|
||||||
|
virtualMass
|
||||||
|
(
|
||||||
|
(air water) 0
|
||||||
|
(air oil) 0
|
||||||
|
(air mercury) 0
|
||||||
|
(water oil) 0.5
|
||||||
|
(water mercury) 0.5
|
||||||
|
(oil mercury) 0.5
|
||||||
|
);
|
||||||
|
|
||||||
|
drag
|
||||||
|
(
|
||||||
|
(air water)
|
||||||
|
{
|
||||||
|
type blended;
|
||||||
|
|
||||||
|
air
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
water
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
residualPhaseFraction 1e-3;
|
||||||
|
residualSlip 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
(air oil)
|
||||||
|
{
|
||||||
|
type blended;
|
||||||
|
|
||||||
|
air
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
oil
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
residualPhaseFraction 1e-3;
|
||||||
|
residualSlip 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
(air mercury)
|
||||||
|
{
|
||||||
|
type blended;
|
||||||
|
|
||||||
|
air
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mercury
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
residualPhaseFraction 1e-3;
|
||||||
|
residualSlip 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
(water oil)
|
||||||
|
{
|
||||||
|
type blended;
|
||||||
|
|
||||||
|
water
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
oil
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
residualPhaseFraction 1e-3;
|
||||||
|
residualSlip 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
(water mercury)
|
||||||
|
{
|
||||||
|
type blended;
|
||||||
|
|
||||||
|
water
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mercury
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
residualPhaseFraction 1e-3;
|
||||||
|
residualSlip 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
(oil mercury)
|
||||||
|
{
|
||||||
|
type blended;
|
||||||
|
|
||||||
|
oil
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mercury
|
||||||
|
{
|
||||||
|
type SchillerNaumann;
|
||||||
|
residualPhaseFraction 0;
|
||||||
|
residualSlip 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
residualPhaseFraction 1e-3;
|
||||||
|
residualSlip 1e-3;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// This is a dummy to support the Smagorinsky model
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu nu [ 0 2 -1 0 0 0 0 ] 0;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object turbulenceProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
simulationType laminar;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application multiphaseEulerFoam;
|
||||||
|
|
||||||
|
startFrom startTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 6;
|
||||||
|
|
||||||
|
deltaT 0.001;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 0.01;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 6;
|
||||||
|
|
||||||
|
writeCompression uncompressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 6;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep yes;
|
||||||
|
|
||||||
|
maxCo 0.5;
|
||||||
|
maxAlphaCo 0.5;
|
||||||
|
|
||||||
|
maxDeltaT 1;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object decomposeParDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
numberOfSubdomains 4;
|
||||||
|
|
||||||
|
method simple;
|
||||||
|
|
||||||
|
simpleCoeffs
|
||||||
|
{
|
||||||
|
n ( 2 2 1 );
|
||||||
|
delta 0.001;
|
||||||
|
}
|
||||||
|
|
||||||
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
|
n ( 1 1 1 );
|
||||||
|
delta 0.001;
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
manualCoeffs
|
||||||
|
{
|
||||||
|
dataFile "";
|
||||||
|
}
|
||||||
|
|
||||||
|
distributed no;
|
||||||
|
|
||||||
|
roots ( );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
"div\(phi,alpha.*\)" Gauss vanLeer;
|
||||||
|
"div\(phir,alpha.*,alpha.*\)" Gauss vanLeer;
|
||||||
|
|
||||||
|
"div\(phiAlpha.*,U.*\)" Gauss limitedLinearV 1;
|
||||||
|
div(Rc) Gauss linear;
|
||||||
|
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default corrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p;
|
||||||
|
pcorr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,94 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
p
|
||||||
|
{
|
||||||
|
solver GAMG;
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0.05;
|
||||||
|
smoother GaussSeidel;
|
||||||
|
nPreSweeps 0;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nFinestSweeps 2;
|
||||||
|
cacheAgglomeration on;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pFinal
|
||||||
|
{
|
||||||
|
solver PCG;
|
||||||
|
preconditioner
|
||||||
|
{
|
||||||
|
preconditioner GAMG;
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
nVcycles 2;
|
||||||
|
smoother GaussSeidel;
|
||||||
|
nPreSweeps 0;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nFinestSweeps 2;
|
||||||
|
cacheAgglomeration on;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
}
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
maxIter 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
pcorr
|
||||||
|
{
|
||||||
|
$pFinal;
|
||||||
|
tolerance 1e-5;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
U
|
||||||
|
{
|
||||||
|
solver smoothSolver;
|
||||||
|
smoother GaussSeidel;
|
||||||
|
tolerance 1e-8;
|
||||||
|
relTol 0.1;
|
||||||
|
nSweeps 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
UFinal
|
||||||
|
{
|
||||||
|
$U;
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PIMPLE
|
||||||
|
{
|
||||||
|
nCorrectors 3;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
nAlphaSubCycles 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
relaxationFactors
|
||||||
|
{
|
||||||
|
"U.*" 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object setFieldsDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defaultFieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alphaair 1
|
||||||
|
volScalarFieldValue alphawater 0
|
||||||
|
volScalarFieldValue alphaoil 0
|
||||||
|
volScalarFieldValue alphamercury 0
|
||||||
|
volVectorFieldValue U ( 0 0 0 )
|
||||||
|
);
|
||||||
|
|
||||||
|
regions
|
||||||
|
(
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box ( 0 0 -1 ) ( 0.1461 0.292 1 );
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alphawater 1
|
||||||
|
volScalarFieldValue alphaoil 0
|
||||||
|
volScalarFieldValue alphamercury 0
|
||||||
|
volScalarFieldValue alphaair 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box ( 0.1461 0 -1 ) ( 0.2922 0.292 1 );
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alphawater 0
|
||||||
|
volScalarFieldValue alphaoil 1
|
||||||
|
volScalarFieldValue alphamercury 0
|
||||||
|
volScalarFieldValue alphaair 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box ( 0 0 -1 ) ( 0.1461 0.1 1 );
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alphawater 0
|
||||||
|
volScalarFieldValue alphaoil 0
|
||||||
|
volScalarFieldValue alphamercury 1
|
||||||
|
volScalarFieldValue alphaair 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
Reference in New Issue
Block a user