Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -2,5 +2,6 @@ populationBalanceMoments/populationBalanceMoments.C
|
|||||||
populationBalanceSizeDistribution/populationBalanceSizeDistribution.C
|
populationBalanceSizeDistribution/populationBalanceSizeDistribution.C
|
||||||
phaseForces/phaseForces.C
|
phaseForces/phaseForces.C
|
||||||
phaseMap/phaseMap.C
|
phaseMap/phaseMap.C
|
||||||
|
wallBoilingProperties/wallBoilingProperties.C
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libmultiphaseEulerFoamFunctionObjects
|
LIB = $(FOAM_LIBBIN)/libmultiphaseEulerFoamFunctionObjects
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I../phaseSystems/lnInclude \
|
-I../phaseSystems/lnInclude \
|
||||||
-I../interfacialModels/lnInclude \
|
-I../interfacialModels/lnInclude \
|
||||||
|
-I../multiphaseCompressibleMomentumTransportModels/lnInclude \
|
||||||
-I$(LIB_SRC)/physicalProperties/lnInclude \
|
-I$(LIB_SRC)/physicalProperties/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
|
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
|
||||||
@ -15,6 +16,7 @@ EXE_INC = \
|
|||||||
LIB_LIBS = \
|
LIB_LIBS = \
|
||||||
-lphaseSystem \
|
-lphaseSystem \
|
||||||
-lmultiphaseSystems \
|
-lmultiphaseSystems \
|
||||||
|
-lmultiphaseMomentumTransportModels \
|
||||||
-leulerianInterfacialModels \
|
-leulerianInterfacialModels \
|
||||||
-leulerianInterfacialCompositionModels \
|
-leulerianInterfacialCompositionModels \
|
||||||
-lmultiphaseMomentumTransportModels \
|
-lmultiphaseMomentumTransportModels \
|
||||||
|
|||||||
@ -0,0 +1,200 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "wallBoilingProperties.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
#include "alphatWallBoilingWallFunctionFvPatchScalarField.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace functionObjects
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(wallBoilingProperties, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
functionObject,
|
||||||
|
wallBoilingProperties,
|
||||||
|
dictionary
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::functionObjects::wallBoilingProperties::wallBoilingProperties
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const Time& runTime,
|
||||||
|
const dictionary& dict
|
||||||
|
)
|
||||||
|
:
|
||||||
|
fvMeshFunctionObject(name, runTime, dict),
|
||||||
|
phase_
|
||||||
|
(
|
||||||
|
mesh_.lookupObject<phaseModel>
|
||||||
|
(
|
||||||
|
IOobject::groupName("alpha", dict.lookup("phase"))
|
||||||
|
)
|
||||||
|
),
|
||||||
|
fluid_(mesh_.lookupObject<phaseSystem>("phaseProperties"))
|
||||||
|
{
|
||||||
|
read(dict);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::functionObjects::wallBoilingProperties::~wallBoilingProperties()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
bool Foam::functionObjects::wallBoilingProperties::read(const dictionary& dict)
|
||||||
|
{
|
||||||
|
fvMeshFunctionObject::read(dict);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Foam::functionObjects::wallBoilingProperties::execute()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Foam::functionObjects::wallBoilingProperties::write()
|
||||||
|
{
|
||||||
|
volScalarField dDepartureField
|
||||||
|
(
|
||||||
|
volScalarField::New
|
||||||
|
(
|
||||||
|
IOobject::groupName("dDeparture", phase_.name()),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(dimLength, 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
volScalarField fDepartureField
|
||||||
|
(
|
||||||
|
volScalarField::New
|
||||||
|
(
|
||||||
|
IOobject::groupName("fDeparture", phase_.name()),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(inv(dimTime), 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
volScalarField nucSiteDensityField
|
||||||
|
(
|
||||||
|
volScalarField::New
|
||||||
|
(
|
||||||
|
IOobject::groupName("nucleationSiteDensity", phase_.name()),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(inv(dimArea), 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
volScalarField fLiquidField
|
||||||
|
(
|
||||||
|
volScalarField::New
|
||||||
|
(
|
||||||
|
IOobject::groupName("fLiquid", phase_.name()),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(dimless, 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
volScalarField quenchingHeatFluxField
|
||||||
|
(
|
||||||
|
volScalarField::New
|
||||||
|
(
|
||||||
|
IOobject::groupName("quenchingHeatFlux", phase_.name()),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
volScalarField evaporativeHeatFluxField
|
||||||
|
(
|
||||||
|
volScalarField::New
|
||||||
|
(
|
||||||
|
IOobject::groupName("evaporativeHeatFlux", phase_.name()),
|
||||||
|
mesh_,
|
||||||
|
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef compressible::alphatWallBoilingWallFunctionFvPatchScalarField
|
||||||
|
alphatWallBoilingWallFunction;
|
||||||
|
|
||||||
|
const word alphatName =
|
||||||
|
IOobject::groupName("alphat", phase_.name());
|
||||||
|
|
||||||
|
if (phase_.mesh().foundObject<volScalarField>(alphatName))
|
||||||
|
{
|
||||||
|
const volScalarField& alphat =
|
||||||
|
phase_.mesh().lookupObject<volScalarField>(alphatName);
|
||||||
|
|
||||||
|
const volScalarField::Boundary& alphatBf = alphat.boundaryField();
|
||||||
|
|
||||||
|
forAll(alphatBf, patchi)
|
||||||
|
{
|
||||||
|
if (isA<alphatWallBoilingWallFunction>(alphatBf[patchi]))
|
||||||
|
{
|
||||||
|
const alphatWallBoilingWallFunction& alphatw =
|
||||||
|
refCast
|
||||||
|
<
|
||||||
|
const alphatWallBoilingWallFunction
|
||||||
|
>(alphatBf[patchi]);
|
||||||
|
|
||||||
|
dDepartureField.boundaryFieldRef()[patchi] =
|
||||||
|
alphatw.dDeparture();
|
||||||
|
fDepartureField.boundaryFieldRef()[patchi] =
|
||||||
|
alphatw.depFrequency();
|
||||||
|
nucSiteDensityField.boundaryFieldRef()[patchi] =
|
||||||
|
alphatw.nucSiteDensity();
|
||||||
|
fLiquidField.boundaryFieldRef()[patchi] =
|
||||||
|
alphatw.wallLiquidFraction();
|
||||||
|
quenchingHeatFluxField.boundaryFieldRef()[patchi] =
|
||||||
|
alphatw.quenching();
|
||||||
|
evaporativeHeatFluxField.boundaryFieldRef()[patchi] =
|
||||||
|
alphatw.evaporative();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dDepartureField.write();
|
||||||
|
fDepartureField.write();
|
||||||
|
nucSiteDensityField.write();
|
||||||
|
fLiquidField.write();
|
||||||
|
quenchingHeatFluxField.write();
|
||||||
|
evaporativeHeatFluxField.write();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,149 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::functionObjects::wallBoilingProperties
|
||||||
|
|
||||||
|
Description
|
||||||
|
This function looks up wall boiling wall functions and collects and writes
|
||||||
|
out out the following data:
|
||||||
|
|
||||||
|
- Bubble departure diameter
|
||||||
|
- Bubble departure frequency
|
||||||
|
- Nucleation site density
|
||||||
|
- Effective liquid fraction at the wall
|
||||||
|
- Quenching heat flux
|
||||||
|
- Evaporative heat flux
|
||||||
|
|
||||||
|
Example of function object specification:
|
||||||
|
\verbatim
|
||||||
|
writeWallBoilingProperties
|
||||||
|
{
|
||||||
|
type wallBoilingProperties;
|
||||||
|
functionObjectLibs ( "libmultiphaseEulerFoamFunctionObjects.so" );
|
||||||
|
writeControl writeTime;
|
||||||
|
phase liquid;
|
||||||
|
}
|
||||||
|
\endverbatim
|
||||||
|
|
||||||
|
Usage
|
||||||
|
\table
|
||||||
|
Property | Description | Required | Default value
|
||||||
|
type | type name: wallBoilingProperties | yes |
|
||||||
|
phase | phase name | yes | none
|
||||||
|
\endtable
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
wallBoilingProperties.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef wallBoilingProperties_H
|
||||||
|
#define wallBoilingProperties_H
|
||||||
|
|
||||||
|
#include "fvMeshFunctionObject.H"
|
||||||
|
#include "phaseSystem.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace functionObjects
|
||||||
|
{
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class wallBoilingProperties Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class wallBoilingProperties
|
||||||
|
:
|
||||||
|
public fvMeshFunctionObject
|
||||||
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Phase model
|
||||||
|
const phaseModel& phase_;
|
||||||
|
|
||||||
|
//- Constant access to phaseSystem
|
||||||
|
const phaseSystem& fluid_;
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("wallBoilingProperties");
|
||||||
|
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct from Time and dictionary
|
||||||
|
wallBoilingProperties
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const Time& runTime,
|
||||||
|
const dictionary& dict
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Disallow default bitwise copy construction
|
||||||
|
wallBoilingProperties(const wallBoilingProperties&) = delete;
|
||||||
|
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~wallBoilingProperties();
|
||||||
|
|
||||||
|
|
||||||
|
// Member Functions
|
||||||
|
|
||||||
|
//- Read the wallBoilingProperties data
|
||||||
|
virtual bool read(const dictionary&);
|
||||||
|
|
||||||
|
//- Return the list of fields required
|
||||||
|
virtual wordList fields() const
|
||||||
|
{
|
||||||
|
return wordList::null();
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Calculate the wallBoilingProperties field
|
||||||
|
virtual bool execute();
|
||||||
|
|
||||||
|
//- Write the wallBoilingProperties field
|
||||||
|
virtual bool write();
|
||||||
|
|
||||||
|
|
||||||
|
// Member Operators
|
||||||
|
|
||||||
|
//- Disallow default bitwise assignment
|
||||||
|
void operator=(const wallBoilingProperties&) = delete;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace functionObjects
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -79,7 +79,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
AbyV_(p.size(), 0),
|
AbyV_(p.size(), 0),
|
||||||
alphatConv_(p.size(), 0),
|
alphatConv_(p.size(), 0),
|
||||||
dDep_(p.size(), 1e-5),
|
dDep_(p.size(), 1e-5),
|
||||||
|
fDep_(p.size(), 0),
|
||||||
|
N_(p.size(), 0),
|
||||||
|
fLiquid_(p.size(), 0),
|
||||||
qq_(p.size(), 0),
|
qq_(p.size(), 0),
|
||||||
|
qe_(p.size(), 0),
|
||||||
partitioningModel_(nullptr),
|
partitioningModel_(nullptr),
|
||||||
nucleationSiteModel_(nullptr),
|
nucleationSiteModel_(nullptr),
|
||||||
departureDiamModel_(nullptr),
|
departureDiamModel_(nullptr),
|
||||||
@ -107,7 +111,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
AbyV_(p.size(), 0),
|
AbyV_(p.size(), 0),
|
||||||
alphatConv_(p.size(), 0),
|
alphatConv_(p.size(), 0),
|
||||||
dDep_(p.size(), 1e-5),
|
dDep_(p.size(), 1e-5),
|
||||||
|
fDep_(p.size(), 0),
|
||||||
|
N_(p.size(), 0),
|
||||||
|
fLiquid_(p.size(), 0),
|
||||||
qq_(p.size(), 0),
|
qq_(p.size(), 0),
|
||||||
|
qe_(p.size(), 0),
|
||||||
partitioningModel_(nullptr),
|
partitioningModel_(nullptr),
|
||||||
nucleationSiteModel_(nullptr),
|
nucleationSiteModel_(nullptr),
|
||||||
departureDiamModel_(nullptr),
|
departureDiamModel_(nullptr),
|
||||||
@ -164,9 +172,24 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
dict.subDict("departureFreqModel")
|
dict.subDict("departureFreqModel")
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dict.found("dDep"))
|
if (dict.found("dDeparture"))
|
||||||
{
|
{
|
||||||
dDep_ = scalarField("dDep", dict, p.size());
|
dDep_ = scalarField("dDeparture", dict, p.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dict.found("depFrequency"))
|
||||||
|
{
|
||||||
|
fDep_ = scalarField("depFrequency", dict, p.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dict.found("nucSiteDensity"))
|
||||||
|
{
|
||||||
|
N_ = scalarField("nucSiteDensity", dict, p.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dict.found("wallLiquidFraction"))
|
||||||
|
{
|
||||||
|
fLiquid_ = scalarField("wallLiquidFraction", dict, p.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dict.found("qQuenching"))
|
if (dict.found("qQuenching"))
|
||||||
@ -174,6 +197,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
qq_ = scalarField("qQuenching", dict, p.size());
|
qq_ = scalarField("qQuenching", dict, p.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dict.found("qEvaporation"))
|
||||||
|
{
|
||||||
|
qq_ = scalarField("qEvaporation", dict, p.size());
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -212,7 +240,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
AbyV_(mapper(psf.AbyV_)),
|
AbyV_(mapper(psf.AbyV_)),
|
||||||
alphatConv_(mapper(psf.alphatConv_)),
|
alphatConv_(mapper(psf.alphatConv_)),
|
||||||
dDep_(mapper(psf.dDep_)),
|
dDep_(mapper(psf.dDep_)),
|
||||||
|
fDep_(mapper(psf.fDep_)),
|
||||||
|
N_(mapper(psf.N_)),
|
||||||
|
fLiquid_(mapper(psf.fLiquid_)),
|
||||||
qq_(mapper(psf.qq_)),
|
qq_(mapper(psf.qq_)),
|
||||||
|
qe_(mapper(psf.qe_)),
|
||||||
partitioningModel_(psf.partitioningModel_, false),
|
partitioningModel_(psf.partitioningModel_, false),
|
||||||
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
||||||
departureDiamModel_(psf.departureDiamModel_, false),
|
departureDiamModel_(psf.departureDiamModel_, false),
|
||||||
@ -232,7 +264,11 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
AbyV_(psf.AbyV_),
|
AbyV_(psf.AbyV_),
|
||||||
alphatConv_(psf.alphatConv_),
|
alphatConv_(psf.alphatConv_),
|
||||||
dDep_(psf.dDep_),
|
dDep_(psf.dDep_),
|
||||||
|
fDep_(psf.fDep_),
|
||||||
|
N_(psf.N_),
|
||||||
|
fLiquid_(psf.fLiquid_),
|
||||||
qq_(psf.qq_),
|
qq_(psf.qq_),
|
||||||
|
qe_(psf.qe_),
|
||||||
partitioningModel_(psf.partitioningModel_, false),
|
partitioningModel_(psf.partitioningModel_, false),
|
||||||
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
||||||
departureDiamModel_(psf.departureDiamModel_, false),
|
departureDiamModel_(psf.departureDiamModel_, false),
|
||||||
@ -252,7 +288,11 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::autoMap
|
|||||||
m(AbyV_, AbyV_);
|
m(AbyV_, AbyV_);
|
||||||
m(alphatConv_, alphatConv_);
|
m(alphatConv_, alphatConv_);
|
||||||
m(dDep_, dDep_);
|
m(dDep_, dDep_);
|
||||||
|
m(fDep_, fDep_);
|
||||||
|
m(N_, N_);
|
||||||
|
m(fLiquid_, fLiquid_);
|
||||||
m(qq_, qq_);
|
m(qq_, qq_);
|
||||||
|
m(qe_, qe_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -270,7 +310,11 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::rmap
|
|||||||
AbyV_.rmap(tiptf.AbyV_, addr);
|
AbyV_.rmap(tiptf.AbyV_, addr);
|
||||||
alphatConv_.rmap(tiptf.alphatConv_, addr);
|
alphatConv_.rmap(tiptf.alphatConv_, addr);
|
||||||
dDep_.rmap(tiptf.dDep_, addr);
|
dDep_.rmap(tiptf.dDep_, addr);
|
||||||
|
fDep_.rmap(tiptf.fDep_, addr);
|
||||||
|
N_.rmap(tiptf.N_, addr);
|
||||||
|
fLiquid_.rmap(tiptf.fLiquid_, addr);
|
||||||
qq_.rmap(tiptf.qq_, addr);
|
qq_.rmap(tiptf.qq_, addr);
|
||||||
|
qe_.rmap(tiptf.qe_, addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -287,7 +331,11 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::reset
|
|||||||
AbyV_.reset(tiptf.AbyV_);
|
AbyV_.reset(tiptf.AbyV_);
|
||||||
alphatConv_.reset(tiptf.alphatConv_);
|
alphatConv_.reset(tiptf.alphatConv_);
|
||||||
dDep_.reset(tiptf.dDep_);
|
dDep_.reset(tiptf.dDep_);
|
||||||
|
fDep_.reset(tiptf.fDep_);
|
||||||
|
N_.reset(tiptf.N_);
|
||||||
|
fLiquid_.reset(tiptf.fLiquid_);
|
||||||
qq_.reset(tiptf.qq_);
|
qq_.reset(tiptf.qq_);
|
||||||
|
qe_.reset(tiptf.qe_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -316,13 +364,17 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& vaporw = vapor.boundaryField()[patchi];
|
const scalarField& vaporw = vapor.boundaryField()[patchi];
|
||||||
|
|
||||||
// Partitioning
|
// Partitioning
|
||||||
// NOTE! Assumes 1-thisPhase for liquid fraction in
|
// NOTE! Assumes that there is only only one liquid phase and all
|
||||||
// multiphase simulations
|
// other phases are vapor
|
||||||
const scalarField fLiquid(partitioningModel_->fLiquid(1 - vaporw));
|
|
||||||
|
const phaseModel& liquid = fluid.phases()[otherPhaseName_];
|
||||||
|
const scalarField& liquidw = liquid.boundaryField()[patchi];
|
||||||
|
fLiquid_ = partitioningModel_->fLiquid(liquidw);
|
||||||
|
|
||||||
operator==
|
operator==
|
||||||
(
|
(
|
||||||
calcAlphat(*this)*(1 - fLiquid)/max(vaporw, scalar(1e-8))
|
calcAlphat(*this)*(vaporw/(1 - liquidw + small) )
|
||||||
|
*(1 - fLiquid_)/max(vaporw, scalar(1e-8))
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -441,7 +493,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField liquidw(liquid.boundaryField()[patchi]);
|
const scalarField liquidw(liquid.boundaryField()[patchi]);
|
||||||
|
|
||||||
// Partitioning
|
// Partitioning
|
||||||
const scalarField fLiquid(partitioningModel_->fLiquid(liquidw));
|
fLiquid_ = partitioningModel_->fLiquid(liquidw);
|
||||||
|
|
||||||
// Convective thermal diffusivity
|
// Convective thermal diffusivity
|
||||||
alphatConv_ = calcAlphat(alphatConv_);
|
alphatConv_ = calcAlphat(alphatConv_);
|
||||||
@ -483,8 +535,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Bubble departure frequency:
|
// Bubble departure frequency:
|
||||||
const scalarField fDep
|
fDep_ =
|
||||||
(
|
|
||||||
departureFreqModel_->fDeparture
|
departureFreqModel_->fDeparture
|
||||||
(
|
(
|
||||||
liquid,
|
liquid,
|
||||||
@ -494,12 +545,10 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
Tsatw,
|
Tsatw,
|
||||||
L,
|
L,
|
||||||
dDep_
|
dDep_
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Nucleation site density:
|
// Nucleation site density:
|
||||||
const scalarField N
|
N_ =
|
||||||
(
|
|
||||||
nucleationSiteModel_->N
|
nucleationSiteModel_->N
|
||||||
(
|
(
|
||||||
liquid,
|
liquid,
|
||||||
@ -509,8 +558,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
Tsatw,
|
Tsatw,
|
||||||
L,
|
L,
|
||||||
dDep_,
|
dDep_,
|
||||||
fDep
|
fDep_
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Area fractions:
|
// Area fractions:
|
||||||
@ -523,12 +571,12 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const scalarField Al
|
const scalarField Al
|
||||||
(
|
(
|
||||||
fLiquid*4.8*exp(min(-Ja/80, log(vGreat)))
|
fLiquid_*4.8*exp(min(-Ja/80, log(vGreat)))
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarField A2(min(pi*sqr(dDep_)*N*Al/4, scalar(1)));
|
scalarField A2(min(pi*sqr(dDep_)*N_*Al/4, scalar(1)));
|
||||||
const scalarField A1(max(1 - A2, scalar(1e-4)));
|
const scalarField A1(max(1 - A2, scalar(1e-4)));
|
||||||
scalarField A2E(min(pi*sqr(dDep_)*N*Al/4, scalar(5)));
|
scalarField A2E(min(pi*sqr(dDep_)*N_*Al/4, scalar(5)));
|
||||||
|
|
||||||
if (volatileSpecie != "none" && !liquid.pure())
|
if (volatileSpecie != "none" && !liquid.pure())
|
||||||
{
|
{
|
||||||
@ -542,15 +590,15 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
// wall boiling
|
// wall boiling
|
||||||
dmdtf_ =
|
dmdtf_ =
|
||||||
(1 - relax_)*dmdtf_
|
(1 - relax_)*dmdtf_
|
||||||
+ relax_*(1.0/6.0)*A2E*dDep_*rhoVaporw*fDep*AbyV_;
|
+ relax_*(1.0/6.0)*A2E*dDep_*rhoVaporw*fDep_*AbyV_;
|
||||||
|
|
||||||
// Quenching heat transfer coefficient
|
// Quenching heat transfer coefficient
|
||||||
const scalarField hQ
|
const scalarField hQ
|
||||||
(
|
(
|
||||||
2*(alphaw*Cpw)*fDep
|
2*(alphaw*Cpw)*fDep_
|
||||||
*sqrt
|
*sqrt
|
||||||
(
|
(
|
||||||
(0.8/max(fDep, small))/(pi*alphaw/rhoLiquidw)
|
(0.8/max(fDep_, small))/(pi*alphaw/rhoLiquidw)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -560,7 +608,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
+ relax_*(A2*hQ*max(Tw - Tl, scalar(0)));
|
+ relax_*(A2*hQ*max(Tw - Tl, scalar(0)));
|
||||||
|
|
||||||
// Evaporation heat flux
|
// Evaporation heat flux
|
||||||
const scalarField qe(dmdtf_*L/AbyV_);
|
qe_ = dmdtf_*L/AbyV_;
|
||||||
|
|
||||||
// Effective thermal diffusivity that corresponds to the
|
// Effective thermal diffusivity that corresponds to the
|
||||||
// calculated convective, quenching and evaporative heat
|
// calculated convective, quenching and evaporative heat
|
||||||
@ -570,7 +618,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
(
|
(
|
||||||
(
|
(
|
||||||
A1*alphatConv_
|
A1*alphatConv_
|
||||||
+ (qq_ + qe)/max(hew.snGrad(), scalar(1e-16))
|
+ (qq_ + qe_)/max(hew.snGrad(), scalar(1e-16))
|
||||||
)
|
)
|
||||||
/max(liquidw, scalar(1e-8))
|
/max(liquidw, scalar(1e-8))
|
||||||
);
|
);
|
||||||
@ -585,7 +633,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
{
|
{
|
||||||
const scalarField qc
|
const scalarField qc
|
||||||
(
|
(
|
||||||
fLiquid*A1*(alphatConv_ + alphaw)*hew.snGrad()
|
fLiquid_*A1*(alphatConv_ + alphaw)*hew.snGrad()
|
||||||
);
|
);
|
||||||
|
|
||||||
const scalarField qEff
|
const scalarField qEff
|
||||||
@ -596,11 +644,11 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
Info<< " L: " << gMin(L) << " - " << gMax(L) << endl;
|
Info<< " L: " << gMin(L) << " - " << gMax(L) << endl;
|
||||||
Info<< " Tl: " << gMin(Tl) << " - " << gMax(Tl)
|
Info<< " Tl: " << gMin(Tl) << " - " << gMax(Tl)
|
||||||
<< endl;
|
<< endl;
|
||||||
Info<< " N: " << gMin(N) << " - " << gMax(N) << endl;
|
Info<< " N: " << gMin(N_) << " - " << gMax(N_) << endl;
|
||||||
Info<< " dDep_: " << gMin(dDep_) << " - "
|
Info<< " dDep_: " << gMin(dDep_) << " - "
|
||||||
<< gMax(dDep_) << endl;
|
<< gMax(dDep_) << endl;
|
||||||
Info<< " fDep: " << gMin(fDep) << " - "
|
Info<< " fDep: " << gMin(fDep_) << " - "
|
||||||
<< gMax(fDep) << endl;
|
<< gMax(fDep_) << endl;
|
||||||
Info<< " Al: " << gMin(Al) << " - " << gMax(Al)
|
Info<< " Al: " << gMin(Al) << " - " << gMax(Al)
|
||||||
<< endl;
|
<< endl;
|
||||||
Info<< " A1: " << gMin(A1) << " - " << gMax(A1)
|
Info<< " A1: " << gMin(A1) << " - " << gMax(A1)
|
||||||
@ -613,10 +661,10 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
<< gMax(dmdtf_) << endl;
|
<< gMax(dmdtf_) << endl;
|
||||||
Info<< " qc: " << gMin(qc) << " - " << gMax(qc)
|
Info<< " qc: " << gMin(qc) << " - " << gMax(qc)
|
||||||
<< endl;
|
<< endl;
|
||||||
Info<< " qq: " << gMin(fLiquid*qq_) << " - "
|
Info<< " qq: " << gMin(fLiquid_*qq_) << " - "
|
||||||
<< gMax(fLiquid*qq_) << endl;
|
<< gMax(fLiquid_*qq_) << endl;
|
||||||
Info<< " qe: " << gMin(fLiquid*qe) << " - "
|
Info<< " qe: " << gMin(fLiquid_*qe_) << " - "
|
||||||
<< gMax(fLiquid*qe) << endl;
|
<< gMax(fLiquid_*qe_) << endl;
|
||||||
Info<< " qEff: " << gMin(qEff) << " - "
|
Info<< " qEff: " << gMin(qEff) << " - "
|
||||||
<< gMax(qEff) << endl;
|
<< gMax(qEff) << endl;
|
||||||
Info<< " alphat: " << gMin(*this) << " - "
|
Info<< " alphat: " << gMin(*this) << " - "
|
||||||
@ -672,8 +720,12 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::write(Ostream& os) const
|
|||||||
|
|
||||||
writeEntry(os, "phaseType", phaseTypeNames_[phaseType_]);
|
writeEntry(os, "phaseType", phaseTypeNames_[phaseType_]);
|
||||||
writeEntry(os, "alphatConv", alphatConv_);
|
writeEntry(os, "alphatConv", alphatConv_);
|
||||||
writeEntry(os, "dDep", dDep_);
|
writeEntry(os, "dDeparture", dDep_);
|
||||||
|
writeEntry(os, "depFrequency", fDep_);
|
||||||
|
writeEntry(os, "nucSiteDensity", N_);
|
||||||
|
writeEntry(os, "wallLiquidFraction", fLiquid_);
|
||||||
writeEntry(os, "qQuenching", qq_);
|
writeEntry(os, "qQuenching", qq_);
|
||||||
|
writeEntry(os, "qEvaporative", qe_);
|
||||||
|
|
||||||
switch (phaseType_)
|
switch (phaseType_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -184,12 +184,25 @@ private:
|
|||||||
//- Convective turbulent thermal diffusivity
|
//- Convective turbulent thermal diffusivity
|
||||||
scalarField alphatConv_;
|
scalarField alphatConv_;
|
||||||
|
|
||||||
//- Departure diameter field
|
//- Departure diameter
|
||||||
scalarField dDep_;
|
scalarField dDep_;
|
||||||
|
|
||||||
|
//- Departure frequency
|
||||||
|
scalarField fDep_;
|
||||||
|
|
||||||
|
//- Nucleation site density
|
||||||
|
scalarField N_;
|
||||||
|
|
||||||
|
//- Wall liquid fraction
|
||||||
|
scalarField fLiquid_;
|
||||||
|
|
||||||
//- Quenching surface heat flux
|
//- Quenching surface heat flux
|
||||||
scalarField qq_;
|
scalarField qq_;
|
||||||
|
|
||||||
|
//- Evaporative surface heat flux
|
||||||
|
scalarField qe_;
|
||||||
|
|
||||||
|
|
||||||
//- Run-time selected heat flux partitioning model
|
//- Run-time selected heat flux partitioning model
|
||||||
autoPtr<wallBoilingModels::partitioningModel>
|
autoPtr<wallBoilingModels::partitioningModel>
|
||||||
partitioningModel_;
|
partitioningModel_;
|
||||||
@ -269,12 +282,42 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Return the departure diameter field
|
//- Return the departure diameter field [m]
|
||||||
const scalarField& dDeparture() const
|
const scalarField& dDeparture() const
|
||||||
{
|
{
|
||||||
return dDep_;
|
return dDep_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return the departure frequency field [Hz]
|
||||||
|
const scalarField& depFrequency() const
|
||||||
|
{
|
||||||
|
return fDep_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the nucleation site density field [1/m^2]
|
||||||
|
const scalarField& nucSiteDensity() const
|
||||||
|
{
|
||||||
|
return N_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the wall liquid fraction field [-]
|
||||||
|
const scalarField& wallLiquidFraction() const
|
||||||
|
{
|
||||||
|
return fLiquid_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the quenching surface heat flux field [W/m^2]
|
||||||
|
const scalarField& quenching() const
|
||||||
|
{
|
||||||
|
return qq_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the evaporative surface heat flux field [W/m^2]
|
||||||
|
const scalarField& evaporative() const
|
||||||
|
{
|
||||||
|
return qe_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Mapping functions
|
// Mapping functions
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,24 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Description
|
||||||
|
This function looks up wall boiling wall functions and collects and writes
|
||||||
|
out out fields of bubble departure diameter, bubble departure frequency,
|
||||||
|
nucleation site density, effective liquid fraction at the wall, quenching
|
||||||
|
heat flux, and evaporative heat flux.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
type wallBoilingProperties;
|
||||||
|
libs ("libmultiphaseEulerFoamFunctionObjects.so");
|
||||||
|
|
||||||
|
phase <phaseName>;
|
||||||
|
|
||||||
|
writeControl writeTime;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -10,7 +10,7 @@ FoamFile
|
|||||||
format ascii;
|
format ascii;
|
||||||
class volScalarField;
|
class volScalarField;
|
||||||
location "0";
|
location "0";
|
||||||
object omega.liquid;
|
object omega.gas;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -31,4 +31,16 @@ runApplication foamPostProcess -latestTime -func "
|
|||||||
|
|
||||||
./validation/createGraphs
|
./validation/createGraphs
|
||||||
|
|
||||||
|
runApplication -append foamPostProcess -latestTime -func "
|
||||||
|
patchSurface
|
||||||
|
(
|
||||||
|
funcName=patchWallBoilingProperties,
|
||||||
|
patch=wall,
|
||||||
|
surfaceFormat=raw,
|
||||||
|
interpolate=false,
|
||||||
|
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
|
||||||
|
)"
|
||||||
|
|
||||||
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object fvModels;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationGas
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase gas;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationLiquid
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase liquid;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
@ -14,6 +14,15 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
simulationType laminar;
|
simulationType RAS;
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model kOmegaSST;
|
||||||
|
|
||||||
|
turbulence on;
|
||||||
|
printCoeffs on;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -19,4 +19,11 @@ laminar
|
|||||||
model Fourier;
|
model Fourier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model eddyDiffusivity;
|
||||||
|
|
||||||
|
Prt 1;
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -54,6 +54,13 @@ maxDeltaT 0.001;
|
|||||||
|
|
||||||
functions
|
functions
|
||||||
{
|
{
|
||||||
|
writeWallBoilingProperties
|
||||||
|
{
|
||||||
|
type wallBoilingProperties;
|
||||||
|
functionObjectLibs ( "libmultiphaseEulerFoamFunctionObjects.so" );
|
||||||
|
writeControl writeTime;
|
||||||
|
phase liquid;
|
||||||
|
}
|
||||||
outflow
|
outflow
|
||||||
{
|
{
|
||||||
type surfaceFieldValue;
|
type surfaceFieldValue;
|
||||||
|
|||||||
@ -79,7 +79,7 @@ relaxationFactors
|
|||||||
equations
|
equations
|
||||||
{
|
{
|
||||||
".*" 1;
|
".*" 1;
|
||||||
"h\..*" 1.0;
|
"h\..*" 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if ! which gnuplot > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo 'gnuplot not found - skipping graph creation' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
graphFile=$(foamListTimes -latestTime)/patch.xy
|
||||||
|
|
||||||
|
gnuplot<<EOF
|
||||||
|
|
||||||
|
set terminal postscript eps size 8,9 color enhanced font "Helvetica,20"
|
||||||
|
set output "./validation/$(basename "$PWD")Properties.eps"
|
||||||
|
set multiplot layout 2,2
|
||||||
|
set decimalsign '.'
|
||||||
|
set grid
|
||||||
|
|
||||||
|
set key at graph 0.65,0.95
|
||||||
|
set ylabel 'Vertical coordinate (m)'
|
||||||
|
set yrange [0:4]
|
||||||
|
|
||||||
|
set xlabel 'Departure diameter (mm)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u (\$4*1000):1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Departure frequency (Hz)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Nucleation Site Density (1/m^2)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Heat flux partitioning function, liquid (-)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 7:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set key at graph 0.99,0.95
|
||||||
|
|
||||||
|
unset multiplot
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -16,7 +16,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [0 1 -1 0 0 0 0];
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform (1.96244 0 0);
|
internalField uniform (1.75175 0 0);
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
@ -24,13 +24,13 @@ boundaryField
|
|||||||
{
|
{
|
||||||
type mappedInternalValue;
|
type mappedInternalValue;
|
||||||
interpolationScheme cell;
|
interpolationScheme cell;
|
||||||
value uniform (1.96244 0 0);
|
value uniform (1.75175 0 0);
|
||||||
}
|
}
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type pressureInletOutletVelocity;
|
type pressureInletOutletVelocity;
|
||||||
phi phi.gas;
|
phi phi.gas;
|
||||||
value uniform (1.96244 0 0);
|
value uniform (1.75175 0 0);
|
||||||
}
|
}
|
||||||
wall
|
wall
|
||||||
{
|
{
|
||||||
|
|||||||
@ -16,22 +16,22 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [0 1 -1 0 0 0 0];
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform (1.743138395 0 0);
|
internalField uniform (1.75175 0 0);
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type mappedInternalValue;
|
type mappedInternalValue;
|
||||||
average (1.743138395 0 0);
|
average (1.75175 0 0);
|
||||||
interpolationScheme cell;
|
interpolationScheme cell;
|
||||||
value uniform (1.743138395 0 0);
|
value uniform (1.75175 0 0);
|
||||||
}
|
}
|
||||||
outlet
|
outlet
|
||||||
{
|
{
|
||||||
type pressureInletOutletVelocity;
|
type pressureInletOutletVelocity;
|
||||||
phi phi.liquid;
|
phi phi.liquid;
|
||||||
value uniform (1.743138395 0 0);
|
value uniform (1.75175 0 0);
|
||||||
}
|
}
|
||||||
wall
|
wall
|
||||||
{
|
{
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object omega.liquid;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.01;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type mappedInternalValue;
|
||||||
|
interpolationScheme cell;
|
||||||
|
value uniform 0.01;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
phi phi.liquid;
|
||||||
|
inletValue uniform 0.0015;
|
||||||
|
value uniform 0.01;
|
||||||
|
}
|
||||||
|
wall
|
||||||
|
{
|
||||||
|
type omegaWallFunction;
|
||||||
|
Cmu 0.09;
|
||||||
|
kappa 0.41;
|
||||||
|
E 9.8;
|
||||||
|
value uniform 0.001;
|
||||||
|
}
|
||||||
|
front
|
||||||
|
{
|
||||||
|
type wedge;
|
||||||
|
}
|
||||||
|
back
|
||||||
|
{
|
||||||
|
type wedge;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -31,4 +31,16 @@ runApplication foamPostProcess -latestTime -func "
|
|||||||
|
|
||||||
./validation/createGraphs
|
./validation/createGraphs
|
||||||
|
|
||||||
|
runApplication -append foamPostProcess -latestTime -func "
|
||||||
|
patchSurface
|
||||||
|
(
|
||||||
|
funcName=patchWallBoilingProperties,
|
||||||
|
patch=wall,
|
||||||
|
surfaceFormat=raw,
|
||||||
|
interpolate=false,
|
||||||
|
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
|
||||||
|
)"
|
||||||
|
|
||||||
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object fvModels;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationGas
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase gas;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationLiquid
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase liquid;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
@ -14,6 +14,15 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
simulationType laminar;
|
simulationType RAS;
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model kOmegaSST;
|
||||||
|
|
||||||
|
turbulence on;
|
||||||
|
printCoeffs on;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -98,15 +98,12 @@ heatTransfer
|
|||||||
{
|
{
|
||||||
gas_dispersedIn_liquid_inThe_gas
|
gas_dispersedIn_liquid_inThe_gas
|
||||||
{
|
{
|
||||||
type constantNu;
|
type spherical;
|
||||||
Nu 1e1;
|
|
||||||
residualAlpha 1e-4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gas_dispersedIn_liquid_inThe_liquid
|
gas_dispersedIn_liquid_inThe_liquid
|
||||||
{
|
{
|
||||||
type RanzMarshall;
|
type RanzMarshall;
|
||||||
residualAlpha 1e-4;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,7 +200,4 @@ surfaceTension
|
|||||||
phaseTransfer
|
phaseTransfer
|
||||||
{}
|
{}
|
||||||
|
|
||||||
interfaceCompression
|
|
||||||
{}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -19,4 +19,11 @@ laminar
|
|||||||
model Fourier;
|
model Fourier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model eddyDiffusivity;
|
||||||
|
|
||||||
|
Prt 1;
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -54,6 +54,13 @@ maxDeltaT 0.001;
|
|||||||
|
|
||||||
functions
|
functions
|
||||||
{
|
{
|
||||||
|
writeWallBoilingProperties
|
||||||
|
{
|
||||||
|
type wallBoilingProperties;
|
||||||
|
functionObjectLibs ( "libmultiphaseEulerFoamFunctionObjects.so" );
|
||||||
|
writeControl writeTime;
|
||||||
|
phase liquid;
|
||||||
|
}
|
||||||
outflow
|
outflow
|
||||||
{
|
{
|
||||||
type surfaceFieldValue;
|
type surfaceFieldValue;
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if ! which gnuplot > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo 'gnuplot not found - skipping graph creation' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
graphFile=$(foamListTimes -latestTime)/patch.xy
|
||||||
|
|
||||||
|
gnuplot<<EOF
|
||||||
|
|
||||||
|
set terminal postscript eps size 8,9 color enhanced font "Helvetica,20"
|
||||||
|
set output "./validation/$(basename "$PWD")Properties.eps"
|
||||||
|
set multiplot layout 2,2
|
||||||
|
set decimalsign '.'
|
||||||
|
set grid
|
||||||
|
|
||||||
|
set key at graph 0.65,0.95
|
||||||
|
set ylabel 'Vertical coordinate (m)'
|
||||||
|
set yrange [0:4]
|
||||||
|
|
||||||
|
set xlabel 'Departure diameter (mm)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u (\$4*1000):1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Departure frequency (Hz)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Nucleation Site Density (1/m^2)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Heat flux partitioning function, liquid (-)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 7:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set key at graph 0.99,0.95
|
||||||
|
|
||||||
|
unset multiplot
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -32,4 +32,16 @@ runApplication foamPostProcess -latestTime -func "
|
|||||||
|
|
||||||
./validation/createGraphs
|
./validation/createGraphs
|
||||||
|
|
||||||
|
runApplication -append foamPostProcess -latestTime -func "
|
||||||
|
patchSurface
|
||||||
|
(
|
||||||
|
funcName=patchWallBoilingProperties,
|
||||||
|
patch=wall,
|
||||||
|
surfaceFormat=raw,
|
||||||
|
interpolate=false,
|
||||||
|
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
|
||||||
|
)"
|
||||||
|
|
||||||
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object fvModels;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationGas
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase gas;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationLiquid
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase liquid;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
@ -14,6 +14,15 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
simulationType laminar;
|
simulationType RAS;
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model kOmegaSST;
|
||||||
|
|
||||||
|
turbulence on;
|
||||||
|
printCoeffs on;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -246,7 +246,4 @@ surfaceTension
|
|||||||
phaseTransfer
|
phaseTransfer
|
||||||
{}
|
{}
|
||||||
|
|
||||||
interfaceCompression
|
|
||||||
{}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -19,4 +19,11 @@ laminar
|
|||||||
model Fourier;
|
model Fourier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model eddyDiffusivity;
|
||||||
|
|
||||||
|
Prt 1;
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -54,6 +54,13 @@ maxDeltaT 0.001;
|
|||||||
|
|
||||||
functions
|
functions
|
||||||
{
|
{
|
||||||
|
writeWallBoilingProperties
|
||||||
|
{
|
||||||
|
type wallBoilingProperties;
|
||||||
|
functionObjectLibs ( "libmultiphaseEulerFoamFunctionObjects.so" );
|
||||||
|
writeControl writeTime;
|
||||||
|
phase liquid;
|
||||||
|
}
|
||||||
volumeDensity.diameter.bubbles
|
volumeDensity.diameter.bubbles
|
||||||
{
|
{
|
||||||
type populationBalanceSizeDistribution;
|
type populationBalanceSizeDistribution;
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if ! which gnuplot > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo 'gnuplot not found - skipping graph creation' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
graphFile=$(foamListTimes -latestTime)/patch.xy
|
||||||
|
|
||||||
|
gnuplot<<EOF
|
||||||
|
|
||||||
|
set terminal postscript eps size 8,9 color enhanced font "Helvetica,20"
|
||||||
|
set output "./validation/$(basename "$PWD")Properties.eps"
|
||||||
|
set multiplot layout 2,2
|
||||||
|
set decimalsign '.'
|
||||||
|
set grid
|
||||||
|
|
||||||
|
set key at graph 0.65,0.95
|
||||||
|
set ylabel 'Vertical coordinate (m)'
|
||||||
|
set yrange [0:4]
|
||||||
|
|
||||||
|
set xlabel 'Departure diameter (mm)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u (\$4*1000):1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Departure frequency (Hz)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Nucleation Site Density (1/m^2)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Heat flux partitioning function, liquid (-)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 7:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set key at graph 0.99,0.95
|
||||||
|
|
||||||
|
unset multiplot
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
@ -32,4 +32,16 @@ runApplication foamPostProcess -latestTime -func "
|
|||||||
|
|
||||||
./validation/createGraphs
|
./validation/createGraphs
|
||||||
|
|
||||||
|
runApplication -append foamPostProcess -latestTime -func "
|
||||||
|
patchSurface
|
||||||
|
(
|
||||||
|
funcName=patchWallBoilingProperties,
|
||||||
|
patch=wall,
|
||||||
|
surfaceFormat=raw,
|
||||||
|
interpolate=false,
|
||||||
|
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
|
||||||
|
)"
|
||||||
|
|
||||||
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object fvModels;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationGas
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase gas;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationGas2
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase gas2;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
phaseTurbulenceStabilisationLiquid
|
||||||
|
{
|
||||||
|
type phaseTurbulenceStabilisation;
|
||||||
|
|
||||||
|
libs ("libmultiphaseEulerFoamFvModels.so");
|
||||||
|
|
||||||
|
phase liquid;
|
||||||
|
|
||||||
|
alphaInversion 0.1;
|
||||||
|
}
|
||||||
@ -14,6 +14,15 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
simulationType laminar;
|
simulationType RAS;
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model kOmegaSST;
|
||||||
|
|
||||||
|
turbulence on;
|
||||||
|
printCoeffs on;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -14,6 +14,14 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
simulationType laminar;
|
simulationType RAS;
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model kOmegaSST;
|
||||||
|
|
||||||
|
turbulence on;
|
||||||
|
printCoeffs on;
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -192,13 +192,11 @@ heatTransfer
|
|||||||
gas_dispersedIn_liquid_inThe_liquid
|
gas_dispersedIn_liquid_inThe_liquid
|
||||||
{
|
{
|
||||||
type RanzMarshall;
|
type RanzMarshall;
|
||||||
residualAlpha 1e-4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gas2_dispersedIn_liquid_inThe_liquid
|
gas2_dispersedIn_liquid_inThe_liquid
|
||||||
{
|
{
|
||||||
type RanzMarshall;
|
type RanzMarshall;
|
||||||
residualAlpha 1e-4;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,26 +228,7 @@ lift
|
|||||||
|
|
||||||
gas2_dispersedIn_liquid
|
gas2_dispersedIn_liquid
|
||||||
{
|
{
|
||||||
type wallDamped;
|
$gas_dispersedIn_liquid
|
||||||
|
|
||||||
lift
|
|
||||||
{
|
|
||||||
type Tomiyama;
|
|
||||||
Cl 0.288;
|
|
||||||
|
|
||||||
aspectRatio
|
|
||||||
{
|
|
||||||
type constant;
|
|
||||||
E0 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wallDamping
|
|
||||||
{
|
|
||||||
type cosine;
|
|
||||||
Cd 1.0;
|
|
||||||
zeroWallDist 0.0002;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,9 +243,7 @@ wallLubrication
|
|||||||
|
|
||||||
gas2_dispersedIn_liquid
|
gas2_dispersedIn_liquid
|
||||||
{
|
{
|
||||||
type Antal;
|
$gas_dispersedIn_liquid
|
||||||
Cw1 -0.01;
|
|
||||||
Cw2 0.05;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,24 +299,7 @@ saturation
|
|||||||
|
|
||||||
gas2_liquid
|
gas2_liquid
|
||||||
{
|
{
|
||||||
type function1;
|
$gas_liquid
|
||||||
|
|
||||||
function scale;
|
|
||||||
|
|
||||||
xScale 1e-6;
|
|
||||||
scale 1;
|
|
||||||
value
|
|
||||||
{
|
|
||||||
type tableFile;
|
|
||||||
format csv;
|
|
||||||
nHeaderLine 1;
|
|
||||||
refColumn 1;
|
|
||||||
componentColumns (0);
|
|
||||||
mergeSeparators no;
|
|
||||||
file "$FOAM_TUTORIALS/resources/thermoData/wallBoiling-saturation.csv";
|
|
||||||
outOfBounds clamp;
|
|
||||||
interpolationScheme linear;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,8 +313,7 @@ surfaceTension
|
|||||||
|
|
||||||
gas2_liquid
|
gas2_liquid
|
||||||
{
|
{
|
||||||
type constant;
|
$gas_liquid
|
||||||
sigma 0.00176574;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,4 +19,11 @@ laminar
|
|||||||
model Fourier;
|
model Fourier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model eddyDiffusivity;
|
||||||
|
|
||||||
|
Prt 1;
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -19,4 +19,11 @@ laminar
|
|||||||
model Fourier;
|
model Fourier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RAS
|
||||||
|
{
|
||||||
|
model eddyDiffusivity;
|
||||||
|
|
||||||
|
Prt 1;
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -54,6 +54,13 @@ maxDeltaT 0.001;
|
|||||||
|
|
||||||
functions
|
functions
|
||||||
{
|
{
|
||||||
|
writeWallBoilingProperties
|
||||||
|
{
|
||||||
|
type wallBoilingProperties;
|
||||||
|
functionObjectLibs ( "libmultiphaseEulerFoamFunctionObjects.so" );
|
||||||
|
writeControl writeTime;
|
||||||
|
phase liquid;
|
||||||
|
}
|
||||||
volumeDensity.diameter.bubbles
|
volumeDensity.diameter.bubbles
|
||||||
{
|
{
|
||||||
type populationBalanceSizeDistribution;
|
type populationBalanceSizeDistribution;
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if ! which gnuplot > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo 'gnuplot not found - skipping graph creation' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
graphFile=$(foamListTimes -latestTime)/patch.xy
|
||||||
|
|
||||||
|
gnuplot<<EOF
|
||||||
|
|
||||||
|
set terminal postscript eps size 8,9 color enhanced font "Helvetica,20"
|
||||||
|
set output "./validation/$(basename "$PWD")Properties.eps"
|
||||||
|
set multiplot layout 2,2
|
||||||
|
set decimalsign '.'
|
||||||
|
set grid
|
||||||
|
|
||||||
|
set key at graph 0.65,0.95
|
||||||
|
set ylabel 'Vertical coordinate (m)'
|
||||||
|
set yrange [0:4]
|
||||||
|
|
||||||
|
set xlabel 'Departure diameter (mm)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u (\$4*1000):1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Departure frequency (Hz)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Nucleation Site Density (1/m^2)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 5:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set xlabel 'Heat flux partitioning function, liquid (-)'
|
||||||
|
plot \
|
||||||
|
"postProcessing/patchWallBoilingProperties/$graphFile" \
|
||||||
|
u 7:1 w lp lt 1 t 'Simulation' \
|
||||||
|
|
||||||
|
set key at graph 0.99,0.95
|
||||||
|
|
||||||
|
unset multiplot
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
Reference in New Issue
Block a user