mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Correcting order of the compressibleContErr.H in comp solvers.
Adding pMin,Pmax pressure control to buoyantPimple and chtMultiReagion
This commit is contained in:
@ -85,8 +85,6 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "rhoEqn.H"
|
|
||||||
#include "compressibleContinuityErrs.H"
|
|
||||||
|
|
||||||
// Explicitly relax pressure for momentum corrector
|
// Explicitly relax pressure for momentum corrector
|
||||||
p.relax();
|
p.relax();
|
||||||
@ -102,6 +100,10 @@ if (pressureControl.limit(p))
|
|||||||
}
|
}
|
||||||
|
|
||||||
thermo.correctRho(psi*p - psip0, rhoMin, rhoMax) ;
|
thermo.correctRho(psi*p - psip0, rhoMin, rhoMax) ;
|
||||||
|
|
||||||
|
#include "rhoEqn.H"
|
||||||
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
// Correct rhoUf if the mesh is moving
|
// Correct rhoUf if the mesh is moving
|
||||||
|
|||||||
@ -44,6 +44,7 @@ Description
|
|||||||
#include "radiationModel.H"
|
#include "radiationModel.H"
|
||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
|
#include "pressureControl.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,7 @@ volVectorField U
|
|||||||
|
|
||||||
#include "compressibleCreatePhi.H"
|
#include "compressibleCreatePhi.H"
|
||||||
|
|
||||||
|
pressureControl pressureControl(p, rho, pimple.dict(), false);
|
||||||
|
|
||||||
Info<< "Creating turbulence model\n" << endl;
|
Info<< "Creating turbulence model\n" << endl;
|
||||||
autoPtr<compressible::turbulenceModel> turbulence
|
autoPtr<compressible::turbulenceModel> turbulence
|
||||||
@ -104,3 +105,7 @@ dimensionedScalar initialMass("initialMass", fvc::domainIntegrate(rho));
|
|||||||
#include "createMRF.H"
|
#include "createMRF.H"
|
||||||
#include "createRadiationModel.H"
|
#include "createRadiationModel.H"
|
||||||
#include "createFvOptions.H"
|
#include "createFvOptions.H"
|
||||||
|
|
||||||
|
|
||||||
|
const dimensionedScalar rhoMax("rhoMax", dimDensity, GREAT, pimple.dict());
|
||||||
|
const dimensionedScalar rhoMin("rhoMin", dimDensity, Zero, pimple.dict());
|
||||||
|
|||||||
@ -72,8 +72,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
|
|
||||||
p = p_rgh + rho*gh;
|
p = p_rgh + rho*gh;
|
||||||
|
|
||||||
#include "rhoEqn.H"
|
pressureControl.limit(p);
|
||||||
#include "compressibleContinuityErrs.H"
|
|
||||||
|
|
||||||
if (p_rgh.needReference())
|
if (p_rgh.needReference())
|
||||||
{
|
{
|
||||||
@ -90,16 +89,20 @@ if (p_rgh.needReference())
|
|||||||
{
|
{
|
||||||
p += (initialMass - fvc::domainIntegrate(psi*p))
|
p += (initialMass - fvc::domainIntegrate(psi*p))
|
||||||
/compressibility;
|
/compressibility;
|
||||||
thermo.correctRho(psi*p - psip0);
|
thermo.correctRho(psi*p - psip0, rhoMin, rhoMax);
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
p_rgh = p - rho*gh;
|
p_rgh = p - rho*gh;
|
||||||
|
p_rgh.correctBoundaryConditions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thermo.correctRho(psi*p - psip0);
|
thermo.correctRho(psi*p - psip0, rhoMin, rhoMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "rhoEqn.H"
|
||||||
|
#include "compressibleContinuityErrs.H"
|
||||||
|
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
if (thermo.dpdt())
|
if (thermo.dpdt())
|
||||||
|
|||||||
@ -51,6 +51,7 @@ Description
|
|||||||
#include "fvOptions.H"
|
#include "fvOptions.H"
|
||||||
#include "coordinateSystem.H"
|
#include "coordinateSystem.H"
|
||||||
#include "loopControl.H"
|
#include "loopControl.H"
|
||||||
|
#include "pressureControl.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,11 @@ PtrList<fv::options> fluidFvOptions(fluidRegions.size());
|
|||||||
List<label> pRefCellFluid(fluidRegions.size());
|
List<label> pRefCellFluid(fluidRegions.size());
|
||||||
List<scalar> pRefValueFluid(fluidRegions.size());
|
List<scalar> pRefValueFluid(fluidRegions.size());
|
||||||
|
|
||||||
|
PtrList<dimensionedScalar> rhoMinFluid(fluidRegions.size());
|
||||||
|
PtrList<dimensionedScalar> rhoMaxFluid(fluidRegions.size());
|
||||||
|
|
||||||
|
PtrList<pressureControl> pressureControls(fluidRegions.size());
|
||||||
|
|
||||||
const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime);
|
const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime);
|
||||||
|
|
||||||
// Populate fluid field pointer lists
|
// Populate fluid field pointer lists
|
||||||
@ -256,6 +261,24 @@ forAll(fluidRegions, i)
|
|||||||
fluidRegions[i].solutionDict().subDict("PIMPLE");
|
fluidRegions[i].solutionDict().subDict("PIMPLE");
|
||||||
pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);
|
pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);
|
||||||
|
|
||||||
|
rhoMaxFluid.set
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
new dimensionedScalar("rhoMax", dimDensity, GREAT, pimpleDict)
|
||||||
|
);
|
||||||
|
|
||||||
|
rhoMinFluid.set
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
new dimensionedScalar("rhoMin", dimDensity, Zero, pimpleDict)
|
||||||
|
);
|
||||||
|
|
||||||
|
pressureControls.set
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
new pressureControl(thermoFluid[i].p(), rhoFluid[i], pimpleDict, false)
|
||||||
|
);
|
||||||
|
|
||||||
Info<< " Adding MRF\n" << endl;
|
Info<< " Adding MRF\n" << endl;
|
||||||
MRFfluid.set
|
MRFfluid.set
|
||||||
(
|
(
|
||||||
|
|||||||
@ -81,17 +81,9 @@ constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
|
|||||||
|
|
||||||
p = p_rgh + rho*gh;
|
p = p_rgh + rho*gh;
|
||||||
|
|
||||||
// Thermodynamic density update
|
|
||||||
//thermo.correctRho(psi*p - psip0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pressureControl.limit(p);
|
||||||
|
|
||||||
// Solve continuity
|
|
||||||
#include "rhoEqn.H"
|
|
||||||
|
|
||||||
// Update continuity errors
|
|
||||||
#include "compressibleContinuityErrors.H"
|
|
||||||
|
|
||||||
// For closed-volume cases adjust the pressure and density levels
|
// For closed-volume cases adjust the pressure and density levels
|
||||||
// to obey overall mass continuity
|
// to obey overall mass continuity
|
||||||
@ -110,16 +102,20 @@ if (closedVolume)
|
|||||||
{
|
{
|
||||||
p += (initialMass - fvc::domainIntegrate(psi*p))
|
p += (initialMass - fvc::domainIntegrate(psi*p))
|
||||||
/compressibility;
|
/compressibility;
|
||||||
thermo.correctRho(psi*p - psip0);
|
thermo.correctRho(psi*p - psip0, rhoMin, rhoMax);
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
p_rgh = p - rho*gh;
|
p_rgh = p - rho*gh;
|
||||||
|
p_rgh.correctBoundaryConditions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thermo.correctRho(psi*p - psip0);
|
thermo.correctRho(psi*p - psip0, rhoMin, rhoMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "rhoEqn.H"
|
||||||
|
#include "compressibleContinuityErrors.H"
|
||||||
|
|
||||||
rho = thermo.rho();
|
rho = thermo.rho();
|
||||||
|
|
||||||
// Update pressure time derivative if needed
|
// Update pressure time derivative if needed
|
||||||
|
|||||||
@ -61,3 +61,8 @@
|
|||||||
const label pRefCell = pRefCellFluid[i];
|
const label pRefCell = pRefCellFluid[i];
|
||||||
const scalar pRefValue = pRefValueFluid[i];
|
const scalar pRefValue = pRefValueFluid[i];
|
||||||
|
|
||||||
|
const dimensionedScalar rhoMax = rhoMaxFluid[i];
|
||||||
|
const dimensionedScalar rhoMin = rhoMinFluid[i];
|
||||||
|
|
||||||
|
const pressureControl& pressureControl = pressureControls[i];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user