surfaceFilmModel: film model selection now handled by fvModel
There is no longer any need for the surfaceFilmModel abstract base class and "New" selection method as surface films are now handled within the fvModel framework. This makes the surfaceFilmModel entry in the surfaceFilmProperties dictionary redundant. The surfaceFilm and VoFSurfaceFilm fvModels now instantiate a thermoSingleLayer providing direct access to all the film functions, simplifying the implementation better ensuring consistency between the film and primary region equations.
This commit is contained in:
@ -58,21 +58,12 @@ Foam::fv::VoFSurfaceFilm::VoFSurfaceFilm
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fvModel(sourceName, modelType, dict, mesh),
|
fvModel(sourceName, modelType, dict, mesh),
|
||||||
phaseName_(dict.lookup("phase")),
|
surfaceFilm_
|
||||||
thermo_
|
|
||||||
(
|
(
|
||||||
mesh.lookupObject<fluidThermo>
|
regionModels::surfaceFilmModels::thermoSingleLayer::typeName,
|
||||||
(
|
mesh,
|
||||||
IOobject::groupName(physicalProperties::typeName, phaseName_)
|
mesh.lookupObject<uniformDimensionedVectorField>("g"),
|
||||||
)
|
"surfaceFilm"
|
||||||
),
|
|
||||||
film_
|
|
||||||
(
|
|
||||||
regionModels::surfaceFilmModel::New
|
|
||||||
(
|
|
||||||
mesh,
|
|
||||||
mesh.lookupObject<uniformDimensionedVectorField>("g")
|
|
||||||
)
|
|
||||||
),
|
),
|
||||||
curTimeIndex_(-1)
|
curTimeIndex_(-1)
|
||||||
{}
|
{}
|
||||||
@ -82,7 +73,14 @@ Foam::fv::VoFSurfaceFilm::VoFSurfaceFilm
|
|||||||
|
|
||||||
Foam::wordList Foam::fv::VoFSurfaceFilm::addSupFields() const
|
Foam::wordList Foam::fv::VoFSurfaceFilm::addSupFields() const
|
||||||
{
|
{
|
||||||
return wordList({thermo_.rho()().name(), "U", "T"});
|
return wordList
|
||||||
|
(
|
||||||
|
{
|
||||||
|
surfaceFilm_.rhoPrimary().name(),
|
||||||
|
surfaceFilm_.UPrimary().name(),
|
||||||
|
surfaceFilm_.TPrimary().name()
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -93,7 +91,7 @@ void Foam::fv::VoFSurfaceFilm::correct()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
film_->evolve();
|
surfaceFilm_.evolve();
|
||||||
|
|
||||||
curTimeIndex_ = mesh().time().timeIndex();
|
curTimeIndex_ = mesh().time().timeIndex();
|
||||||
}
|
}
|
||||||
@ -111,17 +109,18 @@ void Foam::fv::VoFSurfaceFilm::addSup
|
|||||||
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldName == thermo_.rho()().name())
|
if (fieldName == surfaceFilm_.rhoPrimary().name())
|
||||||
{
|
{
|
||||||
eqn += film_->Srho();
|
eqn += surfaceFilm_.Srho();
|
||||||
}
|
}
|
||||||
else if (fieldName == "T")
|
else if (fieldName == surfaceFilm_.TPrimary().name())
|
||||||
{
|
{
|
||||||
const volScalarField::Internal Cv(thermo_.Cv());
|
const volScalarField::Internal Cv(surfaceFilm_.primaryThermo().Cv());
|
||||||
|
|
||||||
eqn +=
|
eqn +=
|
||||||
film_->Sh()()/Cv
|
surfaceFilm_.Sh()()/Cv
|
||||||
+ film_->Srho()*(eqn.psi() - thermo_.he()/Cv);
|
+ surfaceFilm_.Srho()
|
||||||
|
*(eqn.psi() - surfaceFilm_.primaryThermo().he()/Cv);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -144,7 +143,7 @@ void Foam::fv::VoFSurfaceFilm::addSup
|
|||||||
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
eqn += film_->SU();
|
eqn += surfaceFilm_.SU();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -46,8 +46,7 @@ SourceFiles
|
|||||||
#define VoFSurfaceFilm_H
|
#define VoFSurfaceFilm_H
|
||||||
|
|
||||||
#include "fvModel.H"
|
#include "fvModel.H"
|
||||||
#include "fluidThermo.H"
|
#include "thermoSingleLayer.H"
|
||||||
#include "surfaceFilmModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -57,7 +56,7 @@ namespace fv
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class VoFSurfaceFilm Declaration
|
Class VoFSurfaceFilm Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class VoFSurfaceFilm
|
class VoFSurfaceFilm
|
||||||
@ -66,14 +65,8 @@ class VoFSurfaceFilm
|
|||||||
{
|
{
|
||||||
// Private Data
|
// Private Data
|
||||||
|
|
||||||
//- The name of the phase which transfers to the film
|
//- The surface film model
|
||||||
word phaseName_;
|
regionModels::surfaceFilmModels::thermoSingleLayer surfaceFilm_;
|
||||||
|
|
||||||
//- Reference to the primary region thermo
|
|
||||||
const fluidThermo& thermo_;
|
|
||||||
|
|
||||||
//- The surface film model pointer
|
|
||||||
mutable autoPtr<regionModels::surfaceFilmModel> film_;
|
|
||||||
|
|
||||||
//- Current time index (used for updating)
|
//- Current time index (used for updating)
|
||||||
mutable label curTimeIndex_;
|
mutable label curTimeIndex_;
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
# Surface film models
|
# Surface film models
|
||||||
surfaceFilmModel/surfaceFilmModel.C
|
|
||||||
surfaceFilmModel/surfaceFilmModelNew.C
|
|
||||||
surfaceFilmRegionModel/surfaceFilmRegionModel.C
|
surfaceFilmRegionModel/surfaceFilmRegionModel.C
|
||||||
noFilm/noFilm.C
|
|
||||||
kinematicSingleLayer/kinematicSingleLayer.C
|
kinematicSingleLayer/kinematicSingleLayer.C
|
||||||
thermoSingleLayer/thermoSingleLayer.C
|
thermoSingleLayer/thermoSingleLayer.C
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "surfaceFilm.H"
|
#include "surfaceFilm.H"
|
||||||
|
#include "uniformDimensionedFields.H"
|
||||||
#include "basicSpecieMixture.H"
|
#include "basicSpecieMixture.H"
|
||||||
#include "fvMatrix.H"
|
#include "fvMatrix.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
@ -57,17 +58,12 @@ Foam::fv::surfaceFilm::surfaceFilm
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fvModel(sourceName, modelType, dict, mesh),
|
fvModel(sourceName, modelType, dict, mesh),
|
||||||
primaryThermo_
|
|
||||||
(
|
|
||||||
mesh.lookupObject<fluidThermo>(physicalProperties::typeName)
|
|
||||||
),
|
|
||||||
surfaceFilm_
|
surfaceFilm_
|
||||||
(
|
(
|
||||||
regionModels::surfaceFilmModel::New
|
regionModels::surfaceFilmModels::thermoSingleLayer::typeName,
|
||||||
(
|
mesh,
|
||||||
mesh,
|
mesh.lookupObject<uniformDimensionedVectorField>("g"),
|
||||||
mesh.lookupObject<uniformDimensionedVectorField>("g")
|
"surfaceFilm"
|
||||||
)
|
|
||||||
),
|
),
|
||||||
curTimeIndex_(-1)
|
curTimeIndex_(-1)
|
||||||
{}
|
{}
|
||||||
@ -77,12 +73,19 @@ Foam::fv::surfaceFilm::surfaceFilm
|
|||||||
|
|
||||||
Foam::wordList Foam::fv::surfaceFilm::addSupFields() const
|
Foam::wordList Foam::fv::surfaceFilm::addSupFields() const
|
||||||
{
|
{
|
||||||
wordList fieldNames({"rho", "U", primaryThermo_.he().name()});
|
wordList fieldNames
|
||||||
|
(
|
||||||
|
{
|
||||||
|
surfaceFilm_.rhoPrimary().name(),
|
||||||
|
surfaceFilm_.UPrimary().name(),
|
||||||
|
surfaceFilm_.primaryThermo().he().name()
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
if (isA<basicSpecieMixture>(primaryThermo_))
|
if (isA<basicSpecieMixture>(surfaceFilm_.primaryThermo()))
|
||||||
{
|
{
|
||||||
const basicSpecieMixture& composition =
|
const basicSpecieMixture& composition =
|
||||||
refCast<const basicSpecieMixture>(primaryThermo_);
|
refCast<const basicSpecieMixture>(surfaceFilm_.primaryThermo());
|
||||||
|
|
||||||
const PtrList<volScalarField>& Y = composition.Y();
|
const PtrList<volScalarField>& Y = composition.Y();
|
||||||
|
|
||||||
@ -106,7 +109,7 @@ void Foam::fv::surfaceFilm::correct()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
surfaceFilm_->evolve();
|
surfaceFilm_.evolve();
|
||||||
|
|
||||||
curTimeIndex_ = mesh().time().timeIndex();
|
curTimeIndex_ = mesh().time().timeIndex();
|
||||||
}
|
}
|
||||||
@ -123,9 +126,9 @@ void Foam::fv::surfaceFilm::addSup
|
|||||||
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldName == "rho")
|
if (fieldName == surfaceFilm_.rhoPrimary().name())
|
||||||
{
|
{
|
||||||
eqn += surfaceFilm_->Srho();
|
eqn += surfaceFilm_.Srho();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -148,26 +151,27 @@ void Foam::fv::surfaceFilm::addSup
|
|||||||
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldName == "rho")
|
if (fieldName == surfaceFilm_.rhoPrimary().name())
|
||||||
{
|
{
|
||||||
eqn += surfaceFilm_->Srho();
|
eqn += surfaceFilm_.Srho();
|
||||||
}
|
}
|
||||||
else if (fieldName == primaryThermo_.he().name())
|
else if (fieldName == surfaceFilm_.primaryThermo().he().name())
|
||||||
{
|
{
|
||||||
eqn += surfaceFilm_->Sh();
|
eqn += surfaceFilm_.Sh();
|
||||||
}
|
}
|
||||||
else if
|
else if
|
||||||
(
|
(
|
||||||
isA<basicSpecieMixture>(primaryThermo_)
|
isA<basicSpecieMixture>(surfaceFilm_.primaryThermo())
|
||||||
&& refCast<const basicSpecieMixture>(primaryThermo_).contains
|
&& refCast<const basicSpecieMixture>(surfaceFilm_.primaryThermo()).contains
|
||||||
(
|
(
|
||||||
eqn.psi().name()
|
eqn.psi().name()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
eqn += surfaceFilm_->SYi
|
eqn += surfaceFilm_.SYi
|
||||||
(
|
(
|
||||||
refCast<const basicSpecieMixture>(primaryThermo_).index(eqn.psi())
|
refCast<const basicSpecieMixture>(surfaceFilm_.primaryThermo())
|
||||||
|
.index(eqn.psi())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -191,9 +195,9 @@ void Foam::fv::surfaceFilm::addSup
|
|||||||
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldName == "U")
|
if (fieldName == surfaceFilm_.UPrimary().name())
|
||||||
{
|
{
|
||||||
eqn += surfaceFilm_->SU();
|
eqn += surfaceFilm_.SU();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -45,9 +45,7 @@ SourceFiles
|
|||||||
#define surfaceFilm_H
|
#define surfaceFilm_H
|
||||||
|
|
||||||
#include "fvModel.H"
|
#include "fvModel.H"
|
||||||
#include "fluidThermo.H"
|
#include "thermoSingleLayer.H"
|
||||||
#include "uniformDimensionedFields.H"
|
|
||||||
#include "surfaceFilmModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -57,7 +55,7 @@ namespace fv
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class surfaceFilm Declaration
|
Class surfaceFilm Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class surfaceFilm
|
class surfaceFilm
|
||||||
@ -66,11 +64,8 @@ class surfaceFilm
|
|||||||
{
|
{
|
||||||
// Private Data
|
// Private Data
|
||||||
|
|
||||||
//- Reference to the primary region thermo
|
//- The surface film model
|
||||||
const fluidThermo& primaryThermo_;
|
regionModels::surfaceFilmModels::thermoSingleLayer surfaceFilm_;
|
||||||
|
|
||||||
//- The surfaceFilmModel pointer
|
|
||||||
autoPtr<regionModels::surfaceFilmModel> surfaceFilm_;
|
|
||||||
|
|
||||||
//- Current time index (used for updating)
|
//- Current time index (used for updating)
|
||||||
mutable label curTimeIndex_;
|
mutable label curTimeIndex_;
|
||||||
|
|||||||
@ -1,127 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Copyright (C) 2011-2021 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 "noFilm.H"
|
|
||||||
#include "addToRunTimeSelectionTable.H"
|
|
||||||
#include "volFields.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace regionModels
|
|
||||||
{
|
|
||||||
namespace surfaceFilmModels
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
defineTypeNameAndDebug(noFilm, 0);
|
|
||||||
addToRunTimeSelectionTable(surfaceFilmModel, noFilm, mesh);
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
noFilm::noFilm
|
|
||||||
(
|
|
||||||
const word& modelType,
|
|
||||||
const fvMesh& mesh,
|
|
||||||
const dimensionedVector& g,
|
|
||||||
const word& regionType
|
|
||||||
)
|
|
||||||
:
|
|
||||||
surfaceFilmModel(),
|
|
||||||
mesh_(mesh)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
noFilm::~noFilm()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
Foam::scalar noFilm::CourantNumber() const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<volScalarField::Internal> noFilm::Srho() const
|
|
||||||
{
|
|
||||||
return volScalarField::Internal::New
|
|
||||||
(
|
|
||||||
"noFilm::Srho",
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimMass/dimVolume/dimTime, 0)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<volScalarField::Internal> noFilm::SYi(const label i) const
|
|
||||||
{
|
|
||||||
return volScalarField::Internal::New
|
|
||||||
(
|
|
||||||
"noFilm::SY(" + Foam::name(i) + ")",
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimMass/dimVolume/dimTime, 0)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<volVectorField::Internal> noFilm::SU() const
|
|
||||||
{
|
|
||||||
return volVectorField::Internal::New
|
|
||||||
(
|
|
||||||
IOobject::modelName("SU", typeName),
|
|
||||||
mesh_,
|
|
||||||
dimensionedVector(dimMass/dimVolume/dimTime, Zero)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<volScalarField::Internal> noFilm::Sh() const
|
|
||||||
{
|
|
||||||
return volScalarField::Internal::New
|
|
||||||
(
|
|
||||||
"noFilm::Sh",
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimEnergy/dimVolume/dimTime, 0)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void noFilm::evolve()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace surfaceFilmModels
|
|
||||||
} // End namespace regionModels
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,138 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Copyright (C) 2011-2021 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::regionModels::surfaceFilmModels::noFilm
|
|
||||||
|
|
||||||
Description
|
|
||||||
Dummy surfaceFilmModel to allow solvers supporting film simulations to be
|
|
||||||
run without a film region.
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
noFilm.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef noFilm_H
|
|
||||||
#define noFilm_H
|
|
||||||
|
|
||||||
#include "surfaceFilmModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace regionModels
|
|
||||||
{
|
|
||||||
namespace surfaceFilmModels
|
|
||||||
{
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
Class noFilm Declaration
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
class noFilm
|
|
||||||
:
|
|
||||||
public surfaceFilmModel
|
|
||||||
{
|
|
||||||
// Private member data
|
|
||||||
|
|
||||||
//- Reference to the mesh
|
|
||||||
const fvMesh& mesh_;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
//- Runtime type information
|
|
||||||
TypeName("none");
|
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
|
||||||
|
|
||||||
//- Construct from components
|
|
||||||
noFilm
|
|
||||||
(
|
|
||||||
const word& modelType,
|
|
||||||
const fvMesh& mesh,
|
|
||||||
const dimensionedVector& g,
|
|
||||||
const word& regionType
|
|
||||||
);
|
|
||||||
|
|
||||||
//- Disallow default bitwise copy construction
|
|
||||||
noFilm(const noFilm&) = delete;
|
|
||||||
|
|
||||||
|
|
||||||
//- Destructor
|
|
||||||
virtual ~noFilm();
|
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
|
||||||
|
|
||||||
// Solution parameters
|
|
||||||
|
|
||||||
//- Courant number evaluation
|
|
||||||
virtual scalar CourantNumber() const;
|
|
||||||
|
|
||||||
|
|
||||||
// Primary region source fields
|
|
||||||
|
|
||||||
//- Return total mass source - Eulerian phase only
|
|
||||||
virtual tmp<volScalarField::Internal> Srho() const;
|
|
||||||
|
|
||||||
//- Return mass source for specie i - Eulerian phase only
|
|
||||||
virtual tmp<volScalarField::Internal> SYi
|
|
||||||
(
|
|
||||||
const label i
|
|
||||||
) const;
|
|
||||||
|
|
||||||
//- Return momentum source - Eulerian phase only
|
|
||||||
virtual tmp<volVectorField::Internal> SU() const;
|
|
||||||
|
|
||||||
//- Return enthalpy source - Eulerian phase only
|
|
||||||
virtual tmp<volScalarField::Internal> Sh() const;
|
|
||||||
|
|
||||||
|
|
||||||
// Evolution
|
|
||||||
|
|
||||||
//- Main driver routing to evolve the region - calls other evolves
|
|
||||||
virtual void evolve();
|
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
|
||||||
|
|
||||||
//- Disallow default bitwise assignment
|
|
||||||
void operator=(const noFilm&) = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace surfaceFilmModels
|
|
||||||
} // regionModels
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Copyright (C) 2017-2021 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 "surfaceFilmModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace regionModels
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
defineTypeNameAndDebug(surfaceFilmModel, 0);
|
|
||||||
defineRunTimeSelectionTable(surfaceFilmModel, mesh);
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
surfaceFilmModel::surfaceFilmModel()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
surfaceFilmModel::~surfaceFilmModel()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace regionModels
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,150 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Copyright (C) 2017-2021 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::regionModels::surfaceFilmModel
|
|
||||||
|
|
||||||
Description
|
|
||||||
Base class for surface film models
|
|
||||||
|
|
||||||
SourceFiles
|
|
||||||
surfaceFilmModelI.H
|
|
||||||
surfaceFilmModel.C
|
|
||||||
surfaceFilmModelNew.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef surfaceFilmModel_H
|
|
||||||
#define surfaceFilmModel_H
|
|
||||||
|
|
||||||
#include "runTimeSelectionTables.H"
|
|
||||||
#include "volFields.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace regionModels
|
|
||||||
{
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
Class surfaceFilmModel Declaration
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
class surfaceFilmModel
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
//- Runtime type information
|
|
||||||
TypeName("surfaceFilmModel");
|
|
||||||
|
|
||||||
|
|
||||||
// Declare runtime constructor selection table
|
|
||||||
|
|
||||||
declareRunTimeSelectionTable
|
|
||||||
(
|
|
||||||
autoPtr,
|
|
||||||
surfaceFilmModel,
|
|
||||||
mesh,
|
|
||||||
(
|
|
||||||
const word& modelType,
|
|
||||||
const fvMesh& mesh,
|
|
||||||
const dimensionedVector& g,
|
|
||||||
const word& regionType
|
|
||||||
),
|
|
||||||
(modelType, mesh, g, regionType)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
|
||||||
|
|
||||||
surfaceFilmModel();
|
|
||||||
|
|
||||||
//- Disallow default bitwise copy construction
|
|
||||||
surfaceFilmModel(const surfaceFilmModel&) = delete;
|
|
||||||
|
|
||||||
|
|
||||||
// Selectors
|
|
||||||
|
|
||||||
//- Return a reference to the selected surface film model
|
|
||||||
static autoPtr<surfaceFilmModel> New
|
|
||||||
(
|
|
||||||
const fvMesh& mesh,
|
|
||||||
const dimensionedVector& g,
|
|
||||||
const word& regionType = "surfaceFilm"
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
//- Destructor
|
|
||||||
virtual ~surfaceFilmModel();
|
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
|
||||||
|
|
||||||
// Solution parameters
|
|
||||||
|
|
||||||
//- Courant number evaluation
|
|
||||||
virtual scalar CourantNumber() const = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// Evolution
|
|
||||||
|
|
||||||
//- Main driver routing to evolve the region - calls other evolves
|
|
||||||
virtual void evolve() = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// Primary region source fields
|
|
||||||
|
|
||||||
//- Return total mass source - Eulerian phase only
|
|
||||||
virtual tmp<volScalarField::Internal> Srho() const = 0;
|
|
||||||
|
|
||||||
//- Return mass source for specie i - Eulerian phase only
|
|
||||||
virtual tmp<volScalarField::Internal> SYi
|
|
||||||
(
|
|
||||||
const label i
|
|
||||||
) const = 0;
|
|
||||||
|
|
||||||
//- Return momentum source - Eulerian phase only
|
|
||||||
virtual tmp<volVectorField::Internal> SU() const = 0;
|
|
||||||
|
|
||||||
//- Return enthalpy source - Eulerian phase only
|
|
||||||
virtual tmp<volScalarField::Internal> Sh() const = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
|
||||||
|
|
||||||
//- Disallow default bitwise assignment
|
|
||||||
void operator=(const surfaceFilmModel&) = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace regionModels
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,105 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Copyright (C) 2011-2021 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 "surfaceFilmModel.H"
|
|
||||||
#include "noFilm.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
namespace regionModels
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
autoPtr<surfaceFilmModel> surfaceFilmModel::New
|
|
||||||
(
|
|
||||||
const fvMesh& mesh,
|
|
||||||
const dimensionedVector& g,
|
|
||||||
const word& regionType
|
|
||||||
)
|
|
||||||
{
|
|
||||||
word modelType;
|
|
||||||
|
|
||||||
{
|
|
||||||
typeIOobject<IOdictionary> surfaceFilmPropertiesDictHeader
|
|
||||||
(
|
|
||||||
regionType + "Properties",
|
|
||||||
mesh.time().constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
if (surfaceFilmPropertiesDictHeader.headerOk())
|
|
||||||
{
|
|
||||||
IOdictionary surfaceFilmPropertiesDict
|
|
||||||
(
|
|
||||||
surfaceFilmPropertiesDictHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
surfaceFilmPropertiesDict.lookup("surfaceFilmModel") >> modelType;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
modelType = surfaceFilmModels::noFilm::typeName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "Selecting surfaceFilmModel " << modelType << endl;
|
|
||||||
|
|
||||||
meshConstructorTable::iterator cstrIter =
|
|
||||||
meshConstructorTablePtr_->find(modelType);
|
|
||||||
|
|
||||||
if (cstrIter == meshConstructorTablePtr_->end())
|
|
||||||
{
|
|
||||||
FatalErrorInFunction
|
|
||||||
<< "Unknown surfaceFilmModel type " << modelType
|
|
||||||
<< nl << nl << "Valid surfaceFilmModel types are:" << nl
|
|
||||||
<< meshConstructorTablePtr_->toc()
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
return autoPtr<surfaceFilmModel>
|
|
||||||
(
|
|
||||||
cstrIter()
|
|
||||||
(
|
|
||||||
modelType,
|
|
||||||
mesh,
|
|
||||||
g,
|
|
||||||
regionType
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace regionModels
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration | Website: https://openfoam.org
|
\\ / O peration | Website: https://openfoam.org
|
||||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -63,7 +63,6 @@ surfaceFilmRegionModel::surfaceFilmRegionModel
|
|||||||
const word& regionType
|
const word& regionType
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
surfaceFilmModel(),
|
|
||||||
singleLayerRegion(mesh, regionType, modelType),
|
singleLayerRegion(mesh, regionType, modelType),
|
||||||
g_(g)
|
g_(g)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -35,7 +35,6 @@ SourceFiles
|
|||||||
#ifndef surfaceFilmRegionModel_H
|
#ifndef surfaceFilmRegionModel_H
|
||||||
#define surfaceFilmRegionModel_H
|
#define surfaceFilmRegionModel_H
|
||||||
|
|
||||||
#include "surfaceFilmModel.H"
|
|
||||||
#include "singleLayerRegion.H"
|
#include "singleLayerRegion.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -53,7 +52,6 @@ namespace surfaceFilmModels
|
|||||||
|
|
||||||
class surfaceFilmRegionModel
|
class surfaceFilmRegionModel
|
||||||
:
|
:
|
||||||
public surfaceFilmModel,
|
|
||||||
public singleLayerRegion
|
public singleLayerRegion
|
||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|||||||
@ -60,8 +60,6 @@ namespace surfaceFilmModels
|
|||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
defineTypeNameAndDebug(thermoSingleLayer, 0);
|
defineTypeNameAndDebug(thermoSingleLayer, 0);
|
||||||
addToRunTimeSelectionTable(surfaceFilmRegionModel, thermoSingleLayer, mesh);
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -10,12 +10,10 @@ FoamFile
|
|||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "constant";
|
location "constant";
|
||||||
object SurfaceFilmProperties;
|
object surfaceFilmProperties;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
surfaceFilmModel thermoSingleLayer;
|
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilmRegion;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
|
|||||||
@ -10,12 +10,10 @@ FoamFile
|
|||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "constant";
|
location "constant";
|
||||||
object SurfaceFilmProperties;
|
object surfaceFilmProperties;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
surfaceFilmModel thermoSingleLayer;
|
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilmRegion;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
|
|||||||
@ -10,12 +10,10 @@ FoamFile
|
|||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "constant";
|
location "constant";
|
||||||
object SurfaceFilmProperties;
|
object surfaceFilmProperties;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
surfaceFilmModel thermoSingleLayer;
|
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilmRegion;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
|
|||||||
@ -10,12 +10,10 @@ FoamFile
|
|||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "constant";
|
location "constant";
|
||||||
object SurfaceFilmProperties;
|
object surfaceFilmProperties;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
surfaceFilmModel thermoSingleLayer;
|
|
||||||
|
|
||||||
regionName wallFilm;
|
regionName wallFilm;
|
||||||
|
|
||||||
viscosity
|
viscosity
|
||||||
|
|||||||
@ -29,8 +29,6 @@ VoFSurfaceFilm
|
|||||||
type VoFSurfaceFilm;
|
type VoFSurfaceFilm;
|
||||||
|
|
||||||
libs ("libVoFSurfaceFilm.so");
|
libs ("libVoFSurfaceFilm.so");
|
||||||
|
|
||||||
phase liquid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -14,8 +14,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
surfaceFilmModel thermoSingleLayer;
|
|
||||||
|
|
||||||
regionName wallFilmRegion;
|
regionName wallFilmRegion;
|
||||||
|
|
||||||
phase liquid;
|
phase liquid;
|
||||||
|
|||||||
@ -14,8 +14,6 @@ FoamFile
|
|||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
surfaceFilmModel thermoSingleLayer;
|
|
||||||
|
|
||||||
regionName plateRegion;
|
regionName plateRegion;
|
||||||
|
|
||||||
phase liquid;
|
phase liquid;
|
||||||
|
|||||||
Reference in New Issue
Block a user