Compressible solver pEqn.H: Standardised the treatment of density

In rhoPimpleFoam, rhoSimpleFoam, buoyantPimpleFoam and buoyantSimpleFoam the
density prediction step at the start of pEqn.H is now consistent between these
solvers and the other compressible solvers.  If the density is relaxed in the
corrector it is now also relaxed following the predictor which improves
consistency, stability and convergence.
This commit is contained in:
Henry Weller
2022-02-18 10:33:40 +00:00
parent 457230b4f9
commit 46895490c7
8 changed files with 28 additions and 16 deletions

View File

@ -1,6 +1,8 @@
if ((!mesh.steady() && !pimple.simpleRho()) || pimple.consistent())
rho = thermo.rho();
if (!pimple.transonic())
{
rho = thermo.rho();
rho.relax();
}
// Thermodynamic density needs to be updated by psi*d(p) after the

View File

@ -1,8 +1,11 @@
if (simple.consistent())
rho = thermo.rho();
if (!simple.transonic())
{
rho = thermo.rho();
rho.relax();
}
const volScalarField rAU("rAU", 1.0/UEqn.A());
const surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));

View File

@ -1,6 +1,8 @@
if (!mesh.steady() && !pimple.simpleRho())
rho = thermo.rho();
if (!pimple.transonic())
{
rho = thermo.rho();
rho.relax();
}
// Thermodynamic density needs to be updated by psi*d(p) after the

View File

@ -1,5 +1,10 @@
rho = thermo.rho();
if (!simple.transonic())
{
rho.relax();
}
const volScalarField rAU("rAU", 1.0/UEqn.A());
const surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));

View File

@ -70,13 +70,13 @@ relaxationFactors
fields
{
p 0.3;
rho 0.05;
rho 0.01;
}
equations
{
U 0.7;
e 0.7;
"(k|epsilon)" 0.7;
e 0.5;
}
}

View File

@ -18,12 +18,11 @@ solvers
{
p_rgh
{
solver GAMG;
tolerance 1e-7;
relTol 0.01;
smoother DICGaussSeidel;
solver GAMG;
smoother DICGaussSeidel;
tolerance 1e-7;
relTol 0.01;
}
"(U|h|k|epsilon|omega)"

View File

@ -34,7 +34,7 @@ divSchemes
div(phi,k) bounded Gauss upwind;
div(phi,epsilon) bounded Gauss upwind;
div(phi,Ekp) bounded Gauss linear;
div(phi,Ekp) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}

View File

@ -18,8 +18,9 @@ solvers
{
p_rgh
{
solver PCG;
preconditioner DIC;
solver GAMG;
smoother DICGaussSeidel;
tolerance 1e-8;
relTol 0.01;
}