mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: chtMultiRegionFoam solvers - added option to calculate using frozen flow
This commit is contained in:
@ -13,6 +13,7 @@
|
||||
List<scalar> initialMassFluid(fluidRegions.size());
|
||||
List<label> pRefCellFluid(fluidRegions.size(), 0);
|
||||
List<scalar> pRefValueFluid(fluidRegions.size(), 0.0);
|
||||
List<bool> frozenFlowFluid(fluidRegions.size(), false);
|
||||
|
||||
PtrList<dimensionedScalar> rhoMax(fluidRegions.size());
|
||||
PtrList<dimensionedScalar> rhoMin(fluidRegions.size());
|
||||
@ -160,38 +161,22 @@
|
||||
|
||||
initialMassFluid[i] = fvc::domainIntegrate(rhoFluid[i]).value();
|
||||
|
||||
const dictionary& simpleDict =
|
||||
fluidRegions[i].solutionDict().subDict("SIMPLE");
|
||||
|
||||
setRefCell
|
||||
(
|
||||
thermoFluid[i].p(),
|
||||
p_rghFluid[i],
|
||||
fluidRegions[i].solutionDict().subDict("SIMPLE"),
|
||||
simpleDict,
|
||||
pRefCellFluid[i],
|
||||
pRefValueFluid[i]
|
||||
);
|
||||
|
||||
rhoMax.set
|
||||
(
|
||||
i,
|
||||
new dimensionedScalar
|
||||
(
|
||||
fluidRegions[i].solutionDict().subDict("SIMPLE").lookup
|
||||
(
|
||||
"rhoMax"
|
||||
)
|
||||
)
|
||||
);
|
||||
simpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);
|
||||
|
||||
rhoMin.set
|
||||
(
|
||||
i,
|
||||
new dimensionedScalar
|
||||
(
|
||||
fluidRegions[i].solutionDict().subDict("SIMPLE").lookup
|
||||
(
|
||||
"rhoMin"
|
||||
)
|
||||
)
|
||||
);
|
||||
rhoMax.set(i, new dimensionedScalar(simpleDict.lookup("rhoMax")));
|
||||
rhoMin.set(i, new dimensionedScalar(simpleDict.lookup("rhoMin")));
|
||||
|
||||
Info<< " Adding fvOptions\n" << endl;
|
||||
fluidFvOptions.set
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
|
||||
const label pRefCell = pRefCellFluid[i];
|
||||
const scalar pRefValue = pRefValueFluid[i];
|
||||
const bool frozenFlow = frozenFlowFluid[i];
|
||||
|
||||
volScalarField& p_rgh = p_rghFluid[i];
|
||||
const volScalarField& gh = ghFluid[i];
|
||||
|
||||
@ -1,11 +1,19 @@
|
||||
// Pressure-velocity SIMPLE corrector
|
||||
|
||||
{
|
||||
if (frozenFlow)
|
||||
{
|
||||
#include "EEqn.H"
|
||||
}
|
||||
else
|
||||
{
|
||||
p_rgh.storePrevIter();
|
||||
rho.storePrevIter();
|
||||
{
|
||||
|
||||
#include "UEqn.H"
|
||||
#include "EEqn.H"
|
||||
#include "pEqn.H"
|
||||
}
|
||||
|
||||
turb.correct();
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
PtrList<volScalarField> dpdtFluid(fluidRegions.size());
|
||||
|
||||
List<scalar> initialMassFluid(fluidRegions.size());
|
||||
List<bool> frozenFlowFluid(fluidRegions.size(), false);
|
||||
|
||||
PtrList<fv::IOoptionList> fluidFvOptions(fluidRegions.size());
|
||||
|
||||
@ -102,7 +103,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
Info<< " Adding turbulence \n" << endl;
|
||||
Info<< " Adding to turbulence\n" << endl;
|
||||
turbulence.set
|
||||
(
|
||||
i,
|
||||
@ -190,6 +191,10 @@
|
||||
)
|
||||
);
|
||||
|
||||
const dictionary& pimpleDict =
|
||||
fluidRegions[i].solutionDict().subDict("PIMPLE");
|
||||
pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);
|
||||
|
||||
Info<< " Adding fvOptions\n" << endl;
|
||||
fluidFvOptions.set
|
||||
(
|
||||
|
||||
@ -28,3 +28,5 @@
|
||||
dimMass,
|
||||
initialMassFluid[i]
|
||||
);
|
||||
|
||||
const bool frozenFlow = frozenFlowFluid[i];
|
||||
@ -3,6 +3,12 @@ if (finalIter)
|
||||
mesh.data::add("finalIteration", true);
|
||||
}
|
||||
|
||||
if (frozenFlow)
|
||||
{
|
||||
#include "EEqn.H"
|
||||
}
|
||||
else
|
||||
{
|
||||
if (oCorr == 0)
|
||||
{
|
||||
#include "rhoEqn.H"
|
||||
@ -20,6 +26,7 @@ for (int corr=0; corr<nCorr; corr++)
|
||||
turb.correct();
|
||||
|
||||
rho = thermo.rho();
|
||||
}
|
||||
|
||||
if (finalIter)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user