surfaceFilmModels: Rationalised and standardised the surfaceFilmProperties dictionary
The convoluted separate ".*Coeffs" dictionary form of model coefficient
specification is now deprecated and replaced with the simpler sub-dictionary
form but support is provided for the deprecated form for backward comparability.
e.g.
thermophysicalProperties
{
type liquid;
useReferenceValues no;
liquid H2O;
}
rather than
filmThermoModel liquid;
liquidCoeffs
{
useReferenceValues no;
liquid H2O;
}
and
forces
{
thermocapillary;
distributionContactAngle
{
Ccf 0.085;
distribution
{
type normal;
normalDistribution
{
minValue 50;
maxValue 100;
expectation 75;
variance 100;
}
}
zeroForcePatches ();
}
}
rather than
forces
(
thermocapillary
distributionContactAngle
);
distributionContactAngleCoeffs
{
Ccf 0.085;
distribution
{
type normal;
normalDistribution
{
minValue 50;
maxValue 100;
expectation 75;
variance 100;
}
}
zeroForcePatches ();
}
All the tutorial cases containing a surface film have been updated for guidance,
e.g. tutorials/lagrangian/buoyantReactingParticleFoam/hotBoxes/constant/surfaceFilmProperties
surfaceFilmModel thermoSingleLayer;
regionName wallFilmRegion;
active true;
thermophysicalProperties
{
type liquid;
useReferenceValues no;
liquid H2O;
}
viscosity
{
model liquid;
}
deltaWet 1e-4;
hydrophilic no;
momentumTransport
{
model laminar;
Cf 0.005;
}
forces
{
thermocapillary;
distributionContactAngle
{
Ccf 0.085;
distribution
{
type normal;
normalDistribution
{
minValue 50;
maxValue 100;
expectation 75;
variance 100;
}
}
zeroForcePatches ();
}
}
injection
{
curvatureSeparation
{
definedPatchRadii
(
("(cube[0-9][0-9]_side[0-9]_to_cube[0-9][0-9]_side[0-9])" 0)
);
}
drippingInjection
{
cloudName reactingCloud1;
deltaStable 0;
particlesPerParcel 100.0;
parcelDistribution
{
type RosinRammler;
RosinRammlerDistribution
{
minValue 5e-04;
maxValue 0.0012;
d 7.5e-05;
n 0.5;
}
}
}
}
phaseChange
{
model standardPhaseChange;
Tb 373;
deltaMin 1e-8;
L 1.0;
}
upperSurfaceModels
{
heatTransfer
{
model mappedConvectiveHeatTransfer;
}
}
lowerSurfaceModels
{
heatTransfer
{
model constant;
c0 50;
}
}
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -60,7 +60,7 @@ Foam::subModelBase::subModelBase
|
||||
dict_(dict),
|
||||
baseName_(baseName),
|
||||
modelType_(modelType),
|
||||
coeffDict_(dict.subDict(modelType + dictExt))
|
||||
coeffDict_(dict.optionalSubDict(modelType + dictExt))
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -398,7 +398,7 @@ Foam::regionModels::regionModel::regionModel
|
||||
infoOutput_(true),
|
||||
modelName_(modelName),
|
||||
regionMeshPtr_(nullptr),
|
||||
coeffs_(subOrEmptyDict(modelName + "Coeffs")),
|
||||
coeffs_(optionalSubDict(modelName + "Coeffs")),
|
||||
outputPropertiesPtr_(nullptr),
|
||||
primaryPatchIDs_(),
|
||||
intCoupledPatchIDs_(),
|
||||
@ -446,7 +446,7 @@ Foam::regionModels::regionModel::regionModel
|
||||
infoOutput_(false),
|
||||
modelName_(modelName),
|
||||
regionMeshPtr_(nullptr),
|
||||
coeffs_(dict.subOrEmptyDict(modelName + "Coeffs")),
|
||||
coeffs_(dict.optionalSubDict(modelName + "Coeffs")),
|
||||
outputPropertiesPtr_(nullptr),
|
||||
primaryPatchIDs_(),
|
||||
intCoupledPatchIDs_(),
|
||||
|
||||
@ -69,9 +69,9 @@ bool kinematicSingleLayer::read()
|
||||
|
||||
void kinematicSingleLayer::correctThermoFields()
|
||||
{
|
||||
rho_ == filmThermo_->rho();
|
||||
mu_ == filmThermo_->mu();
|
||||
sigma_ == filmThermo_->sigma();
|
||||
rho_ == thermo_->rho();
|
||||
mu_ == thermo_->mu();
|
||||
sigma_ == thermo_->sigma();
|
||||
}
|
||||
|
||||
|
||||
@ -215,7 +215,7 @@ void kinematicSingleLayer::updateSubmodels()
|
||||
// Update mass source field
|
||||
rhoSp_ += cloudMassTrans_/regionMesh().V()/time().deltaT();
|
||||
|
||||
turbulence_->correct();
|
||||
momentumTransport_->correct();
|
||||
}
|
||||
|
||||
|
||||
@ -286,7 +286,7 @@ void kinematicSingleLayer::updateSurfaceVelocities()
|
||||
|
||||
Uw_ -= nHat()*(Uw_ & nHat());
|
||||
|
||||
Us_ = turbulence_->Us();
|
||||
Us_ = momentumTransport_->Us();
|
||||
}
|
||||
|
||||
|
||||
@ -316,7 +316,7 @@ tmp<Foam::fvVectorMatrix> kinematicSingleLayer::solveMomentum
|
||||
- fvm::Sp(rVDt*(cloudMassTrans_() + primaryMassTrans_()), U_)
|
||||
|
||||
+ forces_.correct(U_)
|
||||
+ turbulence_->Su(U_)
|
||||
+ momentumTransport_->Su(U_)
|
||||
);
|
||||
|
||||
fvVectorMatrix& UEqn = tUEqn.ref();
|
||||
@ -828,7 +828,7 @@ kinematicSingleLayer::kinematicSingleLayer
|
||||
this->mappedFieldAndInternalPatchTypes<scalar>()
|
||||
),
|
||||
|
||||
filmThermo_(filmThermoModel::New(*this, coeffs_)),
|
||||
thermo_(thermoModel::New(*this, coeffs_)),
|
||||
|
||||
availableMass_(regionMesh().nCells(), 0),
|
||||
|
||||
@ -836,7 +836,7 @@ kinematicSingleLayer::kinematicSingleLayer
|
||||
|
||||
transfer_(*this, coeffs_),
|
||||
|
||||
turbulence_(filmMomentumTransportModel::New(*this, coeffs_)),
|
||||
momentumTransport_(momentumTransportModel::New(*this, coeffs_)),
|
||||
|
||||
forces_(*this, coeffs_),
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
// Forward class declarations
|
||||
class filmThermoModel;
|
||||
class thermoModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class kinematicSingleLayer Declaration
|
||||
@ -190,7 +190,7 @@ protected:
|
||||
// Sub-models
|
||||
|
||||
//- Film thermo model
|
||||
autoPtr<filmThermoModel> filmThermo_;
|
||||
autoPtr<thermoModel> thermo_;
|
||||
|
||||
//- Available mass for transfer via sub-models
|
||||
scalarField availableMass_;
|
||||
@ -201,8 +201,8 @@ protected:
|
||||
//- Transfer with the continuous phase
|
||||
transferModelList transfer_;
|
||||
|
||||
//- Turbulence model
|
||||
autoPtr<filmMomentumTransportModel> turbulence_;
|
||||
//- Momentum transport model
|
||||
autoPtr<momentumTransportModel> momentumTransport_;
|
||||
|
||||
//- List of film forces
|
||||
forceList forces_;
|
||||
@ -447,7 +447,7 @@ public:
|
||||
// Sub-models
|
||||
|
||||
//- Film thermo
|
||||
inline const filmThermoModel& filmThermo() const;
|
||||
inline const thermoModel& thermo() const;
|
||||
|
||||
//- Injection
|
||||
inline injectionModelList& injection();
|
||||
@ -455,8 +455,8 @@ public:
|
||||
//- Transfer
|
||||
inline transferModelList& transfer();
|
||||
|
||||
//- Turbulence
|
||||
inline const filmMomentumTransportModel& turbulence() const;
|
||||
//- Momentum transport
|
||||
inline const momentumTransportModel& momentumTransport() const;
|
||||
|
||||
|
||||
// Helper functions
|
||||
|
||||
@ -195,9 +195,9 @@ inline const volScalarField& kinematicSingleLayer::muPrimary() const
|
||||
}
|
||||
|
||||
|
||||
inline const filmThermoModel& kinematicSingleLayer::filmThermo() const
|
||||
inline const thermoModel& kinematicSingleLayer::thermo() const
|
||||
{
|
||||
return filmThermo_();
|
||||
return thermo_();
|
||||
}
|
||||
|
||||
|
||||
@ -213,10 +213,10 @@ inline transferModelList& kinematicSingleLayer::transfer()
|
||||
}
|
||||
|
||||
|
||||
inline const filmMomentumTransportModel&
|
||||
kinematicSingleLayer::turbulence() const
|
||||
inline const momentumTransportModel&
|
||||
kinematicSingleLayer::momentumTransport() const
|
||||
{
|
||||
return turbulence_();
|
||||
return momentumTransport_();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -36,12 +36,12 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(filmMomentumTransportModel, 0);
|
||||
defineRunTimeSelectionTable(filmMomentumTransportModel, dictionary);
|
||||
defineTypeNameAndDebug(momentumTransportModel, 0);
|
||||
defineRunTimeSelectionTable(momentumTransportModel, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmMomentumTransportModel::filmMomentumTransportModel
|
||||
momentumTransportModel::momentumTransportModel
|
||||
(
|
||||
surfaceFilmRegionModel& film
|
||||
)
|
||||
@ -50,7 +50,7 @@ filmMomentumTransportModel::filmMomentumTransportModel
|
||||
{}
|
||||
|
||||
|
||||
filmMomentumTransportModel::filmMomentumTransportModel
|
||||
momentumTransportModel::momentumTransportModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -63,7 +63,7 @@ filmMomentumTransportModel::filmMomentumTransportModel
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
filmMomentumTransportModel::~filmMomentumTransportModel()
|
||||
momentumTransportModel::~momentumTransportModel()
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -22,10 +22,10 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::regionModels::surfaceFilmModels::filmMomentumTransportModel
|
||||
Foam::regionModels::surfaceFilmModels::momentumTransportModel
|
||||
|
||||
Description
|
||||
Base class for film turbulence models
|
||||
Base class for film momentum transport models
|
||||
|
||||
SourceFiles
|
||||
filmMomentumTransportModel.C
|
||||
@ -51,17 +51,17 @@ namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class filmMomentumTransportModel Declaration
|
||||
Class momentumTransportModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class filmMomentumTransportModel
|
||||
class momentumTransportModel
|
||||
:
|
||||
public filmSubModelBase
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("filmMomentumTransportModel");
|
||||
TypeName("momentumTransport");
|
||||
|
||||
|
||||
// Declare runtime constructor selection table
|
||||
@ -69,7 +69,7 @@ public:
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
filmMomentumTransportModel,
|
||||
momentumTransportModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -81,10 +81,10 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmMomentumTransportModel(surfaceFilmRegionModel& film);
|
||||
momentumTransportModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmMomentumTransportModel
|
||||
momentumTransportModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -92,13 +92,13 @@ public:
|
||||
);
|
||||
|
||||
//- Disallow default bitwise copy construction
|
||||
filmMomentumTransportModel(const filmMomentumTransportModel&) = delete;
|
||||
momentumTransportModel(const momentumTransportModel&) = delete;
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
//- Return a reference to the selected injection model
|
||||
static autoPtr<filmMomentumTransportModel> New
|
||||
static autoPtr<momentumTransportModel> New
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
@ -106,7 +106,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~filmMomentumTransportModel();
|
||||
virtual ~momentumTransportModel();
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -116,9 +116,6 @@ public:
|
||||
//- Return the film surface velocity
|
||||
virtual tmp<volVectorField::Internal> Us() const = 0;
|
||||
|
||||
//- Return the film turbulence viscosity
|
||||
virtual tmp<volScalarField> mut() const = 0;
|
||||
|
||||
//- Correct/update the model
|
||||
virtual void correct() = 0;
|
||||
|
||||
@ -129,7 +126,7 @@ public:
|
||||
// Member Operators
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const filmMomentumTransportModel&) = delete;
|
||||
void operator=(const momentumTransportModel&) = delete;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -36,15 +36,27 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
||||
|
||||
autoPtr<filmMomentumTransportModel> filmMomentumTransportModel::New
|
||||
autoPtr<momentumTransportModel> momentumTransportModel::New
|
||||
(
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
const word modelType(dict.lookup("turbulence"));
|
||||
const dictionary& momentumTransportDict
|
||||
(
|
||||
dict.found("turbulence")
|
||||
? dict
|
||||
: dict.subDict(momentumTransportModel::typeName)
|
||||
);
|
||||
|
||||
Info<< " Selecting filmMomentumTransportModel " << modelType << endl;
|
||||
const word modelType
|
||||
(
|
||||
dict.found("turbulence")
|
||||
? momentumTransportDict.lookup("turbulence")
|
||||
: momentumTransportDict.lookup("model")
|
||||
);
|
||||
|
||||
Info<< " Selecting momentumTransportModel " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
@ -52,13 +64,16 @@ autoPtr<filmMomentumTransportModel> filmMomentumTransportModel::New
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Unknown filmMomentumTransportModel type " << modelType
|
||||
<< nl << nl << "Valid filmMomentumTransportModel types are:" << nl
|
||||
<< "Unknown momentumTransportModel type " << modelType
|
||||
<< nl << nl << "Valid momentumTransportModel types are:" << nl
|
||||
<< dictionaryConstructorTablePtr_->toc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<filmMomentumTransportModel>(cstrIter()(model, dict));
|
||||
return autoPtr<momentumTransportModel>
|
||||
(
|
||||
cstrIter()(model, momentumTransportDict)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ namespace surfaceFilmModels
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(laminar, 0);
|
||||
addToRunTimeSelectionTable(filmMomentumTransportModel, laminar, dictionary);
|
||||
addToRunTimeSelectionTable(momentumTransportModel, laminar, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
@ -55,7 +55,7 @@ laminar::laminar
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmMomentumTransportModel(type(), film, dict),
|
||||
momentumTransportModel(type(), film, dict),
|
||||
Cf_(coeffDict_.lookup<scalar>("Cf"))
|
||||
{}
|
||||
|
||||
@ -84,20 +84,6 @@ tmp<volVectorField::Internal> laminar::Us() const
|
||||
}
|
||||
|
||||
|
||||
tmp<volScalarField> laminar::mut() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
volScalarField::New
|
||||
(
|
||||
IOobject::modelName("mut", typeName),
|
||||
filmModel_.regionMesh(),
|
||||
dimensionedScalar(dimMass/dimLength/dimTime, 0)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
void laminar::correct()
|
||||
{}
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ Class
|
||||
Foam::regionModels::surfaceFilmModels::laminar
|
||||
|
||||
Description
|
||||
Film laminar turbulence model.
|
||||
Film laminar momentum transport model.
|
||||
|
||||
SourceFiles
|
||||
laminar.C
|
||||
@ -52,7 +52,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class laminar
|
||||
:
|
||||
public filmMomentumTransportModel
|
||||
public momentumTransportModel
|
||||
{
|
||||
// Private Data
|
||||
|
||||
@ -86,9 +86,6 @@ public:
|
||||
//- Return the film surface velocity
|
||||
virtual tmp<volVectorField::Internal> Us() const;
|
||||
|
||||
//- Return the film turbulence viscosity
|
||||
virtual tmp<volScalarField> mut() const;
|
||||
|
||||
//- Correct/update the model
|
||||
virtual void correct();
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -42,7 +42,7 @@ defineTypeNameAndDebug(constantFilmThermo, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmThermoModel,
|
||||
thermoModel,
|
||||
constantFilmThermo,
|
||||
dictionary
|
||||
);
|
||||
@ -65,7 +65,7 @@ constantFilmThermo::constantFilmThermo
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmThermoModel(typeName, film, dict),
|
||||
thermoModel(typeName, film, dict),
|
||||
name_(coeffDict_.lookup("specie")),
|
||||
rho0_("rho0"),
|
||||
mu0_("mu0"),
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -53,7 +53,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class constantFilmThermo
|
||||
:
|
||||
public filmThermoModel
|
||||
public thermoModel
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,12 +36,12 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(filmThermoModel, 0);
|
||||
defineRunTimeSelectionTable(filmThermoModel, dictionary);
|
||||
defineTypeNameAndDebug(thermoModel, 0);
|
||||
defineRunTimeSelectionTable(thermoModel, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmThermoModel::filmThermoModel
|
||||
thermoModel::thermoModel
|
||||
(
|
||||
surfaceFilmRegionModel& film
|
||||
)
|
||||
@ -50,7 +50,7 @@ filmThermoModel::filmThermoModel
|
||||
{}
|
||||
|
||||
|
||||
filmThermoModel::filmThermoModel
|
||||
thermoModel::thermoModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -63,7 +63,7 @@ filmThermoModel::filmThermoModel
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
filmThermoModel::~filmThermoModel()
|
||||
thermoModel::~thermoModel()
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -22,7 +22,7 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::regionModels::surfaceFilmModels::filmThermoModel
|
||||
Foam::regionModels::surfaceFilmModels::thermoModel
|
||||
|
||||
Description
|
||||
Base class for film thermo models
|
||||
@ -49,17 +49,17 @@ namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class filmThermoModel Declaration
|
||||
Class thermoModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class filmThermoModel
|
||||
class thermoModel
|
||||
:
|
||||
public filmSubModelBase
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("filmThermoModel");
|
||||
TypeName("thermophysicalProperties");
|
||||
|
||||
|
||||
// Declare runtime constructor selection table
|
||||
@ -67,7 +67,7 @@ public:
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
filmThermoModel,
|
||||
thermoModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -79,10 +79,10 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmThermoModel(surfaceFilmRegionModel& film);
|
||||
thermoModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmThermoModel
|
||||
thermoModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -90,13 +90,13 @@ public:
|
||||
);
|
||||
|
||||
//- Disallow default bitwise copy construction
|
||||
filmThermoModel(const filmThermoModel&) = delete;
|
||||
thermoModel(const thermoModel&) = delete;
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
//- Return a reference to the selected phase change model
|
||||
static autoPtr<filmThermoModel> New
|
||||
static autoPtr<thermoModel> New
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
@ -104,7 +104,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~filmThermoModel();
|
||||
virtual ~thermoModel();
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -167,7 +167,7 @@ public:
|
||||
// Member Operators
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const filmThermoModel&) = delete;
|
||||
void operator=(const thermoModel&) = delete;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,15 +36,27 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
||||
|
||||
autoPtr<filmThermoModel> filmThermoModel::New
|
||||
autoPtr<thermoModel> thermoModel::New
|
||||
(
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
word modelType(dict.lookup("filmThermoModel"));
|
||||
const dictionary& thermophysicalPropertiesDict
|
||||
(
|
||||
dict.found("thermoModel")
|
||||
? dict
|
||||
: dict.subDict(thermoModel::typeName)
|
||||
);
|
||||
|
||||
Info<< " Selecting filmThermoModel " << modelType << endl;
|
||||
const word modelType
|
||||
(
|
||||
dict.found("thermoModel")
|
||||
? thermophysicalPropertiesDict.lookup("thermoModel")
|
||||
: thermophysicalPropertiesDict.lookup("type")
|
||||
);
|
||||
|
||||
Info<< " Selecting thermoModel " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
@ -52,13 +64,16 @@ autoPtr<filmThermoModel> filmThermoModel::New
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Unknown filmThermoModel type " << modelType << nl << nl
|
||||
<< "Valid filmThermoModel types are:" << nl
|
||||
<< "Unknown thermoModel type " << modelType << nl << nl
|
||||
<< "Valid thermoModel types are:" << nl
|
||||
<< dictionaryConstructorTablePtr_->toc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<filmThermoModel>(cstrIter()(model, dict));
|
||||
return autoPtr<thermoModel>
|
||||
(
|
||||
cstrIter()(model, thermophysicalPropertiesDict)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -45,7 +45,7 @@ defineTypeNameAndDebug(liquidFilmThermo, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmThermoModel,
|
||||
thermoModel,
|
||||
liquidFilmThermo,
|
||||
dictionary
|
||||
);
|
||||
@ -107,7 +107,7 @@ liquidFilmThermo::liquidFilmThermo
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmThermoModel(typeName, film, dict),
|
||||
thermoModel(typeName, film, dict),
|
||||
name_("unknown_liquid"),
|
||||
liquidPtr_(nullptr),
|
||||
ownLiquid_(false),
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,7 +56,7 @@ class thermoSingleLayer;
|
||||
|
||||
class liquidFilmThermo
|
||||
:
|
||||
public filmThermoModel
|
||||
public thermoModel
|
||||
{
|
||||
protected:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -50,11 +50,33 @@ forceList::forceList
|
||||
:
|
||||
PtrList<force>()
|
||||
{
|
||||
const wordList models(dict.lookup("forces"));
|
||||
|
||||
Info<< " Selecting film force models" << endl;
|
||||
if (models.size() > 0)
|
||||
|
||||
if (dict.isDict("forces"))
|
||||
{
|
||||
const dictionary& forcesDict(dict.subDict("forces"));
|
||||
this->setSize(forcesDict.size());
|
||||
|
||||
label i = 0;
|
||||
forAllConstIter(dictionary, forcesDict, iter)
|
||||
{
|
||||
set
|
||||
(
|
||||
i++,
|
||||
force::New
|
||||
(
|
||||
film,
|
||||
forcesDict.isDict(iter().keyword())
|
||||
? forcesDict.subDict(iter().keyword())
|
||||
: dictionary::null,
|
||||
iter().keyword()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
else if (dict.found("forces"))
|
||||
{
|
||||
const wordList models(dict.lookup("forces"));
|
||||
this->setSize(models.size());
|
||||
|
||||
forAll(models, i)
|
||||
@ -62,17 +84,20 @@ forceList::forceList
|
||||
set(i, force::New(film, dict, models[i]));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
if (!size())
|
||||
{
|
||||
Info<< " none" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
forceList::~forceList()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
tmp<fvVectorMatrix> forceList::correct(volVectorField& U)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -60,28 +60,42 @@ injectionModelList::injectionModelList
|
||||
),
|
||||
massInjected_(film.intCoupledPatchIDs().size(), 0.0)
|
||||
{
|
||||
const wordList activeModels(dict.lookup("injectionModels"));
|
||||
Info<< " Selecting film injection" << endl;
|
||||
|
||||
wordHashSet models;
|
||||
forAll(activeModels, i)
|
||||
if (dict.isDict("injection"))
|
||||
{
|
||||
models.insert(activeModels[i]);
|
||||
}
|
||||
|
||||
Info<< " Selecting film injection models" << endl;
|
||||
if (models.size() > 0)
|
||||
{
|
||||
this->setSize(models.size());
|
||||
const dictionary& injectionDict(dict.subDict("injection"));
|
||||
this->setSize(injectionDict.size());
|
||||
|
||||
label i = 0;
|
||||
forAllConstIter(wordHashSet, models, iter)
|
||||
forAllConstIter(dictionary, injectionDict, iter)
|
||||
{
|
||||
const word& model = iter.key();
|
||||
set(i, injectionModel::New(film, dict, model));
|
||||
i++;
|
||||
set
|
||||
(
|
||||
i++,
|
||||
injectionModel::New
|
||||
(
|
||||
film,
|
||||
injectionDict.isDict(iter().keyword())
|
||||
? injectionDict.subDict(iter().keyword())
|
||||
: dictionary::null,
|
||||
iter().keyword()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (dict.found("injectionModels"))
|
||||
{
|
||||
const wordList models(dict.lookup("injectionModels"));
|
||||
this->setSize(models.size());
|
||||
|
||||
forAll(models, i)
|
||||
{
|
||||
set(i, injectionModel::New(film, dict, models[i]));
|
||||
}
|
||||
}
|
||||
|
||||
if (!size())
|
||||
{
|
||||
Info<< " none" << endl;
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2012-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2012-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,7 +41,7 @@ defineTypeNameAndDebug(constantRadiation, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmRadiationModel,
|
||||
radiationModel,
|
||||
constantRadiation,
|
||||
dictionary
|
||||
);
|
||||
@ -54,7 +54,7 @@ constantRadiation::constantRadiation
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmRadiationModel(typeName, film, dict),
|
||||
radiationModel(typeName, film, dict),
|
||||
qrConst_
|
||||
(
|
||||
IOobject
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2012-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2012-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,7 +56,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class constantRadiation
|
||||
:
|
||||
public filmRadiationModel
|
||||
public radiationModel
|
||||
{
|
||||
// Private Data
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,18 +36,18 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(filmRadiationModel, 0);
|
||||
defineRunTimeSelectionTable(filmRadiationModel, dictionary);
|
||||
defineTypeNameAndDebug(radiationModel, 0);
|
||||
defineRunTimeSelectionTable(radiationModel, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmRadiationModel::filmRadiationModel(surfaceFilmRegionModel& film)
|
||||
radiationModel::radiationModel(surfaceFilmRegionModel& film)
|
||||
:
|
||||
filmSubModelBase(film)
|
||||
{}
|
||||
|
||||
|
||||
filmRadiationModel::filmRadiationModel
|
||||
radiationModel::radiationModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -60,7 +60,7 @@ filmRadiationModel::filmRadiationModel
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
filmRadiationModel::~filmRadiationModel()
|
||||
radiationModel::~radiationModel()
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::regionModels::surfaceFilmModels::filmRadiationModel
|
||||
Foam::regionModels::surfaceFilmModels::radiationModel
|
||||
|
||||
Description
|
||||
Base class for film radiation models
|
||||
@ -49,17 +49,17 @@ namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class filmRadiationModel Declaration
|
||||
Class radiationModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class filmRadiationModel
|
||||
class radiationModel
|
||||
:
|
||||
public filmSubModelBase
|
||||
{
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("radiationModel");
|
||||
TypeName("radiation");
|
||||
|
||||
|
||||
// Declare runtime constructor selection table
|
||||
@ -67,7 +67,7 @@ public:
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
filmRadiationModel,
|
||||
radiationModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -76,13 +76,14 @@ public:
|
||||
(film, dict)
|
||||
);
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
filmRadiationModel(surfaceFilmRegionModel& film);
|
||||
radiationModel(surfaceFilmRegionModel& film);
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmRadiationModel
|
||||
radiationModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -90,13 +91,13 @@ public:
|
||||
);
|
||||
|
||||
//- Disallow default bitwise copy construction
|
||||
filmRadiationModel(const filmRadiationModel&) = delete;
|
||||
radiationModel(const radiationModel&) = delete;
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
//- Return a reference to the selected phase change model
|
||||
static autoPtr<filmRadiationModel> New
|
||||
static autoPtr<radiationModel> New
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict
|
||||
@ -104,7 +105,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~filmRadiationModel();
|
||||
virtual ~radiationModel();
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -121,7 +122,7 @@ public:
|
||||
// Member Operators
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const filmRadiationModel&) = delete;
|
||||
void operator=(const radiationModel&) = delete;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -23,7 +23,7 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "filmRadiationModel.H"
|
||||
#include "noRadiation.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -36,13 +36,34 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
||||
|
||||
autoPtr<filmRadiationModel> filmRadiationModel::New
|
||||
autoPtr<radiationModel> radiationModel::New
|
||||
(
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
word modelType(dict.lookup("radiationModel"));
|
||||
if
|
||||
(
|
||||
!dict.found("radiationModel")
|
||||
&& !dict.found(radiationModel::typeName)
|
||||
)
|
||||
{
|
||||
return autoPtr<radiationModel>(new noRadiation(model, dict));
|
||||
}
|
||||
|
||||
const dictionary& radiationDict
|
||||
(
|
||||
dict.found("radiationModel")
|
||||
? dict
|
||||
: dict.subDict(radiationModel::typeName)
|
||||
);
|
||||
|
||||
const word modelType
|
||||
(
|
||||
dict.found("radiationModel")
|
||||
? radiationDict.lookup("radiationModel")
|
||||
: radiationDict.lookup("model")
|
||||
);
|
||||
|
||||
Info<< " Selecting radiationModel " << modelType << endl;
|
||||
|
||||
@ -53,12 +74,12 @@ autoPtr<filmRadiationModel> filmRadiationModel::New
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Unknown radiationModel type " << modelType << nl << nl
|
||||
<< "Valid filmRadiationModel types are:" << nl
|
||||
<< "Valid radiationModel types are:" << nl
|
||||
<< dictionaryConstructorTablePtr_->toc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<filmRadiationModel>(cstrIter()(model, dict));
|
||||
return autoPtr<radiationModel>(cstrIter()(model, radiationDict));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -42,7 +42,7 @@ defineTypeNameAndDebug(noRadiation, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmRadiationModel,
|
||||
radiationModel,
|
||||
noRadiation,
|
||||
dictionary
|
||||
);
|
||||
@ -55,7 +55,7 @@ noRadiation::noRadiation
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmRadiationModel(film)
|
||||
radiationModel(film)
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -53,7 +53,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class noRadiation
|
||||
:
|
||||
public filmRadiationModel
|
||||
public radiationModel
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2012-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2012-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,7 +41,7 @@ defineTypeNameAndDebug(primaryRadiation, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmRadiationModel,
|
||||
radiationModel,
|
||||
primaryRadiation,
|
||||
dictionary
|
||||
);
|
||||
@ -54,7 +54,7 @@ primaryRadiation::primaryRadiation
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmRadiationModel(typeName, film, dict),
|
||||
radiationModel(typeName, film, dict),
|
||||
qinFilm_
|
||||
(
|
||||
IOobject
|
||||
|
||||
@ -54,7 +54,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class primaryRadiation
|
||||
:
|
||||
public filmRadiationModel
|
||||
public radiationModel
|
||||
{
|
||||
// Private Data
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,7 +41,7 @@ defineTypeNameAndDebug(standardRadiation, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmRadiationModel,
|
||||
radiationModel,
|
||||
standardRadiation,
|
||||
dictionary
|
||||
);
|
||||
@ -54,7 +54,7 @@ standardRadiation::standardRadiation
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
filmRadiationModel(typeName, film, dict),
|
||||
radiationModel(typeName, film, dict),
|
||||
qinFilm_
|
||||
(
|
||||
IOobject
|
||||
|
||||
@ -53,7 +53,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class standardRadiation
|
||||
:
|
||||
public filmRadiationModel
|
||||
public radiationModel
|
||||
{
|
||||
// Private Data
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2015-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,7 +41,7 @@ defineTypeNameAndDebug(ArrheniusViscosity, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
ArrheniusViscosity,
|
||||
dictionary
|
||||
);
|
||||
@ -56,8 +56,8 @@ ArrheniusViscosity::ArrheniusViscosity
|
||||
volScalarField& mu
|
||||
)
|
||||
:
|
||||
filmViscosityModel(typeName, film, dict, mu),
|
||||
viscosity_(filmViscosityModel::New(film, coeffDict_, mu)),
|
||||
viscosityModel(typeName, film, dict, mu),
|
||||
viscosity_(viscosityModel::New(film, coeffDict_, mu)),
|
||||
k1_("k1", dimTemperature, coeffDict_),
|
||||
k2_("k2", dimTemperature, coeffDict_),
|
||||
Tref_("Tref", dimTemperature, coeffDict_)
|
||||
|
||||
@ -61,14 +61,14 @@ namespace surfaceFilmModels
|
||||
|
||||
class ArrheniusViscosity
|
||||
:
|
||||
public filmViscosityModel
|
||||
public viscosityModel
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
//- Base viscosity model
|
||||
autoPtr<filmViscosityModel> viscosity_;
|
||||
autoPtr<viscosityModel> viscosity_;
|
||||
|
||||
//- Coefficient k1
|
||||
dimensionedScalar k1_;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,7 +41,7 @@ defineTypeNameAndDebug(constantViscosity, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
constantViscosity,
|
||||
dictionary
|
||||
);
|
||||
@ -55,7 +55,7 @@ constantViscosity::constantViscosity
|
||||
volScalarField& mu
|
||||
)
|
||||
:
|
||||
filmViscosityModel(typeName, film, dict, mu),
|
||||
viscosityModel(typeName, film, dict, mu),
|
||||
mu0_("mu0", dimDynamicViscosity, coeffDict_)
|
||||
{
|
||||
mu_ == mu0_;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -52,7 +52,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class constantViscosity
|
||||
:
|
||||
public filmViscosityModel
|
||||
public viscosityModel
|
||||
{
|
||||
protected:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,12 +36,12 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(filmViscosityModel, 0);
|
||||
defineRunTimeSelectionTable(filmViscosityModel, dictionary);
|
||||
defineTypeNameAndDebug(viscosityModel, 0);
|
||||
defineRunTimeSelectionTable(viscosityModel, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
filmViscosityModel::filmViscosityModel
|
||||
viscosityModel::viscosityModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -56,13 +56,13 @@ filmViscosityModel::filmViscosityModel
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
filmViscosityModel::~filmViscosityModel()
|
||||
viscosityModel::~viscosityModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void filmViscosityModel::info(Ostream& os) const
|
||||
void viscosityModel::info(Ostream& os) const
|
||||
{}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -22,7 +22,7 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::regionModels::surfaceFilmModels::filmViscosityModel
|
||||
Foam::regionModels::surfaceFilmModels::viscosityModel
|
||||
|
||||
Description
|
||||
Base class for surface film viscosity models
|
||||
@ -50,10 +50,10 @@ namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class filmViscosityModel Declaration
|
||||
Class viscosityModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class filmViscosityModel
|
||||
class viscosityModel
|
||||
:
|
||||
public filmSubModelBase
|
||||
{
|
||||
@ -68,7 +68,7 @@ protected:
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("filmViscosityModel");
|
||||
TypeName("viscosity");
|
||||
|
||||
|
||||
// Declare runtime constructor selection table
|
||||
@ -76,7 +76,7 @@ public:
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
dictionary,
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -89,7 +89,7 @@ public:
|
||||
// Constructors
|
||||
|
||||
//- Construct from type name, dictionary and surface film model
|
||||
filmViscosityModel
|
||||
viscosityModel
|
||||
(
|
||||
const word& modelType,
|
||||
surfaceFilmRegionModel& film,
|
||||
@ -98,13 +98,13 @@ public:
|
||||
);
|
||||
|
||||
//- Disallow default bitwise copy construction
|
||||
filmViscosityModel(const filmViscosityModel&) = delete;
|
||||
viscosityModel(const viscosityModel&) = delete;
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
//- Return a reference to the selected phase change model
|
||||
static autoPtr<filmViscosityModel> New
|
||||
static autoPtr<viscosityModel> New
|
||||
(
|
||||
surfaceFilmRegionModel& film,
|
||||
const dictionary& dict,
|
||||
@ -113,7 +113,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~filmViscosityModel();
|
||||
virtual ~viscosityModel();
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -137,7 +137,7 @@ public:
|
||||
// Member Operators
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const filmViscosityModel&) = delete;
|
||||
void operator=(const viscosityModel&) = delete;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,16 +36,28 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
||||
|
||||
autoPtr<filmViscosityModel> filmViscosityModel::New
|
||||
autoPtr<viscosityModel> viscosityModel::New
|
||||
(
|
||||
surfaceFilmRegionModel& model,
|
||||
const dictionary& dict,
|
||||
volScalarField& mu
|
||||
)
|
||||
{
|
||||
word modelType(dict.lookup("filmViscosityModel"));
|
||||
const dictionary& viscosityDict
|
||||
(
|
||||
dict.found("filmViscosityModel")
|
||||
? dict
|
||||
: dict.subDict(viscosityModel::typeName)
|
||||
);
|
||||
|
||||
Info<< " Selecting filmViscosityModel " << modelType << endl;
|
||||
const word modelType
|
||||
(
|
||||
dict.found("filmViscosityModel")
|
||||
? viscosityDict.lookup("filmViscosityModel")
|
||||
: viscosityDict.lookup("model")
|
||||
);
|
||||
|
||||
Info<< " Selecting viscosityModel " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
@ -53,13 +65,13 @@ autoPtr<filmViscosityModel> filmViscosityModel::New
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Unknown filmViscosityModel type " << modelType
|
||||
<< nl << nl << "Valid filmViscosityModel types are:" << nl
|
||||
<< "Unknown viscosityModel type " << modelType
|
||||
<< nl << nl << "Valid viscosityModel types are:" << nl
|
||||
<< dictionaryConstructorTablePtr_->toc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<filmViscosityModel>(cstrIter()(model, dict, mu));
|
||||
return autoPtr<viscosityModel>(cstrIter()(model, viscosityDict, mu));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2017-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2017-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,7 +41,7 @@ defineTypeNameAndDebug(function1Viscosity, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
function1Viscosity,
|
||||
dictionary
|
||||
);
|
||||
@ -56,8 +56,8 @@ function1Viscosity::function1Viscosity
|
||||
volScalarField& mu
|
||||
)
|
||||
:
|
||||
filmViscosityModel(typeName, film, dict, mu),
|
||||
viscosity_(filmViscosityModel::New(film, coeffDict_, mu)),
|
||||
viscosityModel(typeName, film, dict, mu),
|
||||
viscosity_(viscosityModel::New(film, coeffDict_, mu)),
|
||||
function_
|
||||
(
|
||||
Function1<scalar>::New("function", coeffDict_)
|
||||
|
||||
@ -54,7 +54,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class function1Viscosity
|
||||
:
|
||||
public filmViscosityModel
|
||||
public viscosityModel
|
||||
{
|
||||
// Private Member Functions
|
||||
|
||||
@ -70,7 +70,7 @@ protected:
|
||||
// Protected data
|
||||
|
||||
//- Base viscosity model
|
||||
autoPtr<filmViscosityModel> viscosity_;
|
||||
autoPtr<viscosityModel> viscosity_;
|
||||
|
||||
//- Viscosity factor as a function of temperature
|
||||
autoPtr<Function1<scalar>> function_;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -42,7 +42,7 @@ defineTypeNameAndDebug(liquidViscosity, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
liquidViscosity,
|
||||
dictionary
|
||||
);
|
||||
@ -56,7 +56,7 @@ liquidViscosity::liquidViscosity
|
||||
volScalarField& mu
|
||||
)
|
||||
:
|
||||
filmViscosityModel(typeName, film, dict, mu)
|
||||
viscosityModel(typeName, film, dict, mu)
|
||||
{}
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ void liquidViscosity::correct
|
||||
{
|
||||
const thermoSingleLayer& film = filmType<thermoSingleLayer>();
|
||||
|
||||
mu_ = film.filmThermo().mu();
|
||||
mu_ = film.thermo().mu();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -52,7 +52,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class liquidViscosity
|
||||
:
|
||||
public filmViscosityModel
|
||||
public viscosityModel
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ defineTypeNameAndDebug(thixotropicViscosity, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
thixotropicViscosity,
|
||||
dictionary
|
||||
);
|
||||
@ -62,7 +62,7 @@ thixotropicViscosity::thixotropicViscosity
|
||||
volScalarField& mu
|
||||
)
|
||||
:
|
||||
filmViscosityModel(typeName, film, dict, mu),
|
||||
viscosityModel(typeName, film, dict, mu),
|
||||
a_("a", dimless/dimTime, coeffDict_),
|
||||
b_("b", dimless, coeffDict_),
|
||||
d_("d", dimless, coeffDict_),
|
||||
|
||||
@ -87,7 +87,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class thixotropicViscosity
|
||||
:
|
||||
public filmViscosityModel
|
||||
public viscosityModel
|
||||
{
|
||||
protected:
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2017-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2017-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -43,7 +43,7 @@ defineTypeNameAndDebug(waxSolventViscosity, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
filmViscosityModel,
|
||||
viscosityModel,
|
||||
waxSolventViscosity,
|
||||
dictionary
|
||||
);
|
||||
@ -111,7 +111,7 @@ waxSolventViscosity::waxSolventViscosity
|
||||
volScalarField& mu
|
||||
)
|
||||
:
|
||||
filmViscosityModel(typeName, film, dict, mu),
|
||||
viscosityModel(typeName, film, dict, mu),
|
||||
muWax_
|
||||
(
|
||||
IOobject
|
||||
@ -128,7 +128,7 @@ waxSolventViscosity::waxSolventViscosity
|
||||
),
|
||||
muWaxModel_
|
||||
(
|
||||
filmViscosityModel::New
|
||||
viscosityModel::New
|
||||
(
|
||||
film,
|
||||
coeffDict_.subDict("muWax"),
|
||||
@ -151,7 +151,7 @@ waxSolventViscosity::waxSolventViscosity
|
||||
),
|
||||
muSolventModel_
|
||||
(
|
||||
filmViscosityModel::New
|
||||
viscosityModel::New
|
||||
(
|
||||
film,
|
||||
coeffDict_.subDict("muSolvent"),
|
||||
|
||||
@ -52,7 +52,7 @@ namespace surfaceFilmModels
|
||||
|
||||
class waxSolventViscosity
|
||||
:
|
||||
public filmViscosityModel
|
||||
public viscosityModel
|
||||
{
|
||||
// Private Member Functions
|
||||
|
||||
@ -68,13 +68,13 @@ protected:
|
||||
volScalarField muWax_;
|
||||
|
||||
//- Wax viscosity model
|
||||
autoPtr<filmViscosityModel> muWaxModel_;
|
||||
autoPtr<viscosityModel> muWaxModel_;
|
||||
|
||||
//- Solvent viscosity
|
||||
volScalarField muSolvent_;
|
||||
|
||||
//- Solvent viscosity model
|
||||
autoPtr<filmViscosityModel> muSolventModel_;
|
||||
autoPtr<viscosityModel> muSolventModel_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -59,7 +59,7 @@ class heatTransferModel
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("heatTransferModel");
|
||||
TypeName("heatTransfer");
|
||||
|
||||
|
||||
// Declare runtime constructor selection table
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -42,7 +42,19 @@ autoPtr<heatTransferModel> heatTransferModel::New
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
word modelType(dict.lookup("heatTransferModel"));
|
||||
const dictionary& heatTransferDict
|
||||
(
|
||||
dict.found("heatTransferModel")
|
||||
? dict
|
||||
: dict.subDict(heatTransferModel::typeName)
|
||||
);
|
||||
|
||||
const word modelType
|
||||
(
|
||||
dict.found("heatTransferModel")
|
||||
? heatTransferDict.lookup("heatTransferModel")
|
||||
: heatTransferDict.lookup("model")
|
||||
);
|
||||
|
||||
Info<< " Selecting heatTransferModel " << modelType << endl;
|
||||
|
||||
@ -58,7 +70,7 @@ autoPtr<heatTransferModel> heatTransferModel::New
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<heatTransferModel>(cstrIter()(model, dict));
|
||||
return autoPtr<heatTransferModel>(cstrIter()(model, heatTransferDict));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -71,7 +71,7 @@ protected:
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("phaseChangeModel");
|
||||
TypeName("phaseChange");
|
||||
|
||||
|
||||
// Declare runtime constructor selection table
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -23,7 +23,7 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "phaseChangeModel.H"
|
||||
#include "noPhaseChange.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -42,7 +42,28 @@ autoPtr<phaseChangeModel> phaseChangeModel::New
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
word modelType(dict.lookup("phaseChangeModel"));
|
||||
if
|
||||
(
|
||||
!dict.found("phaseChangeModel")
|
||||
&& !dict.found(phaseChangeModel::typeName)
|
||||
)
|
||||
{
|
||||
return autoPtr<phaseChangeModel>(new noPhaseChange(model, dict));
|
||||
}
|
||||
|
||||
const dictionary& phaseChangeDict
|
||||
(
|
||||
dict.found("phaseChangeModel")
|
||||
? dict
|
||||
: dict.subDict(phaseChangeModel::typeName)
|
||||
);
|
||||
|
||||
const word modelType
|
||||
(
|
||||
dict.found("phaseChangeModel")
|
||||
? phaseChangeDict.lookup("phaseChangeModel")
|
||||
: phaseChangeDict.lookup("model")
|
||||
);
|
||||
|
||||
Info<< " Selecting phaseChangeModel " << modelType << endl;
|
||||
|
||||
@ -58,7 +79,7 @@ autoPtr<phaseChangeModel> phaseChangeModel::New
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<phaseChangeModel>(cstrIter()(model, dict));
|
||||
return autoPtr<phaseChangeModel>(cstrIter()(model, phaseChangeDict));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -104,9 +104,9 @@ void standardPhaseChange::correctModel
|
||||
const thermoSingleLayer& film = filmType<thermoSingleLayer>();
|
||||
|
||||
// Set local thermo properties
|
||||
const SLGThermo& thermo = film.thermo();
|
||||
const filmThermoModel& filmThermo = film.filmThermo();
|
||||
const label vapId = thermo.carrierId(filmThermo.name());
|
||||
const SLGThermo& slgThermo = film.slgThermo();
|
||||
const thermoModel& thermo = film.thermo();
|
||||
const label vapId = slgThermo.carrierId(thermo.name());
|
||||
|
||||
// Retrieve fields from film model
|
||||
const scalarField& delta = film.delta();
|
||||
@ -124,10 +124,10 @@ void standardPhaseChange::correctModel
|
||||
);
|
||||
|
||||
// Molecular weight of vapour [kg/kmol]
|
||||
const scalar Wvap = thermo.carrier().Wi(vapId);
|
||||
const scalar Wvap = slgThermo.carrier().Wi(vapId);
|
||||
|
||||
// Molecular weight of liquid [kg/kmol]
|
||||
const scalar Wliq = filmThermo.W();
|
||||
const scalar Wliq = thermo.W();
|
||||
|
||||
forAll(dMass, celli)
|
||||
{
|
||||
@ -139,22 +139,22 @@ void standardPhaseChange::correctModel
|
||||
const scalar pc = pInf[celli];
|
||||
|
||||
// Calculate the boiling temperature
|
||||
const scalar Tb = filmThermo.Tb(pc);
|
||||
const scalar Tb = thermo.Tb(pc);
|
||||
|
||||
// Local temperature - impose lower limit of 200 K for stability
|
||||
const scalar Tloc = min(TbFactor_*Tb, max(200.0, T[celli]));
|
||||
|
||||
// Saturation pressure [Pa]
|
||||
const scalar pSat = filmThermo.pv(pc, Tloc);
|
||||
const scalar pSat = thermo.pv(pc, Tloc);
|
||||
|
||||
// Latent heat [J/kg]
|
||||
const scalar hVap = filmThermo.hl(pc, Tloc);
|
||||
const scalar hVap = thermo.hl(pc, Tloc);
|
||||
|
||||
// Calculate mass transfer
|
||||
if (pSat >= 0.95*pc)
|
||||
{
|
||||
// Boiling
|
||||
const scalar Cp = filmThermo.Cp(pc, Tloc);
|
||||
const scalar Cp = thermo.Cp(pc, Tloc);
|
||||
const scalar Tcorr = max(0.0, T[celli] - Tb);
|
||||
const scalar qCorr = limMass[celli]*Cp*(Tcorr);
|
||||
dm = qCorr/hVap;
|
||||
@ -174,7 +174,7 @@ void standardPhaseChange::correctModel
|
||||
const scalar Ys = Wliq*pSat/(Wliq*pSat + Wvap*(pc - pSat));
|
||||
|
||||
// Vapour diffusivity [m^2/s]
|
||||
const scalar Dab = filmThermo.D(pc, Tloc);
|
||||
const scalar Dab = thermo.D(pc, Tloc);
|
||||
|
||||
// Schmidt number
|
||||
const scalar Sc = muInfc/(rhoInfc*(Dab + rootVSmall));
|
||||
@ -215,7 +215,7 @@ void standardPhaseChange::correctModel
|
||||
else
|
||||
{
|
||||
const thermoSingleLayer& film = filmType<thermoSingleLayer>();
|
||||
const label vapId = film.thermo().carrierId(film.filmThermo().name());
|
||||
const label vapId = film.slgThermo().carrierId(film.thermo().name());
|
||||
const scalarField& YInf = film.YPrimary()[vapId];
|
||||
|
||||
correctModel(dt, availableMass, dMass, dEnergy, YInf);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2017-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2017-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -161,9 +161,9 @@ void waxSolventEvaporation::correctModel
|
||||
const surfaceScalarField& phi = film.phi();
|
||||
|
||||
// Set local thermo properties
|
||||
const SLGThermo& thermo = film.thermo();
|
||||
const filmThermoModel& filmThermo = film.filmThermo();
|
||||
const label vapId = thermo.carrierId(filmThermo.name());
|
||||
const SLGThermo& slgThermo = film.slgThermo();
|
||||
const thermoModel& thermo = film.thermo();
|
||||
const label vapId = slgThermo.carrierId(thermo.name());
|
||||
|
||||
// Retrieve fields from film model
|
||||
const scalarField& pInf = film.pPrimary();
|
||||
@ -181,7 +181,7 @@ void waxSolventEvaporation::correctModel
|
||||
);
|
||||
|
||||
// Molecular weight of vapour [kg/kmol]
|
||||
const scalar Wvap = thermo.carrier().Wi(vapId);
|
||||
const scalar Wvap = slgThermo.carrier().Wi(vapId);
|
||||
|
||||
const scalar Wwax = Wwax_.value();
|
||||
const scalar Wsolvent = Wsolvent_.value();
|
||||
@ -239,14 +239,14 @@ void waxSolventEvaporation::correctModel
|
||||
const scalar pc = pInf[celli];
|
||||
|
||||
// Calculate the boiling temperature
|
||||
const scalar Tb = filmThermo.Tb(pc);
|
||||
const scalar Tb = thermo.Tb(pc);
|
||||
|
||||
// Local temperature - impose lower limit of 200 K for stability
|
||||
const scalar Tloc = min(TbFactor_*Tb, max(200.0, T[celli]));
|
||||
|
||||
const scalar pPartialCoeff
|
||||
(
|
||||
filmThermo.pv(pc, Tloc)*activityCoeff_->value(Xsolvent)
|
||||
thermo.pv(pc, Tloc)*activityCoeff_->value(Xsolvent)
|
||||
);
|
||||
|
||||
scalar XsCoeff = pPartialCoeff/pc;
|
||||
@ -277,7 +277,7 @@ void waxSolventEvaporation::correctModel
|
||||
const scalar Re = rhoInfc*mag(dU[celli])*L_/muInfc;
|
||||
|
||||
// Vapour diffusivity [m^2/s]
|
||||
const scalar Dab = filmThermo.D(pc, Tloc);
|
||||
const scalar Dab = thermo.D(pc, Tloc);
|
||||
|
||||
// Schmidt number
|
||||
const scalar Sc = muInfc/(rhoInfc*(Dab + rootVSmall));
|
||||
@ -308,7 +308,7 @@ void waxSolventEvaporation::correctModel
|
||||
evapRateInf[celli] = evapRateCoeff[celli]*YInf[celli];
|
||||
evapRateCoeff[celli] *= YsCoeff;
|
||||
|
||||
// hVap[celli] = filmThermo.hl(pc, Tloc);
|
||||
// hVap[celli] = thermo.hl(pc, Tloc);
|
||||
}
|
||||
}
|
||||
|
||||
@ -392,7 +392,7 @@ void waxSolventEvaporation::correctModel
|
||||
else
|
||||
{
|
||||
const thermoSingleLayer& film = filmType<thermoSingleLayer>();
|
||||
const label vapId = film.thermo().carrierId(film.filmThermo().name());
|
||||
const label vapId = film.slgThermo().carrierId(film.thermo().name());
|
||||
const scalarField& YInf = film.YPrimary()[vapId];
|
||||
|
||||
correctModel(dt, availableMass, dMass, dEnergy, YInf);
|
||||
|
||||
@ -104,10 +104,10 @@ void thermoSingleLayer::resetPrimaryRegionSourceTerms()
|
||||
|
||||
void thermoSingleLayer::correctThermoFields()
|
||||
{
|
||||
rho_ == filmThermo_->rho();
|
||||
sigma_ == filmThermo_->sigma();
|
||||
Cp_ == filmThermo_->Cp();
|
||||
kappa_ == filmThermo_->kappa();
|
||||
rho_ == thermo_->rho();
|
||||
sigma_ == thermo_->sigma();
|
||||
Cp_ == thermo_->Cp();
|
||||
kappa_ == thermo_->kappa();
|
||||
}
|
||||
|
||||
|
||||
@ -257,7 +257,7 @@ void thermoSingleLayer::updateSubmodels()
|
||||
rhoSp_ += rVDt*(cloudMassTrans_() + primaryMassTrans_());
|
||||
hSp_ += rVDt*(cloudMassTrans_()*h_() + primaryEnergyTrans_());
|
||||
|
||||
turbulence_->correct();
|
||||
momentumTransport_->correct();
|
||||
}
|
||||
|
||||
|
||||
@ -320,7 +320,7 @@ thermoSingleLayer::thermoSingleLayer
|
||||
)
|
||||
:
|
||||
kinematicSingleLayer(modelType, mesh, g, regionType, false),
|
||||
thermo_(mesh.lookupObject<SLGThermo>("SLGThermo")),
|
||||
slgThermo_(mesh.lookupObject<SLGThermo>("SLGThermo")),
|
||||
|
||||
Cp_
|
||||
(
|
||||
@ -473,7 +473,7 @@ thermoSingleLayer::thermoSingleLayer
|
||||
|
||||
YPrimary_(),
|
||||
|
||||
viscosity_(filmViscosityModel::New(*this, coeffs(), mu_)),
|
||||
viscosity_(viscosityModel::New(*this, coeffs(), mu_)),
|
||||
|
||||
htcs_
|
||||
(
|
||||
@ -486,7 +486,7 @@ thermoSingleLayer::thermoSingleLayer
|
||||
),
|
||||
|
||||
phaseChange_(phaseChangeModel::New(*this, coeffs())),
|
||||
radiation_(filmRadiationModel::New(*this, coeffs())),
|
||||
radiation_(radiationModel::New(*this, coeffs())),
|
||||
Tmin_(-vGreat),
|
||||
Tmax_(vGreat)
|
||||
{
|
||||
@ -500,11 +500,11 @@ thermoSingleLayer::thermoSingleLayer
|
||||
Info<< " limiting maximum temperature to " << Tmax_ << endl;
|
||||
}
|
||||
|
||||
if (thermo_.hasMultiComponentCarrier())
|
||||
if (slgThermo_.hasMultiComponentCarrier())
|
||||
{
|
||||
YPrimary_.setSize(thermo_.carrier().species().size());
|
||||
YPrimary_.setSize(slgThermo_.carrier().species().size());
|
||||
|
||||
forAll(thermo_.carrier().species(), i)
|
||||
forAll(slgThermo_.carrier().species(), i)
|
||||
{
|
||||
YPrimary_.set
|
||||
(
|
||||
@ -513,7 +513,7 @@ thermoSingleLayer::thermoSingleLayer
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
thermo_.carrier().species()[i],
|
||||
slgThermo_.carrier().species()[i],
|
||||
time().timeName(),
|
||||
regionMesh(),
|
||||
IOobject::NO_READ,
|
||||
@ -752,7 +752,7 @@ tmp<volScalarField::Internal> thermoSingleLayer::Srho
|
||||
const label i
|
||||
) const
|
||||
{
|
||||
const label vapId = thermo_.carrierId(filmThermo_->name());
|
||||
const label vapId = slgThermo_.carrierId(thermo_->name());
|
||||
|
||||
tmp<volScalarField::Internal> tSrho
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -54,10 +54,10 @@ namespace surfaceFilmModels
|
||||
{
|
||||
|
||||
// Forward declaration of classes
|
||||
class filmViscosityModel;
|
||||
class viscosityModel;
|
||||
class heatTransferModel;
|
||||
class phaseChangeModel;
|
||||
class filmRadiationModel;
|
||||
class radiationModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class thermoSingleLayer Declaration
|
||||
@ -80,7 +80,7 @@ protected:
|
||||
// Thermo properties
|
||||
|
||||
//- Reference to the SLGThermo
|
||||
const SLGThermo& thermo_;
|
||||
const SLGThermo& slgThermo_;
|
||||
|
||||
|
||||
// Fields
|
||||
@ -158,7 +158,7 @@ protected:
|
||||
// Sub-models
|
||||
|
||||
//- Viscosity model
|
||||
autoPtr<filmViscosityModel> viscosity_;
|
||||
autoPtr<viscosityModel> viscosity_;
|
||||
|
||||
//- Heat transfer coefficient between film surface and primary
|
||||
// region [W/m^2/K]
|
||||
@ -171,7 +171,7 @@ protected:
|
||||
autoPtr<phaseChangeModel> phaseChange_;
|
||||
|
||||
//- Radiation
|
||||
autoPtr<filmRadiationModel> radiation_;
|
||||
autoPtr<radiationModel> radiation_;
|
||||
|
||||
|
||||
// Limits
|
||||
@ -253,7 +253,7 @@ public:
|
||||
// Thermo properties
|
||||
|
||||
//- Return const reference to the SLGThermo object
|
||||
inline const SLGThermo& thermo() const;
|
||||
inline const SLGThermo& slgThermo() const;
|
||||
|
||||
|
||||
// Fields
|
||||
@ -350,7 +350,7 @@ public:
|
||||
inline const phaseChangeModel& phaseChange() const;
|
||||
|
||||
//- Return const access to the radiation model
|
||||
inline const filmRadiationModel& radiation() const;
|
||||
inline const radiationModel& radiation() const;
|
||||
|
||||
|
||||
// Evolution
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -39,9 +39,9 @@ namespace surfaceFilmModels
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
inline const SLGThermo& thermoSingleLayer::thermo() const
|
||||
inline const SLGThermo& thermoSingleLayer::slgThermo() const
|
||||
{
|
||||
return thermo_;
|
||||
return slgThermo_;
|
||||
}
|
||||
|
||||
|
||||
@ -128,7 +128,7 @@ inline const phaseChangeModel& thermoSingleLayer::phaseChange() const
|
||||
}
|
||||
|
||||
|
||||
inline const filmRadiationModel& thermoSingleLayer::radiation() const
|
||||
inline const radiationModel& thermoSingleLayer::radiation() const
|
||||
{
|
||||
return radiation_();
|
||||
}
|
||||
|
||||
@ -21,54 +21,51 @@ regionName wallFilmRegion;
|
||||
|
||||
active true;
|
||||
|
||||
thermoSingleLayerCoeffs
|
||||
thermophysicalProperties
|
||||
{
|
||||
filmThermoModel liquid;
|
||||
type liquid;
|
||||
|
||||
liquidCoeffs
|
||||
useReferenceValues no;
|
||||
liquid H2O;
|
||||
}
|
||||
|
||||
viscosity
|
||||
{
|
||||
model liquid;
|
||||
}
|
||||
|
||||
deltaWet 1e-4;
|
||||
|
||||
hydrophilic no;
|
||||
|
||||
momentumTransport
|
||||
{
|
||||
model laminar;
|
||||
Cf 0.005;
|
||||
}
|
||||
|
||||
forces
|
||||
{
|
||||
thermocapillary;
|
||||
}
|
||||
|
||||
upperSurfaceModels
|
||||
{
|
||||
heatTransfer
|
||||
{
|
||||
useReferenceValues no;
|
||||
liquid H2O;
|
||||
}
|
||||
|
||||
filmViscosityModel liquid;
|
||||
|
||||
deltaWet 1e-4;
|
||||
|
||||
hydrophilic no;
|
||||
|
||||
turbulence laminar;
|
||||
laminarCoeffs
|
||||
{
|
||||
Cf 0.005;
|
||||
}
|
||||
|
||||
forces
|
||||
(
|
||||
thermocapillary
|
||||
);
|
||||
|
||||
injectionModels ();
|
||||
|
||||
phaseChangeModel none;
|
||||
|
||||
radiationModel none;
|
||||
|
||||
upperSurfaceModels
|
||||
{
|
||||
heatTransferModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
c0 1e-8;
|
||||
}
|
||||
}
|
||||
|
||||
lowerSurfaceModels
|
||||
{
|
||||
heatTransferModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
c0 1e-8;
|
||||
}
|
||||
model constant;
|
||||
c0 1e-8;
|
||||
}
|
||||
}
|
||||
|
||||
lowerSurfaceModels
|
||||
{
|
||||
heatTransfer
|
||||
{
|
||||
model constant;
|
||||
c0 1e-8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -21,58 +21,33 @@ regionName wallFilmRegion;
|
||||
|
||||
active true;
|
||||
|
||||
thermoSingleLayerCoeffs
|
||||
thermophysicalProperties
|
||||
{
|
||||
filmThermoModel liquid;
|
||||
type liquid;
|
||||
|
||||
liquidCoeffs
|
||||
{
|
||||
useReferenceValues no;
|
||||
liquid H2O;
|
||||
}
|
||||
useReferenceValues no;
|
||||
liquid H2O;
|
||||
}
|
||||
|
||||
filmViscosityModel liquid;
|
||||
viscosity
|
||||
{
|
||||
model liquid;
|
||||
}
|
||||
|
||||
deltaWet 1e-4;
|
||||
deltaWet 1e-4;
|
||||
hydrophilic no;
|
||||
|
||||
hydrophilic no;
|
||||
momentumTransport
|
||||
{
|
||||
model laminar;
|
||||
Cf 0.005;
|
||||
}
|
||||
|
||||
radiationModel none;
|
||||
forces
|
||||
{
|
||||
thermocapillary;
|
||||
|
||||
turbulence laminar;
|
||||
laminarCoeffs
|
||||
{
|
||||
Cf 0.005;
|
||||
}
|
||||
|
||||
upperSurfaceModels
|
||||
{
|
||||
/*
|
||||
heatTransferModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
c0 1e-8;
|
||||
}
|
||||
*/
|
||||
heatTransferModel mappedConvectiveHeatTransfer;
|
||||
}
|
||||
|
||||
lowerSurfaceModels
|
||||
{
|
||||
heatTransferModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
c0 50;
|
||||
}
|
||||
}
|
||||
|
||||
forces
|
||||
(
|
||||
thermocapillary
|
||||
distributionContactAngle
|
||||
);
|
||||
|
||||
distributionContactAngleCoeffs
|
||||
distributionContactAngle
|
||||
{
|
||||
Ccf 0.085;
|
||||
|
||||
@ -90,14 +65,11 @@ thermoSingleLayerCoeffs
|
||||
|
||||
zeroForcePatches ();
|
||||
}
|
||||
}
|
||||
|
||||
injectionModels
|
||||
(
|
||||
curvatureSeparation
|
||||
drippingInjection
|
||||
);
|
||||
|
||||
curvatureSeparationCoeffs
|
||||
injection
|
||||
{
|
||||
curvatureSeparation
|
||||
{
|
||||
definedPatchRadii
|
||||
(
|
||||
@ -105,7 +77,7 @@ thermoSingleLayerCoeffs
|
||||
);
|
||||
}
|
||||
|
||||
drippingInjectionCoeffs
|
||||
drippingInjection
|
||||
{
|
||||
cloudName reactingCloud1;
|
||||
deltaStable 0;
|
||||
@ -124,14 +96,30 @@ thermoSingleLayerCoeffs
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
phaseChangeModel standardPhaseChange;
|
||||
phaseChange
|
||||
{
|
||||
model standardPhaseChange;
|
||||
Tb 373;
|
||||
deltaMin 1e-8;
|
||||
L 1.0;
|
||||
}
|
||||
|
||||
standardPhaseChangeCoeffs
|
||||
upperSurfaceModels
|
||||
{
|
||||
heatTransfer
|
||||
{
|
||||
Tb 373;
|
||||
deltaMin 1e-8;
|
||||
L 1.0;
|
||||
model mappedConvectiveHeatTransfer;
|
||||
}
|
||||
}
|
||||
|
||||
lowerSurfaceModels
|
||||
{
|
||||
heatTransfer
|
||||
{
|
||||
model constant;
|
||||
c0 50;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -21,32 +21,27 @@ regionName wallFilmRegion;
|
||||
|
||||
active true;
|
||||
|
||||
kinematicSingleLayerCoeffs
|
||||
thermophysicalProperties
|
||||
{
|
||||
filmThermoModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
specie water;
|
||||
rho0 1000;
|
||||
mu0 1e-3;
|
||||
sigma0 0.07;
|
||||
}
|
||||
type constant;
|
||||
|
||||
injectionModels ();
|
||||
specie water;
|
||||
rho0 1000;
|
||||
mu0 1e-3;
|
||||
sigma0 0.07;
|
||||
}
|
||||
|
||||
turbulence laminar;
|
||||
laminarCoeffs
|
||||
{
|
||||
Cf 0.001;
|
||||
}
|
||||
momentumTransport
|
||||
{
|
||||
model laminar;
|
||||
Cf 0.001;
|
||||
}
|
||||
|
||||
forces
|
||||
(
|
||||
thermocapillary
|
||||
distributionContactAngle
|
||||
);
|
||||
forces
|
||||
{
|
||||
thermocapillary;
|
||||
|
||||
distributionContactAngleCoeffs
|
||||
distributionContactAngle
|
||||
{
|
||||
Ccf 1;
|
||||
|
||||
@ -61,8 +56,6 @@ kinematicSingleLayerCoeffs
|
||||
variance 100;
|
||||
}
|
||||
}
|
||||
|
||||
zeroForcePatches ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -21,54 +21,50 @@ regionName wallFilm;
|
||||
|
||||
active true;
|
||||
|
||||
thermoSingleLayerCoeffs
|
||||
thermophysicalProperties
|
||||
{
|
||||
filmThermoModel liquid;
|
||||
type liquid;
|
||||
|
||||
liquidCoeffs
|
||||
useReferenceValues no;
|
||||
liquid H2O;
|
||||
}
|
||||
|
||||
viscosity
|
||||
{
|
||||
model liquid;
|
||||
}
|
||||
|
||||
deltaWet 1e-4;
|
||||
hydrophilic no;
|
||||
|
||||
momentumTransport
|
||||
{
|
||||
model laminar;
|
||||
Cf 0.005;
|
||||
}
|
||||
|
||||
forces
|
||||
{
|
||||
thermocapillary;
|
||||
}
|
||||
|
||||
upperSurfaceModels
|
||||
{
|
||||
heatTransfer
|
||||
{
|
||||
useReferenceValues no;
|
||||
liquid H2O;
|
||||
}
|
||||
|
||||
filmViscosityModel liquid;
|
||||
|
||||
deltaWet 1e-4;
|
||||
hydrophilic no;
|
||||
|
||||
turbulence laminar;
|
||||
laminarCoeffs
|
||||
{
|
||||
Cf 0.005;
|
||||
}
|
||||
|
||||
forces
|
||||
(
|
||||
thermocapillary
|
||||
);
|
||||
|
||||
injectionModels
|
||||
();
|
||||
|
||||
phaseChangeModel none;
|
||||
|
||||
radiationModel none;
|
||||
|
||||
upperSurfaceModels
|
||||
{
|
||||
heatTransferModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
c0 1e-8;
|
||||
}
|
||||
}
|
||||
|
||||
lowerSurfaceModels
|
||||
{
|
||||
heatTransferModel constant;
|
||||
constantCoeffs
|
||||
{
|
||||
c0 1e-8;
|
||||
}
|
||||
model constant;
|
||||
c0 1e-8;
|
||||
}
|
||||
}
|
||||
|
||||
lowerSurfaceModels
|
||||
{
|
||||
heatTransfer
|
||||
{
|
||||
model constant;
|
||||
c0 1e-8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
Reference in New Issue
Block a user