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:
Henry Weller
2021-12-16 20:51:08 +00:00
parent 593befd959
commit ad20aecf0e
20 changed files with 64 additions and 673 deletions

View File

@ -58,21 +58,12 @@ Foam::fv::VoFSurfaceFilm::VoFSurfaceFilm
)
:
fvModel(sourceName, modelType, dict, mesh),
phaseName_(dict.lookup("phase")),
thermo_
(
mesh.lookupObject<fluidThermo>
(
IOobject::groupName(physicalProperties::typeName, phaseName_)
)
),
film_
(
regionModels::surfaceFilmModel::New
surfaceFilm_
(
regionModels::surfaceFilmModels::thermoSingleLayer::typeName,
mesh,
mesh.lookupObject<uniformDimensionedVectorField>("g")
)
mesh.lookupObject<uniformDimensionedVectorField>("g"),
"surfaceFilm"
),
curTimeIndex_(-1)
{}
@ -82,7 +73,14 @@ Foam::fv::VoFSurfaceFilm::VoFSurfaceFilm
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;
}
film_->evolve();
surfaceFilm_.evolve();
curTimeIndex_ = mesh().time().timeIndex();
}
@ -111,17 +109,18 @@ void Foam::fv::VoFSurfaceFilm::addSup
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 +=
film_->Sh()()/Cv
+ film_->Srho()*(eqn.psi() - thermo_.he()/Cv);
surfaceFilm_.Sh()()/Cv
+ surfaceFilm_.Srho()
*(eqn.psi() - surfaceFilm_.primaryThermo().he()/Cv);
}
else
{
@ -144,7 +143,7 @@ void Foam::fv::VoFSurfaceFilm::addSup
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
}
eqn += film_->SU();
eqn += surfaceFilm_.SU();
}

View File

