multiphaseEulerFoam: Updated the internal energy pressure work term

The pressure work term for total internal energy is div(U p) which can be
discretised is various ways, given a mass flux field phi it seems logical to
implement it in the form div(phi/interpolate(rho), p) but this is not exactly
consistent with the relationship between enthalpy and internal energy (h = e +
p/rho) and the transport of enthalpy, it would be more consistent to implement
it in the form div(phi, p/rho).  A further improvement in consistency can be
gained by using the same convection scheme for this work term and the convection
term div(phi, e) and for reacting solvers this is easily achieved by using the
multi-variate limiter mvConvection provided for energy and specie convection.

This more consistent total internal energy work term has now been implemented in
all the compressible and reacting flow solvers and provides more accurate
solutions when running with internal energy, particularly for variable density
mixing cases with small pressure variation.

For non-reacting compressible solvers this improvement requires a change to the
corresponding divScheme in fvSchemes:

    "div\(alphaPhi.*,p\)" -> "div\(alphaRhoPhi.*,\(p\|thermo:rho.*\)\)"

and all the tutorials have been updated accordingly.
This commit is contained in:
Henry Weller
2021-06-11 19:36:33 +01:00
parent 62c782367d
commit 6c0087d005
31 changed files with 75 additions and 32 deletions

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,k.*\)" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;

View File

@ -40,7 +40,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,f.*\)" Gauss upwind;
"div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,p\)" Gauss linearUpwind limited;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss linearUpwind limited;
"div\(phi.*,kappai.*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss upwind;
"div\(phim,(k|epsilon)m\)" Gauss upwind;

View File

@ -37,7 +37,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
div(alphaRhoPhi.solids,Theta.solids) Gauss limitedLinear 1;

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(k|epsilon).*\)" Gauss limitedLinear 1;
"div\(phim,(k|epsilon)m\)" Gauss limitedLinear 1;

View File

@ -38,7 +38,7 @@ divSchemes
"div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(k|epsilon).*\)" Gauss limitedLinear 1;
"div\(phim,(k|epsilon)m\)" Gauss limitedLinear 1;

View File

@ -37,7 +37,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
div(alphaRhoPhi.particles,Theta.particles) Gauss limitedLinear 1;

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,Yi\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,p\)" Gauss linearUpwind limited;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss linearUpwind limited;
"div\(phim,(k|epsilon)m\)" Gauss linearUpwind limited;

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,Yi\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,p\)" Gauss linearUpwind limited;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss linearUpwind limited;
"div\(phi.*,kappai.*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss linearUpwind limited;
"div\(phim,(k|epsilon)m\)" Gauss linearUpwind limited;

View File

@ -40,7 +40,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,f.*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,p\)" Gauss linearUpwind limited;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss linearUpwind limited;
"div\(phim,(k|epsilon)m\)" Gauss linearUpwind limited;

View File

@ -40,7 +40,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,f.*\)" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited;
"div\(alphaPhi.*,p\)" Gauss linearUpwind limited;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss linearUpwind limited;
"div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss linearUpwind limited;
"div\(phim,(k|epsilon)m\)" Gauss linearUpwind limited;

View File

@ -37,7 +37,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -39,7 +39,8 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,\(p\|thermo:rho.*\)\)" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -38,7 +38,7 @@ divSchemes
"div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -38,7 +38,7 @@ divSchemes
"div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -41,7 +41,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -35,7 +35,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -37,7 +37,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
div((((alpha.air*thermo:rho.air)*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear;
}

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -35,7 +35,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -35,7 +35,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

View File

@ -38,7 +38,7 @@ divSchemes
"div\(alphaRhoPhi.*,Yi\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,(k|epsilon).*\)" Gauss limitedLinear 1;
"div\(phim,(k|epsilon)m\)" Gauss limitedLinear 1;

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,(k|epsilon|h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,Y.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaPhi.*,f.*\)" Gauss upwind;
"div\(fAlphaPhi.*,kappa.*\)" Gauss linearUpwind limited;

View File

@ -39,7 +39,7 @@ divSchemes
"div\(alphaRhoPhi.*,(k|epsilon|h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,Y.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(alphaPhi.*,f.*\)" Gauss upwind;
"div\(fAlphaPhi.*,kappa.*\)" Gauss linearUpwind limited;

View File

@ -37,7 +37,7 @@ divSchemes
"div\(alphaRhoPhi.*,(h|e).*\)" Gauss limitedLinear 1;
"div\(alphaRhoPhi.*,K.*\)" Gauss limitedLinear 1;
"div\(alphaPhi.*,p\)" Gauss limitedLinear 1;
"div(alphaRhoPhi.*,(p|thermo:rho.*))" Gauss limitedLinear 1;
"div\(\(\(\(alpha.*\*thermo:rho.*\)*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}