mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: interCondensingEvaporatingFoam - updated for postProcess utility; tidying
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
interPhaseChangePath = $(FOAM_SOLVERS)/multiphase/interPhaseChangeFoam
|
interPhaseChangePath = $(FOAM_SOLVERS)/multiphase/interPhaseChangeFoam
|
||||||
|
|
||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
|
-I. \
|
||||||
-ItemperaturePhaseChangeTwoPhaseMixtures/lnInclude \
|
-ItemperaturePhaseChangeTwoPhaseMixtures/lnInclude \
|
||||||
-I$(interPhaseChangePath) \
|
-I$(interPhaseChangePath) \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
|
|||||||
@ -1,143 +1,142 @@
|
|||||||
Info<< "Reading field p_rgh\n" << endl;
|
Info<< "Reading field p_rgh\n" << endl;
|
||||||
volScalarField p_rgh
|
volScalarField p_rgh
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
(
|
(
|
||||||
IOobject
|
"p_rgh",
|
||||||
(
|
runTime.timeName(),
|
||||||
"p_rgh",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< "Reading field U\n" << endl;
|
|
||||||
volVectorField U
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"U",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh
|
|
||||||
);
|
|
||||||
|
|
||||||
#include "createPhi.H"
|
|
||||||
|
|
||||||
// Creating e based thermo
|
|
||||||
autoPtr<twoPhaseMixtureEThermo> thermo;
|
|
||||||
thermo.set(new twoPhaseMixtureEThermo(U, phi));
|
|
||||||
|
|
||||||
// Create mixture and
|
|
||||||
Info<< "Creating temperaturePhaseChangeTwoPhaseMixture\n" << endl;
|
|
||||||
autoPtr<temperaturePhaseChangeTwoPhaseMixture> mixture =
|
|
||||||
temperaturePhaseChangeTwoPhaseMixture::New(thermo(), mesh);
|
|
||||||
|
|
||||||
|
|
||||||
volScalarField& T = thermo->T();
|
|
||||||
volScalarField& e = thermo->he();
|
|
||||||
e.oldTime();
|
|
||||||
|
|
||||||
// Correct e from T and alpha
|
|
||||||
//thermo->correct();
|
|
||||||
|
|
||||||
volScalarField& alpha1(thermo->alpha1());
|
|
||||||
volScalarField& alpha2(thermo->alpha2());
|
|
||||||
|
|
||||||
const dimensionedScalar& rho1 = thermo->rho1();
|
|
||||||
const dimensionedScalar& rho2 = thermo->rho2();
|
|
||||||
|
|
||||||
// Need to store rho for ddt(rho, U)
|
|
||||||
volScalarField rho
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"rho",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::READ_IF_PRESENT,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
alpha1*rho1 + alpha2*rho2,
|
|
||||||
alpha1.boundaryField().types()
|
|
||||||
);
|
|
||||||
rho.oldTime();
|
|
||||||
|
|
||||||
// Construct interface from alpha1 distribution
|
|
||||||
interfaceProperties interface
|
|
||||||
(
|
|
||||||
alpha1,
|
|
||||||
U,
|
|
||||||
thermo->transportPropertiesDict()
|
|
||||||
);
|
|
||||||
|
|
||||||
// Construct incompressible turbulence model
|
|
||||||
autoPtr<incompressible::turbulenceModel> turbulence
|
|
||||||
(
|
|
||||||
incompressible::turbulenceModel::New(U, phi, thermo())
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
Info<< "Calculating field g.h\n" << endl;
|
|
||||||
volScalarField gh("gh", g & mesh.C());
|
|
||||||
surfaceScalarField ghf("ghf", g & mesh.Cf());
|
|
||||||
|
|
||||||
volScalarField& p = thermo->p();
|
|
||||||
|
|
||||||
label pRefCell = 0;
|
|
||||||
scalar pRefValue = 0.0;
|
|
||||||
setRefCell
|
|
||||||
(
|
|
||||||
p,
|
|
||||||
p_rgh,
|
|
||||||
pimple.dict(),
|
|
||||||
pRefCell,
|
|
||||||
pRefValue
|
|
||||||
);
|
|
||||||
|
|
||||||
if (p_rgh.needReference())
|
|
||||||
{
|
|
||||||
p += dimensionedScalar
|
|
||||||
(
|
|
||||||
"p",
|
|
||||||
p.dimensions(),
|
|
||||||
pRefValue - getRefCellValue(p, pRefCell)
|
|
||||||
);
|
|
||||||
p_rgh = p - rho*gh;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Turbulent Prandtl number
|
|
||||||
dimensionedScalar Prt("Prt", dimless, thermo->transportPropertiesDict());
|
|
||||||
|
|
||||||
volScalarField kappaEff
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"kappaEff",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
thermo->kappa()
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< "Creating field kinetic energy K\n" << endl;
|
|
||||||
volScalarField K("K", 0.5*magSqr(U));
|
|
||||||
|
|
||||||
Info<< "Creating field pDivU\n" << endl;
|
|
||||||
volScalarField pDivU
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"pDivU",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar("pDivU", p.dimensions()/dimTime, 0)
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Reading field U\n" << endl;
|
||||||
|
volVectorField U
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"U",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
#include "createPhi.H"
|
||||||
|
|
||||||
|
// Creating e based thermo
|
||||||
|
autoPtr<twoPhaseMixtureEThermo> thermo;
|
||||||
|
thermo.set(new twoPhaseMixtureEThermo(U, phi));
|
||||||
|
|
||||||
|
// Create mixture and
|
||||||
|
Info<< "Creating temperaturePhaseChangeTwoPhaseMixture\n" << endl;
|
||||||
|
autoPtr<temperaturePhaseChangeTwoPhaseMixture> mixture =
|
||||||
|
temperaturePhaseChangeTwoPhaseMixture::New(thermo(), mesh);
|
||||||
|
|
||||||
|
|
||||||
|
// Correct e from T and alpha
|
||||||
|
//thermo->correct();
|
||||||
|
|
||||||
|
volScalarField& alpha1(thermo->alpha1());
|
||||||
|
volScalarField& alpha2(thermo->alpha2());
|
||||||
|
|
||||||
|
const dimensionedScalar& rho1 = thermo->rho1();
|
||||||
|
const dimensionedScalar& rho2 = thermo->rho2();
|
||||||
|
|
||||||
|
// Need to store rho for ddt(rho, U)
|
||||||
|
volScalarField rho
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"rho",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::READ_IF_PRESENT,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
alpha1*rho1 + alpha2*rho2,
|
||||||
|
alpha1.boundaryField().types()
|
||||||
|
);
|
||||||
|
rho.oldTime();
|
||||||
|
|
||||||
|
// Construct interface from alpha1 distribution
|
||||||
|
interfaceProperties interface
|
||||||
|
(
|
||||||
|
alpha1,
|
||||||
|
U,
|
||||||
|
thermo->transportPropertiesDict()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Construct incompressible turbulence model
|
||||||
|
autoPtr<incompressible::turbulenceModel> turbulence
|
||||||
|
(
|
||||||
|
incompressible::turbulenceModel::New(U, phi, thermo())
|
||||||
|
);
|
||||||
|
|
||||||
|
#include "readGravitationalAcceleration.H"
|
||||||
|
#include "readhRef.H"
|
||||||
|
#include "gh.H"
|
||||||
|
|
||||||
|
volScalarField& p = thermo->p();
|
||||||
|
|
||||||
|
label pRefCell = 0;
|
||||||
|
scalar pRefValue = 0.0;
|
||||||
|
setRefCell
|
||||||
|
(
|
||||||
|
p,
|
||||||
|
p_rgh,
|
||||||
|
pimple.dict(),
|
||||||
|
pRefCell,
|
||||||
|
pRefValue
|
||||||
|
);
|
||||||
|
|
||||||
|
if (p_rgh.needReference())
|
||||||
|
{
|
||||||
|
p += dimensionedScalar
|
||||||
|
(
|
||||||
|
"p",
|
||||||
|
p.dimensions(),
|
||||||
|
pRefValue - getRefCellValue(p, pRefCell)
|
||||||
);
|
);
|
||||||
|
p_rgh = p - rho*gh;
|
||||||
|
}
|
||||||
|
|
||||||
|
mesh.setFluxRequired(p_rgh.name());
|
||||||
|
mesh.setFluxRequired(alpha1.name());
|
||||||
|
|
||||||
|
// Turbulent Prandtl number
|
||||||
|
dimensionedScalar Prt("Prt", dimless, thermo->transportPropertiesDict());
|
||||||
|
|
||||||
|
volScalarField kappaEff
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"kappaEff",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
thermo->kappa()
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< "Creating field kinetic energy K\n" << endl;
|
||||||
|
volScalarField K("K", 0.5*magSqr(U));
|
||||||
|
|
||||||
|
Info<< "Creating field pDivU\n" << endl;
|
||||||
|
volScalarField pDivU
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"pDivU",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedScalar("pDivU", p.dimensions()/dimTime, 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
|||||||
@ -56,19 +56,22 @@ Description
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
#include "postProcess.H"
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMesh.H"
|
#include "createMesh.H"
|
||||||
|
#include "createControl.H"
|
||||||
pimpleControl pimple(mesh);
|
|
||||||
|
|
||||||
#include "readGravitationalAcceleration.H"
|
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
#include "createFvOptions.H"
|
#include "createFvOptions.H"
|
||||||
#include "createTimeControls.H"
|
#include "createTimeControls.H"
|
||||||
#include "CourantNo.H"
|
#include "CourantNo.H"
|
||||||
#include "setInitialDeltaT.H"
|
#include "setInitialDeltaT.H"
|
||||||
|
|
||||||
|
volScalarField& T = thermo->T();
|
||||||
|
volScalarField& e = thermo->he();
|
||||||
|
e.oldTime();
|
||||||
|
|
||||||
turbulence->validate();
|
turbulence->validate();
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
Reference in New Issue
Block a user