mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
compressibleTwoPhaseEulerFoam: Completed update to energy equations and tutorials
This commit is contained in:
@ -14,14 +14,18 @@
|
||||
volScalarField& he1 = thermo1.he();
|
||||
volScalarField& he2 = thermo2.he();
|
||||
|
||||
volScalarField Cpv1(thermo1.Cpv());
|
||||
volScalarField Cpv2(thermo2.Cpv());
|
||||
|
||||
fvScalarMatrix he1Eqn
|
||||
(
|
||||
fvm::ddt(alpha1, he1)
|
||||
+ fvm::div(alphaPhi1, he1)
|
||||
- fvm::laplacian(k1, he1)
|
||||
==
|
||||
heatTransferCoeff*(thermo1.he(p, thermo2.T())/thermo1.Cp())/rho1
|
||||
- fvm::Sp(heatTransferCoeff/thermo1.Cp()/rho1, he1)
|
||||
heatTransferCoeff*(thermo2.T() - thermo1.T())/rho1
|
||||
+ heatTransferCoeff*he1/Cpv1/rho1
|
||||
- fvm::Sp(heatTransferCoeff/Cpv1/rho1, he1)
|
||||
+ alpha1*(dpdt/rho1 - (fvc::ddt(K1) + fvc::div(phi1, K1)))
|
||||
);
|
||||
|
||||
@ -31,8 +35,9 @@
|
||||
+ fvm::div(alphaPhi2, he2)
|
||||
- fvm::laplacian(k2, he2)
|
||||
==
|
||||
heatTransferCoeff*(thermo2.he(p, thermo1.T())/thermo2.Cp())/rho2
|
||||
- fvm::Sp(heatTransferCoeff/thermo2.Cp()/rho2, he2)
|
||||
heatTransferCoeff*(thermo1.T() - thermo2.T())/rho2
|
||||
+ heatTransferCoeff*he2/Cpv2/rho2
|
||||
- fvm::Sp(heatTransferCoeff/Cpv2/rho2, he2)
|
||||
+ alpha2*(dpdt/rho2 - (fvc::ddt(K2) + fvc::div(phi2, K2)))
|
||||
);
|
||||
|
||||
|
||||
@ -2,8 +2,8 @@ surfaceScalarField alphaPhi1("alphaPhi" + phase1Name, phi1);
|
||||
surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2);
|
||||
|
||||
{
|
||||
word alphaScheme("div(phi,alpha)");
|
||||
word alpharScheme("div(phir,alpha)");
|
||||
word alphaScheme("div(phi," + alpha1.name() + ')');
|
||||
word alpharScheme("div(phir," + alpha1.name() + ')');
|
||||
|
||||
surfaceScalarField phic("phic", phi);
|
||||
surfaceScalarField phir("phir", phi1 - phi2);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
EXE_INC = \
|
||||
EXE_INC = -g \
|
||||
-IphaseModel/lnInclude \
|
||||
-ImultiphaseSystem/lnInclude \
|
||||
-ImultiphaseFixedFluxPressure \
|
||||
|
||||
@ -32,9 +32,10 @@ forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
|
||||
"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.Svm(phase)
|
||||
//+
|
||||
(alpha/phase.rho())*fluid.Svm(phase)
|
||||
- fvm::Sp
|
||||
(
|
||||
slamDampCoeff
|
||||
@ -53,7 +54,7 @@ forAllIter(PtrDictionary<phaseModel>, fluid.phases(), iter)
|
||||
alpha*(1 + (1/phase.rho())*fluid.Cvm(phase)),
|
||||
UEqns[phasei]
|
||||
);
|
||||
UEqns[phasei].relax();
|
||||
//UEqns[phasei].relax();
|
||||
|
||||
phasei++;
|
||||
}
|
||||
|
||||
@ -67,8 +67,29 @@
|
||||
const volScalarField& alpha = phase;
|
||||
|
||||
alphafs.set(phasei, fvc::interpolate(alpha).ptr());
|
||||
rAUs.set(phasei, (1.0/UEqns[phasei].A()).ptr());
|
||||
rAlphaAUfs.set(phasei, fvc::interpolate(alpha*rAUs[phasei]).ptr());
|
||||
|
||||
volScalarField dragCoeffi
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"dragCoeffi",
|
||||
runTime.timeName(),
|
||||
mesh
|
||||
),
|
||||
fluid.dragCoeff(phase, dragCoeffs())/phase.rho(),
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
dragCoeffi.correctBoundaryConditions();
|
||||
|
||||
rAUs.set(phasei, (1.0/(UEqns[phasei].A() + dragCoeffi)).ptr());
|
||||
rAlphaAUfs.set
|
||||
(
|
||||
phasei,
|
||||
(
|
||||
alphafs[phasei]
|
||||
/fvc::interpolate(UEqns[phasei].A() + dragCoeffi)
|
||||
).ptr()
|
||||
);
|
||||
|
||||
HbyAs[phasei] = rAUs[phasei]*UEqns[phasei].H();
|
||||
|
||||
@ -115,10 +136,9 @@
|
||||
}
|
||||
|
||||
phiHbyAs[phasei] +=
|
||||
fvc::interpolate
|
||||
(
|
||||
(1.0/phase.rho())*rAUs[phasei]*(*dcIter())
|
||||
)*phase2Ptr->phi();
|
||||
fvc::interpolate((*dcIter())/phase.rho())
|
||||
/fvc::interpolate(UEqns[phasei].A() + dragCoeffi)
|
||||
*phase2Ptr->phi();
|
||||
|
||||
HbyAs[phasei] +=
|
||||
(1.0/phase.rho())*rAUs[phasei]*(*dcIter())
|
||||
|
||||
@ -18,6 +18,8 @@ FoamFile
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
|
||||
"ddt\(alpha.*,.*\)" bounded Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
@ -29,23 +31,18 @@ divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(phi,alpha) Gauss limitedLinear01 1;
|
||||
div(phir,alpha) Gauss limitedLinear01 1;
|
||||
div(alphaPhiair,Uair) Gauss limitedLinearV 1;
|
||||
div(alphaPhiwater,Uwater) Gauss limitedLinearV 1;
|
||||
div(phiair,Uair) Gauss limitedLinearV 1;
|
||||
div(phiwater,Uwater) Gauss limitedLinearV 1;
|
||||
div((alphaair*Rc)) Gauss linear;
|
||||
div((alphawater*Rc)) Gauss linear;
|
||||
div(alphaPhiair,hair) Gauss limitedLinear 1;
|
||||
div(alphaPhiwater,hwater) Gauss limitedLinear 1;
|
||||
div(alphaPhiwater,k) Gauss limitedLinear 1;
|
||||
div(alphaPhiwater,epsilon) Gauss limitedLinear 1;
|
||||
div(phi,Theta) Gauss limitedLinear 1;
|
||||
div(phidair,p) Gauss upwind;
|
||||
div(phidwater,p) Gauss upwind;
|
||||
div(phiair,Kair) Gauss limitedLinear 1;
|
||||
div(phiwater,Kwater) Gauss limitedLinear 1;
|
||||
div(phi,alphaair) Gauss vanLeer;
|
||||
div(phir,alphaair) Gauss vanLeer;
|
||||
|
||||
"div\(alphaPhi.*,U.*\)" bounded Gauss limitedLinearV 1;
|
||||
"div\(phi.*,U.*\)" Gauss limitedLinearV 1;
|
||||
"div\(\(alpha.*Rc\)\)" Gauss linear;
|
||||
"div\(phid.*,p\)" Gauss upwind;
|
||||
|
||||
"div\(alphaPhi.*,h.*\)" bounded Gauss limitedLinear 1;
|
||||
"div\(phi.*,K.*\)" Gauss limitedLinear 1;
|
||||
|
||||
"div\(alphaPhi.*,(k|epsilon)\)" bounded Gauss limitedLinear 1;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
|
||||
@ -63,23 +63,7 @@ solvers
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"Theta.*"
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"k.*"
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"epsilon.*"
|
||||
"(k|epsilon|Theta).*"
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
|
||||
@ -17,7 +17,7 @@ FoamFile
|
||||
|
||||
application compressibleTwoPhaseEulerFoam;
|
||||
|
||||
startFrom latestTime;
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
|
||||
@ -18,6 +18,8 @@ FoamFile
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
|
||||
"ddt\(alpha.,.*\)" bounded Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
@ -29,23 +31,19 @@ divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(alphaPhi1,U1) Gauss limitedLinearV 1;
|
||||
div(alphaPhi2,U2) Gauss limitedLinearV 1;
|
||||
div(phi1,U1) Gauss limitedLinearV 1;
|
||||
div(phi2,U2) Gauss limitedLinearV 1;
|
||||
div(alphaPhi1,h1) Gauss limitedLinear 1;
|
||||
div(alphaPhi2,h2) Gauss limitedLinear 1;
|
||||
div(alphaPhi2,k) Gauss limitedLinear 1;
|
||||
div(alphaPhi2,epsilon) Gauss limitedLinear 1;
|
||||
div(phi,alpha) Gauss limitedLinear01 1;
|
||||
div(phir,alpha) Gauss limitedLinear01 1;
|
||||
div(phi,Theta) Gauss limitedLinear 1;
|
||||
div((alpha1*Rc)) Gauss linear;
|
||||
div((alpha2*Rc)) Gauss linear;
|
||||
div(phid1,p) Gauss upwind;
|
||||
div(phid2,p) Gauss upwind;
|
||||
div(phi1,K1) Gauss limitedLinear 1;
|
||||
div(phi2,K2) Gauss limitedLinear 1;
|
||||
div(phi,alpha1) Gauss vanLeer;
|
||||
div(phir,alpha1) Gauss vanLeer;
|
||||
|
||||
"div\(alphaPhi.,U.\)" bounded Gauss limitedLinearV 1;
|
||||
"div\(phi.,U.\)" Gauss limitedLinearV 1;
|
||||
"div\(\(alpha.*Rc\)\)" Gauss linear;
|
||||
"div\(phid.,p\)" Gauss upwind;
|
||||
|
||||
"div\(alphaPhi.,h.\)" bounded Gauss limitedLinear 1;
|
||||
"div\(phi.,K.\)" Gauss limitedLinear 1;
|
||||
|
||||
div(alphaPhi2,k) bounded Gauss limitedLinear 1;
|
||||
div(alphaPhi2,epsilon) bounded Gauss limitedLinear 1;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
@ -67,7 +65,6 @@ fluxRequired
|
||||
{
|
||||
default no;
|
||||
p ;
|
||||
alpha1 ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -90,8 +90,8 @@ solvers
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nOuterCorrectors 1;
|
||||
nCorrectors 2;
|
||||
nOuterCorrectors 3;
|
||||
nCorrectors 1;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
nAlphaCorr 1;
|
||||
nAlphaSubCycles 2;
|
||||
|
||||
@ -32,12 +32,14 @@ FoamFile
|
||||
front
|
||||
{
|
||||
type empty;
|
||||
inGroups 1(empty);
|
||||
nFaces 3072;
|
||||
startFace 6336;
|
||||
}
|
||||
back
|
||||
{
|
||||
type empty;
|
||||
inGroups 1(empty);
|
||||
nFaces 3072;
|
||||
startFace 9408;
|
||||
}
|
||||
|
||||
@ -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 dictionary;
|
||||
location "constant";
|
||||
object thermophysicalProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType
|
||||
{
|
||||
type heRhoThermo;
|
||||
mixture pureMixture;
|
||||
transport const;
|
||||
thermo hConst;
|
||||
equationOfState perfectGas;
|
||||
specie specie;
|
||||
energy sensibleEnthalpy;
|
||||
}
|
||||
|
||||
mixture
|
||||
{
|
||||
specie
|
||||
{
|
||||
nMoles 1;
|
||||
molWeight 28.9;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Cp 1007;
|
||||
Hf 0;
|
||||
}
|
||||
transport
|
||||
{
|
||||
mu 1.84e-05;
|
||||
Pr 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,53 @@
|
||||
/*--------------------------------*- 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 thermophysicalProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType
|
||||
{
|
||||
type heRhoThermo;
|
||||
mixture pureMixture;
|
||||
transport const;
|
||||
thermo hConst;
|
||||
equationOfState perfectFluid;
|
||||
specie specie;
|
||||
energy sensibleEnthalpy;
|
||||
}
|
||||
|
||||
mixture
|
||||
{
|
||||
specie
|
||||
{
|
||||
nMoles 1;
|
||||
molWeight 28.9;
|
||||
}
|
||||
equationOfState
|
||||
{
|
||||
rho0 1027;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Cp 4195;
|
||||
Hf 0;
|
||||
}
|
||||
transport
|
||||
{
|
||||
mu 3.645e-4;
|
||||
Pr 2.289;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -17,14 +17,6 @@ FoamFile
|
||||
|
||||
phase1
|
||||
{
|
||||
rho0 0;
|
||||
rho 0.88;
|
||||
R 287;
|
||||
Cp 1007;
|
||||
nu 2.46e-05;
|
||||
d 4e-3;
|
||||
|
||||
kappa 2.63e-2;
|
||||
diameterModel isothermal;
|
||||
isothermalCoeffs
|
||||
{
|
||||
@ -35,14 +27,6 @@ phase1
|
||||
|
||||
phase2
|
||||
{
|
||||
rho 733;
|
||||
rho0 733;
|
||||
R 1e10;
|
||||
Cp 4195;
|
||||
nu 2.73e-6;
|
||||
d 1e-4;
|
||||
|
||||
kappa 0.668;
|
||||
diameterModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
@ -57,9 +41,10 @@ Cvm 0.5;
|
||||
Cl 0;
|
||||
|
||||
// Dispersed-phase turbulence coefficient
|
||||
Ct 0.2;
|
||||
Ct 1;
|
||||
|
||||
// Minimum allowable pressure
|
||||
pMin 10000;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -18,6 +18,8 @@ FoamFile
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
|
||||
"ddt\(alpha.*,.*\)" bounded Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
@ -29,16 +31,18 @@ divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(phi,alpha1) Gauss limitedLinear01 1;
|
||||
div(phir,alpha1) Gauss limitedLinear01 1;
|
||||
div(phi,alpha1) Gauss vanLeer;
|
||||
div(phir,alpha1) Gauss vanLeer;
|
||||
|
||||
"div\(alphaPhi.,U.\)" bounded Gauss limitedLinearV 1;
|
||||
"div\(phi.,U.\)" Gauss limitedLinearV 1;
|
||||
"div\(alphaPhi.,U.\)" Gauss limitedLinearV 1;
|
||||
"div\(\(alpha.*Rc.\)\)" Gauss linear;
|
||||
"div\(alphaPhi.,(k|epsilon)\)" Gauss limitedLinear 1;
|
||||
div(phi,Theta) Gauss limitedLinear 1;
|
||||
"div\(phi.,K.\)" Gauss linear;
|
||||
"div\(alphaPhi.,T.\)" Gauss limitedLinear 1;
|
||||
"div\(\(alpha.*Rc\)\)" Gauss linear;
|
||||
"div\(phid.,p\)" Gauss linear;
|
||||
|
||||
"div\(alphaPhi.,h.\)" bounded Gauss limitedLinear 1;
|
||||
"div\(phi.,K.\)" Gauss linear;
|
||||
|
||||
"div\(alphaPhi.,(k|epsilon)\)" bounded Gauss limitedLinear 1;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
|
||||
@ -36,7 +36,7 @@ solvers
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
U
|
||||
"U.*"
|
||||
{
|
||||
solver smoothSolver;
|
||||
smoother GaussSeidel;
|
||||
@ -45,14 +45,6 @@ solvers
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
UFinal
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-07;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"alpha.*"
|
||||
{
|
||||
solver PBiCG;
|
||||
@ -61,7 +53,7 @@ solvers
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(k|epsilon|Theta|T).*"
|
||||
"(k|epsilon|Theta|h).*"
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
@ -76,7 +68,7 @@ PIMPLE
|
||||
nCorrectors 3;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
nAlphaCorr 1;
|
||||
correctAlpha yes;
|
||||
nAlphaSubCycles 2;
|
||||
pRefCell 0;
|
||||
pRefValue 0;
|
||||
}
|
||||
@ -85,16 +77,15 @@ relaxationFactors
|
||||
{
|
||||
fields
|
||||
{
|
||||
p 1;
|
||||
}
|
||||
equations
|
||||
{
|
||||
"U.*" 1;
|
||||
"h.*" 1;
|
||||
"alpha.*" 1;
|
||||
"Theta.*" 1;
|
||||
"k.*" 1;
|
||||
"epsilon.*" 1;
|
||||
"T.*" 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user