mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
twoPhaseEulerFoam: Now in fully-conservative form
This commit is contained in:
@ -4,7 +4,7 @@ set -x
|
||||
|
||||
wclean libso twoPhaseSystem
|
||||
wclean libso interfacialModels
|
||||
wclean libso phaseIncompressibleTurbulenceModels
|
||||
wclean libso phaseCompressibleTurbulenceModels
|
||||
wclean
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
@ -5,7 +5,7 @@ set -x
|
||||
wmakeLnInclude interfacialModels
|
||||
wmake libso twoPhaseSystem
|
||||
wmake libso interfacialModels
|
||||
wmake libso phaseIncompressibleTurbulenceModels
|
||||
wmake libso phaseCompressibleTurbulenceModels
|
||||
wmake
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
@ -9,48 +9,58 @@
|
||||
|
||||
fvScalarMatrix he1Eqn
|
||||
(
|
||||
fvm::ddt(alpha1, he1) + fvm::div(alphaPhi1, he1)
|
||||
+ fvc::ddt(alpha1, K1) + fvc::div(alphaPhi1, K1)
|
||||
fvm::ddt(alpha1, rho1, he1) + fvm::div(alphaRhoPhi1, he1)
|
||||
- fvm::Sp(fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1), he1)
|
||||
|
||||
// Compressibity correction
|
||||
- fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), he1)
|
||||
- (fvc::ddt(alpha1) + fvc::div(alphaPhi1))*K1
|
||||
+ fvc::ddt(alpha1, rho1, K1) + fvc::div(alphaRhoPhi1, K1)
|
||||
- (fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1))*K1
|
||||
|
||||
+ (
|
||||
he1.name() == thermo1.phasePropertyName("e")
|
||||
? fvc::ddt(alpha1)*p + fvc::div(alphaPhi1, p)
|
||||
: -alpha1*dpdt
|
||||
)/rho1
|
||||
)
|
||||
|
||||
- fvm::laplacian
|
||||
(
|
||||
fvc::interpolate(alpha1)
|
||||
*fvc::interpolate(thermo1.alphaEff(phase1.turbulence().mut())),
|
||||
he1
|
||||
)
|
||||
|
||||
//***HGW- fvm::laplacian(alpha1*turbulence1->alphaEff(), he1)
|
||||
- fvm::laplacian(alpha1*phase1.turbulence().nuEff(), he1)
|
||||
==
|
||||
heatTransferCoeff*(thermo2.T() - thermo1.T())/rho1
|
||||
+ heatTransferCoeff*he1/Cpv1/rho1
|
||||
- fvm::Sp(heatTransferCoeff/Cpv1/rho1, he1)
|
||||
|
||||
heatTransferCoeff*(thermo2.T() - thermo1.T())
|
||||
+ heatTransferCoeff*he1/Cpv1
|
||||
- fvm::Sp(heatTransferCoeff/Cpv1, he1)
|
||||
);
|
||||
|
||||
fvScalarMatrix he2Eqn
|
||||
(
|
||||
fvm::ddt(alpha2, he2) + fvm::div(alphaPhi2, he2)
|
||||
+ fvc::ddt(alpha2, K2) + fvc::div(alphaPhi2, K2)
|
||||
fvm::ddt(alpha2, rho2, he2) + fvm::div(alphaRhoPhi2, he2)
|
||||
- fvm::Sp(fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2), he2)
|
||||
|
||||
// Compressibity correction
|
||||
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), he2)
|
||||
- (fvc::ddt(alpha2) + fvc::div(alphaPhi2))*K2
|
||||
+ fvc::ddt(alpha2, rho2, K2) + fvc::div(alphaRhoPhi2, K2)
|
||||
- (fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2))*K2
|
||||
|
||||
+ (
|
||||
he2.name() == thermo2.phasePropertyName("e")
|
||||
? fvc::ddt(alpha2)*p + fvc::div(alphaPhi2, p)
|
||||
: -alpha2*dpdt
|
||||
)/rho2
|
||||
)
|
||||
|
||||
- fvm::laplacian
|
||||
(
|
||||
fvc::interpolate(alpha2)
|
||||
*fvc::interpolate(thermo2.alphaEff(phase2.turbulence().mut())),
|
||||
he2
|
||||
)
|
||||
|
||||
//***HGW- fvm::laplacian(alpha2*turbulence2->alphaEff(), he2)
|
||||
- fvm::laplacian(alpha2*phase2.turbulence().nuEff(), he2)
|
||||
==
|
||||
heatTransferCoeff*(thermo1.T() - thermo2.T())/rho2
|
||||
+ heatTransferCoeff*he2/Cpv2/rho2
|
||||
- fvm::Sp(heatTransferCoeff/Cpv2/rho2, he2)
|
||||
|
||||
heatTransferCoeff*(thermo1.T() - thermo2.T())
|
||||
+ heatTransferCoeff*he2/Cpv2
|
||||
- fvm::Sp(heatTransferCoeff/Cpv2, he2)
|
||||
);
|
||||
|
||||
he1Eqn.relax();
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
|
||||
-IphaseIncompressibleTurbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
||||
-IphaseCompressibleTurbulenceModels/lnInclude \
|
||||
-IinterfacialModels/lnInclude \
|
||||
-ItwoPhaseSystem/lnInclude \
|
||||
-Iaveraging
|
||||
@ -14,8 +15,8 @@ EXE_LIBS = \
|
||||
-lfluidThermophysicalModels \
|
||||
-lspecie \
|
||||
-lturbulenceModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lphaseIncompressibleTurbulenceModels \
|
||||
-lcompressibleTurbulenceModels \
|
||||
-lphaseCompressibleTurbulenceModels \
|
||||
-lincompressibleTransportModels \
|
||||
-lcompressibleTwoPhaseSystem \
|
||||
-lcompressibleEulerianInterfacialModels \
|
||||
|
||||
@ -2,8 +2,8 @@ mrfZones.correctBoundaryVelocity(U1);
|
||||
mrfZones.correctBoundaryVelocity(U2);
|
||||
mrfZones.correctBoundaryVelocity(U);
|
||||
|
||||
fvVectorMatrix U1Eqn(U1, U1.dimensions()*dimVol/dimTime);
|
||||
fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
|
||||
fvVectorMatrix U1Eqn(U1, rho1.dimensions()*U1.dimensions()*dimVol/dimTime);
|
||||
fvVectorMatrix U2Eqn(U2, rho2.dimensions()*U2.dimensions()*dimVol/dimTime);
|
||||
|
||||
volScalarField dragCoeff(fluid.dragCoeff());
|
||||
|
||||
@ -17,18 +17,18 @@ volScalarField dragCoeff(fluid.dragCoeff());
|
||||
{
|
||||
U1Eqn =
|
||||
(
|
||||
fvm::ddt(alpha1, U1)
|
||||
+ fvm::div(alphaPhi1, U1)
|
||||
- fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), U1)
|
||||
+ phase1.turbulence().divDevReff(U1)
|
||||
fvm::ddt(alpha1, rho1, U1)
|
||||
+ fvm::div(alphaRhoPhi1, U1)
|
||||
- fvm::Sp(fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1), U1)
|
||||
+ phase1.turbulence().divDevRhoReff(U1)
|
||||
==
|
||||
- fvm::Sp(dragCoeff/rho1, U1)
|
||||
- fvm::Sp(dragCoeff, U1)
|
||||
- (
|
||||
liftForce
|
||||
+ wallLubricationForce
|
||||
+ turbulentDispersionForce
|
||||
)/rho1
|
||||
- virtualMassCoeff/rho1
|
||||
)
|
||||
- virtualMassCoeff
|
||||
*(
|
||||
fvm::ddt(U1)
|
||||
+ fvm::div(phi1, U1)
|
||||
@ -36,25 +36,25 @@ volScalarField dragCoeff(fluid.dragCoeff());
|
||||
- DDtU2
|
||||
)
|
||||
);
|
||||
mrfZones.addCoriolis(alpha1 + virtualMassCoeff/rho1, U1Eqn);
|
||||
mrfZones.addCoriolis(alpha1*rho1 + virtualMassCoeff, U1Eqn);
|
||||
U1Eqn.relax();
|
||||
}
|
||||
|
||||
{
|
||||
U2Eqn =
|
||||
(
|
||||
fvm::ddt(alpha2, U2)
|
||||
+ fvm::div(alphaPhi2, U2)
|
||||
- fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), U2)
|
||||
+ phase2.turbulence().divDevReff(U2)
|
||||
fvm::ddt(alpha2, rho2, U2)
|
||||
+ fvm::div(alphaRhoPhi2, U2)
|
||||
- fvm::Sp(fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2), U2)
|
||||
+ phase2.turbulence().divDevRhoReff(U2)
|
||||
==
|
||||
- fvm::Sp(dragCoeff/rho2, U2)
|
||||
- fvm::Sp(dragCoeff, U2)
|
||||
+ (
|
||||
liftForce
|
||||
+ wallLubricationForce
|
||||
+ turbulentDispersionForce
|
||||
)/rho2
|
||||
- virtualMassCoeff/rho2
|
||||
)
|
||||
- virtualMassCoeff
|
||||
*(
|
||||
fvm::ddt(U2)
|
||||
+ fvm::div(phi2, U2)
|
||||
@ -62,7 +62,7 @@ volScalarField dragCoeff(fluid.dragCoeff());
|
||||
- DDtU1
|
||||
)
|
||||
);
|
||||
mrfZones.addCoriolis(alpha2 + virtualMassCoeff/rho2, U2Eqn);
|
||||
mrfZones.addCoriolis(alpha2*rho2 + virtualMassCoeff, U2Eqn);
|
||||
U2Eqn.relax();
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,11 +10,13 @@
|
||||
|
||||
volVectorField& U1 = phase1.U();
|
||||
surfaceScalarField& phi1 = phase1.phi();
|
||||
surfaceScalarField& alphaPhi1 = phase1.phiAlpha();
|
||||
surfaceScalarField& alphaPhi1 = phase1.alphaPhi();
|
||||
surfaceScalarField& alphaRhoPhi1 = phase1.alphaRhoPhi();
|
||||
|
||||
volVectorField& U2 = phase2.U();
|
||||
surfaceScalarField& phi2 = phase2.phi();
|
||||
surfaceScalarField& alphaPhi2 = phase2.phiAlpha();
|
||||
surfaceScalarField& alphaPhi2 = phase2.alphaPhi();
|
||||
surfaceScalarField& alphaRhoPhi2 = phase2.alphaRhoPhi();
|
||||
|
||||
surfaceScalarField& phi = fluid.phi();
|
||||
|
||||
@ -49,19 +51,6 @@
|
||||
fluid.U()
|
||||
);
|
||||
|
||||
volScalarField rho
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rho",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
fluid.rho()
|
||||
);
|
||||
|
||||
Info<< "Calculating field DDtU1 and DDtU2\n" << endl;
|
||||
|
||||
volVectorField DDtU1
|
||||
@ -91,7 +80,7 @@
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("zero", dimensionSet(0, 0, 1, 0, 0), 0.0)
|
||||
dimensionedScalar("zero", dimensionSet(-1, 3, 1, 0, 0), 0.0)
|
||||
);
|
||||
|
||||
volScalarField rAU2
|
||||
@ -105,7 +94,7 @@
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("zero", dimensionSet(0, 0, 1, 0, 0), 0.0)
|
||||
dimensionedScalar("zero", dimensionSet(-1, 3, 1, 0, 0), 0.0)
|
||||
);
|
||||
|
||||
label pRefCell = 0;
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/transportModel \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
||||
-I../twoPhaseSystem/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
|
||||
@ -26,7 +26,7 @@ License
|
||||
#include "Burns.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
@ -26,7 +26,7 @@ License
|
||||
#include "Gosman.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
#include "dragModel.H"
|
||||
|
||||
@ -26,7 +26,7 @@ License
|
||||
#include "constantTurbulentDispersionCoefficient.H"
|
||||
#include "phasePair.H"
|
||||
#include "fvc.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -73,7 +73,7 @@ Foam::tmp<Foam::volVectorField>
|
||||
Foam::turbulentDispersionModels::constantTurbulentDispersionCoefficient::
|
||||
F() const
|
||||
{
|
||||
return
|
||||
return
|
||||
- Ctd_
|
||||
*pair_.dispersed()
|
||||
*pair_.continuous().rho()
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
rAU1 = 1.0/U1Eqn.A();
|
||||
rAU2 = 1.0/U2Eqn.A();
|
||||
|
||||
surfaceScalarField rAlphaAU1f(fvc::interpolate(alpha1*rAU1));
|
||||
surfaceScalarField rAlphaAU2f(fvc::interpolate(alpha2*rAU2));
|
||||
surfaceScalarField rAlphaAU1f(fvc::interpolate(alpha1*rho1*rAU1));
|
||||
surfaceScalarField rAlphaAU2f(fvc::interpolate(alpha2*rho2*rAU2));
|
||||
|
||||
volVectorField HbyA1
|
||||
(
|
||||
@ -31,7 +31,7 @@
|
||||
surfaceScalarField phiP1
|
||||
(
|
||||
"phiP1",
|
||||
fvc::interpolate((1.0/rho1)*rAU1*phase1.turbulence().pPrime())
|
||||
fvc::interpolate(rAU1*phase1.turbulence().pPrime())
|
||||
*fvc::snGrad(alpha1)*mesh.magSf()
|
||||
);
|
||||
phiP1.boundaryField() == 0;
|
||||
@ -40,7 +40,7 @@
|
||||
surfaceScalarField phiP2
|
||||
(
|
||||
"phiP2",
|
||||
fvc::interpolate((1.0/rho2)*rAU2*phase2.turbulence().pPrime())
|
||||
fvc::interpolate(rAU2*phase2.turbulence().pPrime())
|
||||
*fvc::snGrad(alpha2)*mesh.magSf()
|
||||
);
|
||||
phiP2.boundaryField() == 0;
|
||||
@ -61,14 +61,14 @@
|
||||
|
||||
phiHbyA1 +=
|
||||
(
|
||||
fvc::interpolate((1.0/rho1)*rAU1*dragCoeff)*phi2
|
||||
fvc::interpolate(rAU1*dragCoeff)*phi2
|
||||
- phiP1
|
||||
+ rAlphaAU1f*(g & mesh.Sf())
|
||||
);
|
||||
|
||||
phiHbyA2 +=
|
||||
(
|
||||
fvc::interpolate((1.0/rho2)*rAU2*dragCoeff)*phi1
|
||||
fvc::interpolate(rAU2*dragCoeff)*phi1
|
||||
- phiP2
|
||||
+ rAlphaAU2f*(g & mesh.Sf())
|
||||
);
|
||||
@ -82,8 +82,8 @@
|
||||
|
||||
surfaceScalarField phiHbyA("phiHbyA", alpha1f*phiHbyA1 + alpha2f*phiHbyA2);
|
||||
|
||||
HbyA1 += (1.0/rho1)*rAU1*dragCoeff*U2;
|
||||
HbyA2 += (1.0/rho2)*rAU2*dragCoeff*U1;
|
||||
HbyA1 += rAU1*dragCoeff*U2;
|
||||
HbyA2 += rAU2*dragCoeff*U1;
|
||||
|
||||
surfaceScalarField rAUf
|
||||
(
|
||||
@ -129,7 +129,7 @@
|
||||
|
||||
pEqnComp1 =
|
||||
(
|
||||
fvc::ddt(alpha1, rho1) + fvc::div(alphaPhi1, rho1)
|
||||
fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1)
|
||||
- fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
|
||||
)/rho1
|
||||
+ (alpha1/rho1)*correction
|
||||
@ -142,7 +142,7 @@
|
||||
|
||||
pEqnComp2 =
|
||||
(
|
||||
fvc::ddt(alpha2, rho2) + fvc::div(alphaPhi2, rho2)
|
||||
fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2)
|
||||
- fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2)
|
||||
)/rho2
|
||||
+ (alpha2/rho2)*correction
|
||||
@ -157,14 +157,14 @@
|
||||
{
|
||||
pEqnComp1 =
|
||||
(
|
||||
fvc::ddt(alpha1, rho1) + fvc::div(alphaPhi1, rho1)
|
||||
fvc::ddt(alpha1, rho1) + fvc::div(alphaRhoPhi1)
|
||||
- fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1)
|
||||
)/rho1
|
||||
+ (alpha1*psi1/rho1)*correction(fvm::ddt(p));
|
||||
|
||||
pEqnComp2 =
|
||||
(
|
||||
fvc::ddt(alpha2, rho2) + fvc::div(alphaPhi2, rho2)
|
||||
fvc::ddt(alpha2, rho2) + fvc::div(alphaRhoPhi2)
|
||||
- fvc::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), rho2)
|
||||
)/rho2
|
||||
+ (alpha2*psi2/rho2)*correction(fvm::ddt(p));
|
||||
@ -209,8 +209,8 @@
|
||||
|
||||
fluid.dgdt() =
|
||||
(
|
||||
pos(alpha2)*(pEqnComp2 & p)/max(alpha2, scalar(1e-3))
|
||||
- pos(alpha1)*(pEqnComp1 & p)/max(alpha1, scalar(1e-3))
|
||||
alpha1*(pEqnComp2 & p)
|
||||
- alpha2*(pEqnComp1 & p)
|
||||
);
|
||||
|
||||
p.relax();
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
phaseIncompressibleTurbulenceModels.C
|
||||
phaseCompressibleTurbulenceModels.C
|
||||
phasePressureModel/phasePressureModel.C
|
||||
|
||||
kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
|
||||
@ -35,4 +35,4 @@ kineticTheoryModels/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C
|
||||
kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleTheta/JohnsonJacksonParticleThetaFvPatchScalarField.C
|
||||
kineticTheoryModels/derivedFvPatchFields/JohnsonJacksonParticleSlip/JohnsonJacksonParticleSlipFvPatchVectorField.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libphaseIncompressibleTurbulenceModels
|
||||
LIB = $(FOAM_LIBBIN)/libphaseCompressibleTurbulenceModels
|
||||
@ -1,10 +1,11 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/foam/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/transportModel \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
|
||||
-I../twoPhaseSystem/lnInclude \
|
||||
-I../interfacialModels/lnInclude
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -80,7 +80,7 @@ Foam::kineticTheoryModels::conductivityModels::Gidaspow::kappa
|
||||
{
|
||||
const scalar sqrtPi = sqrt(constant::mathematical::pi);
|
||||
|
||||
return da*sqrt(Theta)*
|
||||
return rho1*da*sqrt(Theta)*
|
||||
(
|
||||
2.0*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
|
||||
+ (9.0/8.0)*sqrtPi*g0*0.5*(1.0 + e)*sqr(alpha1)
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -88,7 +88,7 @@ Foam::kineticTheoryModels::conductivityModels::HrenyaSinclair::kappa
|
||||
scalar(1) + da/(6.0*sqrt(2.0)*(alpha1 + scalar(1.0e-5)))/L_
|
||||
);
|
||||
|
||||
return da*sqrt(Theta)*
|
||||
return rho1*da*sqrt(Theta)*
|
||||
(
|
||||
2.0*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
|
||||
+ (9.0/8.0)*sqrtPi*g0*0.25*sqr(1.0 + e)*(2.0*e - 1.0)*sqr(alpha1)
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -80,7 +80,7 @@ Foam::kineticTheoryModels::conductivityModels::Syamlal::kappa
|
||||
{
|
||||
const scalar sqrtPi = sqrt(constant::mathematical::pi);
|
||||
|
||||
return da*sqrt(Theta)*
|
||||
return rho1*da*sqrt(Theta)*
|
||||
(
|
||||
2.0*sqr(alpha1)*g0*(1.0 + e)/sqrtPi
|
||||
+ (9.0/8.0)*sqrtPi*g0*0.25*sqr(1.0 + e)*(2.0*e - 1.0)*sqr(alpha1)
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -32,22 +32,22 @@ License
|
||||
Foam::RASModels::kineticTheoryModel::kineticTheoryModel
|
||||
(
|
||||
const volScalarField& alpha,
|
||||
const geometricOneField& rho,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& alphaPhi,
|
||||
const surfaceScalarField& alphaRhoPhi,
|
||||
const surfaceScalarField& phi,
|
||||
const transportModel& phase,
|
||||
const word& propertiesName,
|
||||
const word& type
|
||||
)
|
||||
:
|
||||
eddyViscosity<RASModel<PhaseIncompressibleTurbulenceModel<phaseModel> > >
|
||||
eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > >
|
||||
(
|
||||
type,
|
||||
alpha,
|
||||
rho,
|
||||
U,
|
||||
alphaPhi,
|
||||
alphaRhoPhi,
|
||||
phi,
|
||||
phase,
|
||||
propertiesName
|
||||
@ -159,7 +159,7 @@ Foam::RASModels::kineticTheoryModel::kineticTheoryModel
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U.mesh(),
|
||||
dimensionedScalar("zero", dimensionSet(0, 2, -1, 0, 0), 0.0)
|
||||
dimensionedScalar("zero", dimensionSet(1, -1, -1, 0, 0), 0.0)
|
||||
)
|
||||
{
|
||||
if (type == typeName)
|
||||
@ -183,7 +183,7 @@ bool Foam::RASModels::kineticTheoryModel::read()
|
||||
(
|
||||
eddyViscosity
|
||||
<
|
||||
RASModel<PhaseIncompressibleTurbulenceModel<phaseModel> >
|
||||
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
|
||||
>::read()
|
||||
)
|
||||
{
|
||||
@ -383,7 +383,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
// Local references
|
||||
volScalarField alpha(max(this->alpha_, scalar(0)));
|
||||
const volScalarField& rho = phase_.rho();
|
||||
const surfaceScalarField& alphaPhi = this->alphaPhi_;
|
||||
const surfaceScalarField& alphaRhoPhi = this->alphaRhoPhi_;
|
||||
const volVectorField& U = this->U_;
|
||||
const volVectorField& Uc_ = phase_.fluid().otherPhase(phase_).U();
|
||||
|
||||
@ -403,7 +403,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
|
||||
if (!equilibrium_)
|
||||
{
|
||||
// particle viscosity (Table 3.2, p.47)
|
||||
// Particle viscosity (Table 3.2, p.47)
|
||||
nut_ = viscosityModel_->nu(alpha, Theta_, gs0_, rho, da, e_);
|
||||
|
||||
volScalarField ThetaSqrt(sqrt(Theta_));
|
||||
@ -412,31 +412,29 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
lambda_ = (4.0/3.0)*sqr(alpha)*da*gs0_*(1.0 + e_)*ThetaSqrt/sqrtPi;
|
||||
|
||||
// Stress tensor, Definitions, Table 3.1, p. 43
|
||||
volSymmTensorField tau(2.0*nut_*D + (lambda_ - (2.0/3.0)*nut_)*tr(D)*I);
|
||||
volSymmTensorField tau
|
||||
(
|
||||
rho*(2.0*nut_*D + (lambda_ - (2.0/3.0)*nut_)*tr(D)*I)
|
||||
);
|
||||
|
||||
// Dissipation (Eq. 3.24, p.50)
|
||||
volScalarField gammaCoeff
|
||||
(
|
||||
12.0*(1.0 - sqr(e_))
|
||||
*max(sqr(alpha), residualAlpha_)
|
||||
*gs0_*(1.0/da)*ThetaSqrt/sqrtPi
|
||||
*rho*gs0_*(1.0/da)*ThetaSqrt/sqrtPi
|
||||
);
|
||||
|
||||
// Drag
|
||||
volScalarField magUr(mag(U - Uc_));
|
||||
|
||||
volScalarField alpha2Prim
|
||||
(
|
||||
phase_.fluid().drag(phase_).K()/rho
|
||||
);
|
||||
volScalarField beta(phase_.fluid().drag(phase_).K());
|
||||
|
||||
// Eq. 3.25, p. 50 Js = J1 - J2
|
||||
volScalarField J1(3.0*alpha2Prim);
|
||||
volScalarField J1(3.0*beta);
|
||||
volScalarField J2
|
||||
(
|
||||
0.25*sqr(alpha2Prim)*da*sqr(magUr)
|
||||
0.25*sqr(beta)*da*magSqr(U - Uc_)
|
||||
/(
|
||||
max(alpha, residualAlpha_)
|
||||
max(alpha, residualAlpha_)*rho
|
||||
*sqrtPi*(ThetaSqrt + ThetaSmallSqrt)
|
||||
)
|
||||
);
|
||||
@ -450,7 +448,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
gs0_,
|
||||
rho,
|
||||
e_
|
||||
)/rho
|
||||
)
|
||||
);
|
||||
|
||||
// 'thermal' conductivity (Table 3.3, p. 49)
|
||||
@ -464,9 +462,9 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
(
|
||||
1.5*
|
||||
(
|
||||
fvm::ddt(alpha, Theta_)
|
||||
+ fvm::div(alphaPhi, Theta_)
|
||||
- fvc::Sp(fvc::ddt(alpha) + fvc::div(alphaPhi), Theta_)
|
||||
fvm::ddt(alpha, rho, Theta_)
|
||||
+ fvm::div(alphaRhoPhi, Theta_)
|
||||
- fvc::Sp(fvc::ddt(alpha, rho) + fvc::div(alphaRhoPhi), Theta_)
|
||||
)
|
||||
- fvm::laplacian(kappa_, Theta_, "laplacian(kappa, Theta)")
|
||||
==
|
||||
@ -489,7 +487,7 @@ void Foam::RASModels::kineticTheoryModel::correct()
|
||||
(
|
||||
0.5*da*rho*
|
||||
(
|
||||
(sqrtPi/(3.0*(3.0-e_)))
|
||||
(sqrtPi/(3.0*(3.0 - e_)))
|
||||
*(1.0 + 0.4*(1.0 + e_)*(3.0*e_ - 1.0)*alpha*gs0_)
|
||||
+1.6*alpha*gs0_*(1.0 + e_)/sqrtPi
|
||||
)
|
||||
@ -47,7 +47,7 @@ SourceFiles
|
||||
|
||||
#include "RASModel.H"
|
||||
#include "eddyViscosity.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "phaseModel.H"
|
||||
#include "dragModel.H"
|
||||
#include "viscosityModel.H"
|
||||
@ -72,7 +72,7 @@ class kineticTheoryModel
|
||||
:
|
||||
public eddyViscosity
|
||||
<
|
||||
RASModel<PhaseIncompressibleTurbulenceModel<phaseModel> >
|
||||
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
|
||||
>
|
||||
{
|
||||
// Private data
|
||||
@ -159,9 +159,9 @@ public:
|
||||
kineticTheoryModel
|
||||
(
|
||||
const volScalarField& alpha,
|
||||
const geometricOneField& rho,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& alphaPhi,
|
||||
const surfaceScalarField& alphaRhoPhi,
|
||||
const surfaceScalarField& phi,
|
||||
const phaseModel& transport,
|
||||
const word& propertiesName = turbulenceModel::propertiesName,
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -23,7 +23,7 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "phaseModel.H"
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
@ -36,19 +36,19 @@ License
|
||||
makeBaseTurbulenceModel
|
||||
(
|
||||
volScalarField,
|
||||
geometricOneField,
|
||||
incompressibleTurbulenceModel,
|
||||
PhaseIncompressibleTurbulenceModel,
|
||||
volScalarField,
|
||||
compressibleTurbulenceModel,
|
||||
PhaseCompressibleTurbulenceModel,
|
||||
phaseModel
|
||||
);
|
||||
|
||||
#define makeRASModel(Type) \
|
||||
makeTemplatedTurbulenceModel \
|
||||
(phaseModelPhaseIncompressibleTurbulenceModel, RAS, Type)
|
||||
(phaseModelPhaseCompressibleTurbulenceModel, RAS, Type)
|
||||
|
||||
#define makeLESModel(Type) \
|
||||
makeTemplatedTurbulenceModel \
|
||||
(phaseModelPhaseIncompressibleTurbulenceModel, LES, Type)
|
||||
(phaseModelPhaseCompressibleTurbulenceModel, LES, Type)
|
||||
|
||||
#include "kEpsilon.H"
|
||||
makeRASModel(kEpsilon);
|
||||
@ -79,11 +79,11 @@ makeLESModel(continuousGasKEqn);
|
||||
|
||||
#include "kineticTheoryModel.H"
|
||||
makeTurbulenceModel
|
||||
(phaseModelPhaseIncompressibleTurbulenceModel, RAS, kineticTheoryModel);
|
||||
(phaseModelPhaseCompressibleTurbulenceModel, RAS, kineticTheoryModel);
|
||||
|
||||
#include "phasePressureModel.H"
|
||||
makeTurbulenceModel
|
||||
(phaseModelPhaseIncompressibleTurbulenceModel, RAS, phasePressureModel);
|
||||
(phaseModelPhaseCompressibleTurbulenceModel, RAS, phasePressureModel);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -31,22 +31,22 @@ License
|
||||
Foam::RASModels::phasePressureModel::phasePressureModel
|
||||
(
|
||||
const volScalarField& alpha,
|
||||
const geometricOneField& rho,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& alphaPhi,
|
||||
const surfaceScalarField& alphaRhoPhi,
|
||||
const surfaceScalarField& phi,
|
||||
const transportModel& phase,
|
||||
const word& propertiesName,
|
||||
const word& type
|
||||
)
|
||||
:
|
||||
eddyViscosity<RASModel<PhaseIncompressibleTurbulenceModel<phaseModel> > >
|
||||
eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > >
|
||||
(
|
||||
type,
|
||||
alpha,
|
||||
rho,
|
||||
U,
|
||||
alphaPhi,
|
||||
alphaRhoPhi,
|
||||
phi,
|
||||
phase,
|
||||
propertiesName
|
||||
@ -87,7 +87,7 @@ bool Foam::RASModels::phasePressureModel::read()
|
||||
(
|
||||
eddyViscosity
|
||||
<
|
||||
RASModel<PhaseIncompressibleTurbulenceModel<phaseModel> >
|
||||
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
|
||||
>::read()
|
||||
)
|
||||
{
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -53,7 +53,7 @@ SourceFiles
|
||||
|
||||
#include "RASModel.H"
|
||||
#include "eddyViscosity.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "phaseModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -71,7 +71,7 @@ class phasePressureModel
|
||||
:
|
||||
public eddyViscosity
|
||||
<
|
||||
RASModel<PhaseIncompressibleTurbulenceModel<phaseModel> >
|
||||
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
|
||||
>
|
||||
{
|
||||
// Private data
|
||||
@ -120,9 +120,9 @@ public:
|
||||
phasePressureModel
|
||||
(
|
||||
const volScalarField& alpha,
|
||||
const geometricOneField& rho,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& alphaPhi,
|
||||
const surfaceScalarField& alphaRhoPhi,
|
||||
const surfaceScalarField& phi,
|
||||
const phaseModel& transport,
|
||||
const word& propertiesName = turbulenceModel::propertiesName,
|
||||
@ -32,7 +32,7 @@ Description
|
||||
|
||||
#include "fvCFD.H"
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "pimpleControl.H"
|
||||
#include "IOMRFZoneList.H"
|
||||
#include "fixedFluxPressureFvPatchScalarField.H"
|
||||
@ -72,7 +72,6 @@ int main(int argc, char *argv[])
|
||||
while (pimple.loop())
|
||||
{
|
||||
fluid.solve();
|
||||
rho = fluid.rho();
|
||||
fluid.correct();
|
||||
|
||||
#include "EEqns.H"
|
||||
|
||||
@ -2,11 +2,12 @@ EXE_INC = \
|
||||
-I../twoPhaseSystem \
|
||||
-I../interfacialModels/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
-lincompressibleTransportModels \
|
||||
|
||||
@ -146,7 +146,7 @@ void Foam::diameterModels::IATE::correct()
|
||||
residualAlpha_
|
||||
)
|
||||
)
|
||||
*(fvc::ddt(phase_) + fvc::div(phase_.phiAlpha()))
|
||||
*(fvc::ddt(phase_) + fvc::div(phase_.alphaPhi()))
|
||||
);
|
||||
|
||||
// Accumulate the run-time selectable sources
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -26,7 +26,7 @@ License
|
||||
#include "IATEsource.H"
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "fvMatrix.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "uniformDimensionedFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -27,7 +27,7 @@ License
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "diameterModel.H"
|
||||
#include "fvMatrix.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "dragModel.H"
|
||||
#include "heatTransferModel.H"
|
||||
#include "fixedValueFvPatchFields.H"
|
||||
@ -77,7 +77,7 @@ Foam::phaseModel::phaseModel
|
||||
),
|
||||
fluid.mesh()
|
||||
),
|
||||
phiAlpha_
|
||||
alphaPhi_
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
@ -87,6 +87,17 @@ Foam::phaseModel::phaseModel
|
||||
),
|
||||
fluid.mesh(),
|
||||
dimensionedScalar("0", dimensionSet(0, 3, -1, 0, 0), 0)
|
||||
),
|
||||
alphaRhoPhi_
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName("alphaRhoPhi", name_),
|
||||
fluid.mesh().time().timeName(),
|
||||
fluid.mesh()
|
||||
),
|
||||
fluid.mesh(),
|
||||
dimensionedScalar("0", dimensionSet(1, 0, -1, 0, 0), 0)
|
||||
)
|
||||
{
|
||||
thermo_->validate("phaseModel " + name_, "h", "e");
|
||||
@ -169,11 +180,12 @@ Foam::phaseModel::phaseModel
|
||||
);
|
||||
|
||||
turbulence_ =
|
||||
PhaseIncompressibleTurbulenceModel<phaseModel>::New
|
||||
PhaseCompressibleTurbulenceModel<phaseModel>::New
|
||||
(
|
||||
*this,
|
||||
thermo_->rho(),
|
||||
U_,
|
||||
phiAlpha_,
|
||||
alphaRhoPhi_,
|
||||
phi(),
|
||||
*this
|
||||
);
|
||||
@ -199,13 +211,13 @@ Foam::tmp<Foam::volScalarField> Foam::phaseModel::d() const
|
||||
return dPtr_().d();
|
||||
}
|
||||
|
||||
Foam::PhaseIncompressibleTurbulenceModel<Foam::phaseModel>&
|
||||
Foam::PhaseCompressibleTurbulenceModel<Foam::phaseModel>&
|
||||
Foam::phaseModel::turbulence()
|
||||
{
|
||||
return turbulence_();
|
||||
}
|
||||
|
||||
const Foam::PhaseIncompressibleTurbulenceModel<Foam::phaseModel>&
|
||||
const Foam::PhaseCompressibleTurbulenceModel<Foam::phaseModel>&
|
||||
Foam::phaseModel::turbulence() const
|
||||
{
|
||||
return turbulence_();
|
||||
|
||||
@ -49,7 +49,7 @@ class twoPhaseSystem;
|
||||
class diameterModel;
|
||||
|
||||
template<class Phase>
|
||||
class PhaseIncompressibleTurbulenceModel;
|
||||
class PhaseCompressibleTurbulenceModel;
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
@ -81,7 +81,10 @@ class phaseModel
|
||||
volVectorField U_;
|
||||
|
||||
//- Volumetric flux of the phase
|
||||
surfaceScalarField phiAlpha_;
|
||||
surfaceScalarField alphaPhi_;
|
||||
|
||||
//- Mass flux of the phase
|
||||
surfaceScalarField alphaRhoPhi_;
|
||||
|
||||
//- Volumetric flux of the phase
|
||||
autoPtr<surfaceScalarField> phiPtr_;
|
||||
@ -90,7 +93,7 @@ class phaseModel
|
||||
autoPtr<diameterModel> dPtr_;
|
||||
|
||||
//- turbulence model
|
||||
autoPtr<PhaseIncompressibleTurbulenceModel<phaseModel> > turbulence_;
|
||||
autoPtr<PhaseCompressibleTurbulenceModel<phaseModel> > turbulence_;
|
||||
|
||||
|
||||
public:
|
||||
@ -137,12 +140,12 @@ public:
|
||||
tmp<volScalarField> d() const;
|
||||
|
||||
//- Return the turbulence model
|
||||
const PhaseIncompressibleTurbulenceModel<phaseModel>&
|
||||
const PhaseCompressibleTurbulenceModel<phaseModel>&
|
||||
turbulence() const;
|
||||
|
||||
//- Return non-const access to the turbulence model
|
||||
// for correction
|
||||
PhaseIncompressibleTurbulenceModel<phaseModel>&
|
||||
PhaseCompressibleTurbulenceModel<phaseModel>&
|
||||
turbulence();
|
||||
|
||||
//- Return the thermophysical model
|
||||
@ -170,6 +173,18 @@ public:
|
||||
return thermo_->nu(patchi);
|
||||
}
|
||||
|
||||
//- Return the laminar dynamic viscosity
|
||||
tmp<volScalarField> mu() const
|
||||
{
|
||||
return thermo_->mu();
|
||||
}
|
||||
|
||||
//- Return the laminar dynamic viscosity for patch
|
||||
tmp<scalarField> mu(const label patchi) const
|
||||
{
|
||||
return thermo_->mu(patchi);
|
||||
}
|
||||
|
||||
//- Return the thermal conductivity
|
||||
tmp<volScalarField> kappa() const
|
||||
{
|
||||
@ -214,15 +229,27 @@ public:
|
||||
}
|
||||
|
||||
//- Return the volumetric flux of the phase
|
||||
const surfaceScalarField& phiAlpha() const
|
||||
const surfaceScalarField& alphaPhi() const
|
||||
{
|
||||
return phiAlpha_;
|
||||
return alphaPhi_;
|
||||
}
|
||||
|
||||
//- Return non-const access to the volumetric flux of the phase
|
||||
surfaceScalarField& phiAlpha()
|
||||
surfaceScalarField& alphaPhi()
|
||||
{
|
||||
return phiAlpha_;
|
||||
return alphaPhi_;
|
||||
}
|
||||
|
||||
//- Return the mass flux of the phase
|
||||
const surfaceScalarField& alphaRhoPhi() const
|
||||
{
|
||||
return alphaRhoPhi_;
|
||||
}
|
||||
|
||||
//- Return non-const access to the mass flux of the phase
|
||||
surfaceScalarField& alphaRhoPhi()
|
||||
{
|
||||
return alphaRhoPhi_;
|
||||
}
|
||||
|
||||
//- Correct the phase properties
|
||||
|
||||
@ -24,7 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "twoPhaseSystem.H"
|
||||
#include "PhaseIncompressibleTurbulenceModel.H"
|
||||
#include "PhaseCompressibleTurbulenceModel.H"
|
||||
#include "BlendedInterfacialModel.H"
|
||||
#include "dragModel.H"
|
||||
#include "virtualMassModel.H"
|
||||
@ -104,9 +104,12 @@ Foam::twoPhaseSystem::twoPhaseSystem
|
||||
(
|
||||
"dgdt",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
pos(phase2_)*fvc::div(phi_)/max(phase2_, scalar(0.0001))
|
||||
mesh,
|
||||
dimensionedScalar("dgdt", dimless/dimTime, 0)
|
||||
),
|
||||
|
||||
yWall_
|
||||
@ -124,8 +127,6 @@ Foam::twoPhaseSystem::twoPhaseSystem
|
||||
|
||||
|
||||
// Blending
|
||||
// ~~~~~~~~
|
||||
|
||||
forAllConstIter(dictionary, subDict("blending"), iter)
|
||||
{
|
||||
blendingMethods_.insert
|
||||
@ -141,7 +142,6 @@ Foam::twoPhaseSystem::twoPhaseSystem
|
||||
|
||||
|
||||
// Pairs
|
||||
// ~~~~~
|
||||
|
||||
phasePair::scalarTable sigmaTable(lookup("sigma"));
|
||||
phasePair::dictTable aspectRatioTable(lookup("aspectRatio"));
|
||||
@ -183,7 +183,6 @@ Foam::twoPhaseSystem::twoPhaseSystem
|
||||
|
||||
|
||||
// Models
|
||||
// ~~~~~~
|
||||
|
||||
drag_.set
|
||||
(
|
||||
@ -396,10 +395,8 @@ void Foam::twoPhaseSystem::solve()
|
||||
);
|
||||
|
||||
pPrimeByA =
|
||||
fvc::interpolate((1.0/phase1_.rho())
|
||||
*rAU1*phase1_.turbulence().pPrime())
|
||||
+ fvc::interpolate((1.0/phase2_.rho())
|
||||
*rAU2*phase2_.turbulence().pPrime());
|
||||
fvc::interpolate(rAU1*phase1_.turbulence().pPrime())
|
||||
+ fvc::interpolate(rAU2*phase2_.turbulence().pPrime());
|
||||
|
||||
surfaceScalarField phiP
|
||||
(
|
||||
@ -439,67 +436,90 @@ void Foam::twoPhaseSystem::solve()
|
||||
|
||||
forAll(dgdt_, celli)
|
||||
{
|
||||
if (dgdt_[celli] > 0.0 && alpha1[celli] > 0.0)
|
||||
if (dgdt_[celli] > 0.0)
|
||||
{
|
||||
Sp[celli] -= dgdt_[celli]*alpha1[celli];
|
||||
Su[celli] += dgdt_[celli]*alpha1[celli];
|
||||
Sp[celli] -= dgdt_[celli]/max(1.0 - alpha1[celli], 1e-4);
|
||||
Su[celli] += dgdt_[celli]/max(1.0 - alpha1[celli], 1e-4);
|
||||
}
|
||||
else if (dgdt_[celli] < 0.0 && alpha1[celli] < 1.0)
|
||||
else if (dgdt_[celli] < 0.0)
|
||||
{
|
||||
Sp[celli] += dgdt_[celli]*(1.0 - alpha1[celli]);
|
||||
Sp[celli] += dgdt_[celli]/max(alpha1[celli], 1e-4);
|
||||
}
|
||||
}
|
||||
|
||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||
if (nAlphaSubCycles > 1)
|
||||
{
|
||||
phase1_.phiAlpha() =
|
||||
dimensionedScalar("0", phase1_.phiAlpha().dimensions(), 0);
|
||||
}
|
||||
|
||||
for
|
||||
surfaceScalarField alphaPhic1
|
||||
(
|
||||
subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
|
||||
!(++alphaSubCycle).end();
|
||||
)
|
||||
{
|
||||
surfaceScalarField alphaPhic1
|
||||
fvc::flux
|
||||
(
|
||||
fvc::flux
|
||||
(
|
||||
phic,
|
||||
alpha1,
|
||||
alphaScheme
|
||||
)
|
||||
+ fvc::flux
|
||||
(
|
||||
-fvc::flux(-phir, scalar(1) - alpha1, alpharScheme),
|
||||
alpha1,
|
||||
alpharScheme
|
||||
)
|
||||
);
|
||||
phic,
|
||||
alpha1,
|
||||
alphaScheme
|
||||
)
|
||||
+ fvc::flux
|
||||
(
|
||||
-fvc::flux(-phir, scalar(1) - alpha1, alpharScheme),
|
||||
alpha1,
|
||||
alpharScheme
|
||||
)
|
||||
);
|
||||
|
||||
// Ensure that the flux at inflow BCs is preserved
|
||||
forAll(alphaPhic1.boundaryField(), patchi)
|
||||
// Ensure that the flux at inflow BCs is preserved
|
||||
forAll(alphaPhic1.boundaryField(), patchi)
|
||||
{
|
||||
fvsPatchScalarField& alphaPhic1p =
|
||||
alphaPhic1.boundaryField()[patchi];
|
||||
|
||||
if (!alphaPhic1p.coupled())
|
||||
{
|
||||
fvsPatchScalarField& alphaPhic1p =
|
||||
alphaPhic1.boundaryField()[patchi];
|
||||
const scalarField& phi1p = phi1.boundaryField()[patchi];
|
||||
const scalarField& alpha1p = alpha1.boundaryField()[patchi];
|
||||
|
||||
if (!alphaPhic1p.coupled())
|
||||
forAll(alphaPhic1p, facei)
|
||||
{
|
||||
const scalarField& phi1p = phi1.boundaryField()[patchi];
|
||||
const scalarField& alpha1p = alpha1.boundaryField()[patchi];
|
||||
|
||||
forAll(alphaPhic1p, facei)
|
||||
if (phi1p[facei] < 0)
|
||||
{
|
||||
if (phi1p[facei] < 0)
|
||||
{
|
||||
alphaPhic1p[facei] = alpha1p[facei]*phi1p[facei];
|
||||
}
|
||||
alphaPhic1p[facei] = alpha1p[facei]*phi1p[facei];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nAlphaSubCycles > 1)
|
||||
{
|
||||
for
|
||||
(
|
||||
subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles);
|
||||
!(++alphaSubCycle).end();
|
||||
)
|
||||
{
|
||||
surfaceScalarField alphaPhic10(alphaPhic1);
|
||||
|
||||
MULES::explicitSolve
|
||||
(
|
||||
geometricOneField(),
|
||||
alpha1,
|
||||
phi_,
|
||||
alphaPhic10,
|
||||
(alphaSubCycle.index()*Sp)(),
|
||||
(Su - (alphaSubCycle.index() - 1)*Sp*alpha1)(),
|
||||
phase1_.alphaMax(),
|
||||
0
|
||||
);
|
||||
|
||||
if (alphaSubCycle.index() == 1)
|
||||
{
|
||||
phase1_.alphaPhi() = alphaPhic10;
|
||||
}
|
||||
else
|
||||
{
|
||||
phase1_.alphaPhi() += alphaPhic10;
|
||||
}
|
||||
}
|
||||
|
||||
phase1_.alphaPhi() /= nAlphaSubCycles;
|
||||
}
|
||||
else
|
||||
{
|
||||
MULES::explicitSolve
|
||||
(
|
||||
geometricOneField(),
|
||||
@ -512,14 +532,7 @@ void Foam::twoPhaseSystem::solve()
|
||||
0
|
||||
);
|
||||
|
||||
if (nAlphaSubCycles > 1)
|
||||
{
|
||||
phase1_.phiAlpha() += (runTime.deltaT()/totalDeltaT)*alphaPhic1;
|
||||
}
|
||||
else
|
||||
{
|
||||
phase1_.phiAlpha() = alphaPhic1;
|
||||
}
|
||||
phase1_.alphaPhi() = alphaPhic1;
|
||||
}
|
||||
|
||||
if (implicitPhasePressure)
|
||||
@ -527,17 +540,22 @@ void Foam::twoPhaseSystem::solve()
|
||||
fvScalarMatrix alpha1Eqn
|
||||
(
|
||||
fvm::ddt(alpha1) - fvc::ddt(alpha1)
|
||||
- fvm::laplacian(alpha1f*pPrimeByA, alpha1, "bounded")
|
||||
- fvm::laplacian(alpha1f*pPrimeByA(), alpha1, "bounded")
|
||||
);
|
||||
|
||||
alpha1Eqn.relax();
|
||||
alpha1Eqn.solve();
|
||||
|
||||
phase1_.phiAlpha() += alpha1Eqn.flux();
|
||||
phase1_.alphaPhi() += alpha1Eqn.flux();
|
||||
}
|
||||
|
||||
phase2_.phiAlpha() = phi_ - phase1_.phiAlpha();
|
||||
phase1_.alphaRhoPhi() =
|
||||
fvc::interpolate(phase1_.rho())*phase1_.alphaPhi();
|
||||
|
||||
phase2_.alphaPhi() = phi_ - phase1_.alphaPhi();
|
||||
alpha2 = scalar(1) - alpha1;
|
||||
phase2_.alphaRhoPhi() =
|
||||
fvc::interpolate(phase2_.rho())*phase2_.alphaPhi();
|
||||
|
||||
Info<< alpha1.name() << " volume fraction = "
|
||||
<< alpha1.weightedAverage(mesh_.V()).value()
|
||||
|
||||
Reference in New Issue
Block a user