Skip to content
Snippets Groups Projects
Commit 0aee45ba authored by Henry's avatar Henry
Browse files

compressibleTwoPhaseEulerFoam: Completed update to energy equations and tutorials

parent 31e80731
Branches
Tags
No related merge requests found
Showing
with 208 additions and 120 deletions
......@@ -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);
......
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())
......@@ -240,7 +260,7 @@
+ rAlphaAUfs[phasei]*mSfGradp/phase.rho()
);
// phase.U() = fvc::reconstruct(phase.phi());
//phase.U() = fvc::reconstruct(phase.phi());
phase.U().correctBoundaryConditions();
U += alpha*phase.U();
......
......@@ -18,6 +18,8 @@ FoamFile
ddtSchemes
{
default Euler;
"ddt\(alpha.*,.*\)" bounded Euler;
}
gradSchemes
......@@ -27,25 +29,20 @@ gradSchemes
divSchemes
{
default none;
default none;
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(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\(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;
......
......@@ -17,57 +17,54 @@ FoamFile
ddtSchemes
{
default Euler;
default Euler;
"ddt\(alpha.,.*\)" bounded Euler;
}
gradSchemes
{
default Gauss linear;
default Gauss linear;
}
divSchemes
{
default none;
default none;
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(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(alphaPhi2,k) bounded Gauss limitedLinear 1;
div(alphaPhi2,epsilon) bounded Gauss limitedLinear 1;
}
laplacianSchemes
{
default Gauss linear uncorrected;
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
default linear;
}
snGradSchemes
{
default uncorrected;
default uncorrected;
}
fluxRequired
{
default no;
p ;
alpha1 ;
default no;
p ;
}
......
......@@ -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;
}
......
/*--------------------------------*- 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;
}
}
// ************************************************************************* //
/*--------------------------------*- 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
{
......@@ -54,12 +38,13 @@ phase2
Cvm 0.5;
// Lift coefficient
Cl 0;
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;
}
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment