mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
sonicFoam: change internal energy equation formulation to conserve total energy
This commit is contained in:
@ -6,3 +6,4 @@ fvVectorMatrix UEqn
|
||||
);
|
||||
|
||||
solve(UEqn == -fvc::grad(p));
|
||||
K = 0.5*magSqr(U);
|
||||
|
||||
@ -49,3 +49,6 @@
|
||||
thermo
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field kinetic energy K\n" << endl;
|
||||
volScalarField K("K", 0.5*magSqr(U));
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
+ fvm::div(phi, e)
|
||||
- fvm::laplacian(turbulence->alphaEff(), e)
|
||||
==
|
||||
- p*fvc::div(phi/fvc::interpolate(rho))
|
||||
- (fvc::ddt(rho, K) + fvc::div(phi, volScalarField("Ekp", K + p/rho)))
|
||||
);
|
||||
|
||||
thermo.correct();
|
||||
|
||||
@ -39,3 +39,4 @@ for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
|
||||
U = HbyA - rAU*fvc::grad(p);
|
||||
U.correctBoundaryConditions();
|
||||
K = 0.5*magSqr(U);
|
||||
|
||||
@ -56,16 +56,12 @@ int main(int argc, char *argv[])
|
||||
#include "compressibleCourantNo.H"
|
||||
|
||||
#include "rhoEqn.H"
|
||||
|
||||
#include "UEqn.H"
|
||||
|
||||
#include "eEqn.H"
|
||||
|
||||
|
||||
// --- PISO loop
|
||||
|
||||
for (int corr=0; corr<nCorr; corr++)
|
||||
{
|
||||
#include "eEqn.H"
|
||||
#include "pEqn.H"
|
||||
}
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ FoamFile
|
||||
|
||||
dimensions [0 1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform (0 0 0);
|
||||
internalField uniform (3 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
|
||||
@ -33,7 +33,7 @@ divSchemes
|
||||
div(phi,U) Gauss upwind;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,e) Gauss limitedLinear 1;
|
||||
div(phi,K) Gauss limitedLinear 1;
|
||||
div(phi,Ekp) Gauss limitedLinear 1;
|
||||
div((muEff*dev2(T(grad(U))))) Gauss linear 1;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -10,6 +10,7 @@ FoamFile
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volVectorField;
|
||||
location "0";
|
||||
object U;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -24,11 +25,11 @@ boundaryField
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
empty
|
||||
{
|
||||
type empty;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -10,6 +10,7 @@ FoamFile
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object magU;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -31,4 +32,5 @@ boundaryField
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -33,7 +33,7 @@ divSchemes
|
||||
div(phi,U) Gauss upwind;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,e) Gauss limitedLinear 1;
|
||||
div(phi,K) Gauss limitedLinear 1;
|
||||
div(phi,Ekp) Gauss limitedLinear 1;
|
||||
div((muEff*dev2(T(grad(U))))) Gauss linear 1;
|
||||
}
|
||||
|
||||
|
||||
@ -29,25 +29,17 @@ divSchemes
|
||||
{
|
||||
default none;
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(phi,e) Gauss limitedLinear 1;
|
||||
div(phi,Ekp) Gauss limitedLinear 1;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,k) Gauss upwind;
|
||||
div(phi,epsilon) Gauss upwind;
|
||||
div(phi,R) Gauss upwind;
|
||||
div(R) Gauss linear;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,K) Gauss limitedLinear 1;
|
||||
div(phi,e) Gauss limitedLinear 1;
|
||||
div((muEff*dev2(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default none;
|
||||
laplacian(muEff,U) Gauss linear limited 0.5;
|
||||
laplacian(DkEff,k) Gauss linear limited 0.5;
|
||||
laplacian(DREff,R) Gauss linear limited 0.5;
|
||||
laplacian(DepsilonEff,epsilon) Gauss linear limited 0.5;
|
||||
laplacian(Dp,p) Gauss linear limited 0.5;
|
||||
laplacian(alphaEff,e) Gauss linear limited 0.5;
|
||||
default Gauss linear limited 0.5;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
|
||||
@ -17,6 +17,11 @@ FoamFile
|
||||
|
||||
solvers
|
||||
{
|
||||
rho
|
||||
{
|
||||
solver diagonal;
|
||||
}
|
||||
|
||||
p
|
||||
{
|
||||
solver PBiCG;
|
||||
@ -25,26 +30,23 @@ solvers
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
rho
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-08;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(U|e|k|epsilon|R)"
|
||||
"(U|e)"
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-08;
|
||||
relTol 0;
|
||||
tolerance 1e-9;
|
||||
}
|
||||
|
||||
"(k|epsilon)"
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-10;
|
||||
}
|
||||
}
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 2;
|
||||
nNonOrthogonalCorrectors 2;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -29,25 +29,17 @@ divSchemes
|
||||
{
|
||||
default none;
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(phi,e) Gauss limitedLinear 1;
|
||||
div(phi,Ekp) Gauss limitedLinear 1;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,k) Gauss upwind;
|
||||
div(phi,epsilon) Gauss upwind;
|
||||
div(phi,R) Gauss upwind;
|
||||
div(R) Gauss linear;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,K) Gauss limitedLinear 1;
|
||||
div(phi,e) Gauss limitedLinear 1;
|
||||
div((muEff*dev2(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default none;
|
||||
laplacian(muEff,U) Gauss linear corrected;
|
||||
laplacian(DkEff,k) Gauss linear corrected;
|
||||
laplacian(DREff,R) Gauss linear corrected;
|
||||
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
|
||||
laplacian(Dp,p) Gauss linear corrected;
|
||||
laplacian(alphaEff,e) Gauss linear corrected;
|
||||
default Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
|
||||
@ -17,6 +17,11 @@ FoamFile
|
||||
|
||||
solvers
|
||||
{
|
||||
rho
|
||||
{
|
||||
solver diagonal;
|
||||
}
|
||||
|
||||
p
|
||||
{
|
||||
solver PBiCG;
|
||||
@ -25,34 +30,23 @@ solvers
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
rho
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(U|e|R)"
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(k|epsilon)"
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-08;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 2;
|
||||
nNonOrthogonalCorrectors 2;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user