@ -46,8 +46,7 @@ SourceFiles
#define VoFSurfaceFilm_H
#include "fvModel.H"
#include "fluidThermo.H"
#include "surfaceFilmModel.H"
#include "thermoSingleLayer.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -66,14 +65,8 @@ class VoFSurfaceFilm
{
// Private Data
//- The name of the phase which transfers to the film
word phaseName_;
//- Reference to the primary region thermo
const fluidThermo& thermo_;
//- The surface film model pointer
mutable autoPtr<regionModels::surfaceFilmModel> film_;
//- The surface film model
regionModels::surfaceFilmModels::thermoSingleLayer surfaceFilm_;
//- Current time index (used for updating)
mutable label curTimeIndex_;

View File

@ -1,8 +1,5 @@
# Surface film models
surfaceFilmModel/surfaceFilmModel.C
surfaceFilmModel/surfaceFilmModelNew.C
surfaceFilmRegionModel/surfaceFilmRegionModel.C
noFilm/noFilm.C
kinematicSingleLayer/kinematicSingleLayer.C
thermoSingleLayer/thermoSingleLayer.C

View File

@ -24,6 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "surfaceFilm.H"
#include "uniformDimensionedFields.H"
#include "basicSpecieMixture.H"
#include "fvMatrix.H"
#include "addToRunTimeSelectionTable.H"
@ -57,17 +58,12 @@ Foam::fv::surfaceFilm::surfaceFilm
)
:
fvModel(sourceName, modelType, dict, mesh),
primaryThermo_
(
mesh.lookupObject<fluidThermo>(physicalProperties::typeName)
),
surfaceFilm_
(
regionModels::surfaceFilmModel::New
(
regionModels::surfaceFilmModels::thermoSingleLayer::typeName,
mesh,
mesh.lookupObject<uniformDimensionedVectorField>("g")
)
mesh.lookupObject<uniformDimensionedVectorField>("g"),
"surfaceFilm"
),
curTimeIndex_(-1)
{}
@ -77,12 +73,19 @@ Foam::fv::surfaceFilm::surfaceFilm
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 =
refCast<const basicSpecieMixture>(primaryThermo_);
refCast<const basicSpecieMixture>(surfaceFilm_.primaryThermo());
const PtrList<volScalarField>& Y = composition.Y();
@ -106,7 +109,7 @@ void Foam::fv::surfaceFilm::correct()
return;
}
surfaceFilm_->evolve();
surfaceFilm_.evolve();
curTimeIndex_ = mesh().time().timeIndex();
}
@ -123,9 +126,9 @@ void Foam::fv::surfaceFilm::addSup
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
}
if (fieldName == "rho")
if (fieldName == surfaceFilm_.rhoPrimary().name())
{
eqn += surfaceFilm_->Srho();
eqn += surfaceFilm_.Srho();
}
else
{
@ -148,26 +151,27 @@ void Foam::fv::surfaceFilm::addSup
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
(
isA<basicSpecieMixture>(primaryThermo_)
&& refCast<const basicSpecieMixture>(primaryThermo_).contains
isA<basicSpecieMixture>(surfaceFilm_.primaryThermo())
&& refCast<const basicSpecieMixture>(surfaceFilm_.primaryThermo()).contains
(
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
@ -191,9 +195,9 @@ void Foam::fv::surfaceFilm::addSup
Info<< type() << ": applying source to " << eqn.psi().name() << endl;
}
if (fieldName == "U")
if (fieldName == surfaceFilm_.UPrimary().name())
{
eqn += surfaceFilm_->SU();
eqn += surfaceFilm_.SU();
}
else
{

View File

@ -45,9 +45,7 @@ SourceFiles
#define surfaceFilm_H
#include "fvModel.H"
#include "fluidThermo.H"
#include "uniformDimensionedFields.H"
#include "surfaceFilmModel.H"
#include "thermoSingleLayer.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -66,11 +64,8 @@ class surfaceFilm
{
// Private Data
//- Reference to the primary region thermo
const fluidThermo& primaryThermo_;
//- The surfaceFilmModel pointer
autoPtr<regionModels::surfaceFilmModel> surfaceFilm_;
//- The surface film model
regionModels::surfaceFilmModels::thermoSingleLayer surfaceFilm_;
//- Current time index (used for updating)
mutable label curTimeIndex_;

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -63,7 +63,6 @@ surfaceFilmRegionModel::surfaceFilmRegionModel
const word& regionType
)
:
surfaceFilmModel(),
singleLayerRegion(mesh, regionType, modelType),
g_(g)
{

View File

@ -35,7 +35,6 @@ SourceFiles
#ifndef surfaceFilmRegionModel_H
#define surfaceFilmRegionModel_H
#include "surfaceFilmModel.H"
#include "singleLayerRegion.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -53,7 +52,6 @@ namespace surfaceFilmModels
class surfaceFilmRegionModel
:
public surfaceFilmModel,
public singleLayerRegion
{
// Private data

View File

@ -60,8 +60,6 @@ namespace surfaceFilmModels
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(thermoSingleLayer, 0);
addToRunTimeSelectionTable(surfaceFilmRegionModel, thermoSingleLayer, mesh);
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //

View File

@ -10,12 +10,10 @@ FoamFile
format ascii;
class dictionary;
location "constant";
object SurfaceFilmProperties;
object surfaceFilmProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFilmModel thermoSingleLayer;
regionName wallFilmRegion;
viscosity

View File

@ -10,12 +10,10 @@ FoamFile
format ascii;
class dictionary;
location "constant";
object SurfaceFilmProperties;
object surfaceFilmProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFilmModel thermoSingleLayer;
regionName wallFilmRegion;
viscosity

View File

@ -10,12 +10,10 @@ FoamFile
format ascii;
class dictionary;
location "constant";
object SurfaceFilmProperties;
object surfaceFilmProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFilmModel thermoSingleLayer;
regionName wallFilmRegion;
viscosity

View File

@ -10,12 +10,10 @@ FoamFile
format ascii;
class dictionary;
location "constant";
object SurfaceFilmProperties;
object surfaceFilmProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFilmModel thermoSingleLayer;
regionName wallFilm;
viscosity

View File

@ -29,8 +29,6 @@ VoFSurfaceFilm
type VoFSurfaceFilm;
libs ("libVoFSurfaceFilm.so");
phase liquid;
}
// ************************************************************************* //

View File

@ -14,8 +14,6 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFilmModel thermoSingleLayer;
regionName wallFilmRegion;
phase liquid;

View File

@ -14,8 +14,6 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFilmModel thermoSingleLayer;
regionName plateRegion;
phase liquid;