liquidFilmModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2020 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::regionFaModels::liquidFilmModel
28 
29 Description
30  Thin film model.
31 
32 Usage
33  Example of the boundary condition specification:
34  \verbatim
35  <patchName>
36  {
37  // Mandatory entries
38  thermo <dict>;
39 
40  // Optional entries
41  T0 <scalar>;
42 
43  // Inherited entries
44  ...
45  }
46  \endverbatim
47 
48  where the entries mean:
49  \table
50  Property | Description | Type | Reqd | Deflt
51  thermo | Liquid thermodynamics properties | dict | yes | -
52  T0 | Reference temperature [K] | scalar | choice | -
53  \endtable
54 
55  The inherited entries are elaborated in:
56  - \link liquidFilmBase.H \endlink
57  - \link filmTurbulenceModel.H \endlink
58  - \link injectionModelList.H \endlink
59  - \link forceList.H \endlink
60 
61 SourceFiles
62  liquidFilmModel.C
63 
64 \*---------------------------------------------------------------------------*/
65 
66 #ifndef liquidFilmModel_H
67 #define liquidFilmModel_H
68 
69 #include "volFieldsFwd.H"
70 #include "liquidFilmBase.H"
71 #include "filmTurbulenceModel.H"
73 #include "injectionModelList.H"
74 #include "faCFD.H"
75 #include "forceList.H"
76 
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78 
79 namespace Foam
80 {
81 namespace regionModels
82 {
83 namespace areaSurfaceFilmModels
84 {
85 
86 /*---------------------------------------------------------------------------*\
87  Class liquidFilmModel Declaration
88 \*---------------------------------------------------------------------------*/
89 
90 class liquidFilmModel
91 :
92  public liquidFilmBase
93 {
94 protected:
95 
96  // Thermo properties
97 
98  //- Liquid thermo
100 
101  //- Reference temperature
102  scalar Tref_;
104 
105  // Fields
106 
107  //- Density [kg/m3]
109 
110  //- Dynamic viscosity [Pa.s]
112 
113  //- Film temperature [K]
115 
116  //- Film heat capacity [J/K]
118 
119  //- Surface tension [m/s^2]
121 
122  //- Film rho*height [m.kg/m^3]
124 
125 
126  // Mass exchange sources
128  //- Mass source
130 
131  //- Momentum source
133 
134  //- Normal pressure by particles
136 
138  // Transfer fields
139 
140  //- Film mass for transfer to cloud
143  //- Parcel diameters originating from film to cloud
145 
146 
147  // General properties
148 
149  //- Turbulence model
151 
153  // Sub-models
154 
155  //- Available mass for transfer via sub-models
157 
158  //- Cloud injection
161  //- List of film forces
163 
164 
165 public:
166 
167  //- Runtime type information
168  TypeName("liquidFilmModel");
169 
171  // Constructors
172 
173  //- Construct from components and dict
175  (
176  const word& modelType,
177  const fvMesh& mesh,
179  );
180 
181  //- No copy construct
182  liquidFilmModel(const liquidFilmModel&) = delete;
184  //- No copy assignment
185  void operator=(const liquidFilmModel&) = delete;
186 
187 
188  //- Destructor
189  virtual ~liquidFilmModel() = default;
190 
192  // Member Functions
193 
194  // Helpers
195 
196  //- Correct thermo
197  void correctThermoFields();
198 
200  // Access
201 
202  //- Access const reference mu
203  const areaScalarField& mu() const noexcept { return mu_; }
205  //- Access const reference rho
206  const areaScalarField& rho() const noexcept { return rho_; }
207 
208  //- Access const reference sigma
209  const areaScalarField& sigma() const noexcept { return sigma_; }
210 
211  //- Access const reference Tf
212  const areaScalarField& Tf() const noexcept { return Tf_; }
213 
214  //- Access const reference Cp
215  const areaScalarField& Cp() const noexcept { return Cp_; }
216 
217  //- Access to thermo
219  {
220  return thermo_;
221  }
222 
223  //- Access to reference temperature
224  scalar Tref() const noexcept { return Tref_; }
225 
226 
227  // Transfer fields - to the primary region (lagragian injection)
228 
229  //- Return the film mass available for transfer to cloud
230  virtual const volScalarField& cloudMassTrans() const;
231 
232  //- Return the parcel diameters originating from film to cloud
233  virtual const volScalarField& cloudDiameterTrans() const;
234 
235 
236  // Evolution
237 
238  //- Pre-evolve film
239  virtual void preEvolveRegion();
240 
241  //- Post-evolve film
242  virtual void postEvolveRegion();
243 
244 
245  // I-O
246 
247  //- Provide some feedback
248  virtual void info();
249 };
250 
251 
252 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
253 
254 } // End namespace areaSurfaceFilmModels
255 } // End namespace regionModels
256 } // End namespace Foam
257 
258 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
259 
260 
261 #endif
262 
263 // ************************************************************************* //
dictionary dict
volScalarField cloudDiameterTrans_
Parcel diameters originating from film to cloud.
Forwards and collection of common volume field types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
areaScalarField mu_
Dynamic viscosity [Pa.s].
autoPtr< filmTurbulenceModel > turbulence_
Turbulence model.
const areaScalarField & rho() const noexcept
Access const reference rho.
areaScalarField hRho_
Film rho*height [m.kg/m^3].
const areaScalarField & sigma() const noexcept
Access const reference sigma.
const areaScalarField & Tf() const noexcept
Access const reference Tf.
virtual const volScalarField & cloudDiameterTrans() const
Return the parcel diameters originating from film to cloud.
const areaScalarField & mu() const noexcept
Access const reference mu.
areaScalarField sigma_
Surface tension [m/s^2].
dynamicFvMesh & mesh
A class for handling words, derived from Foam::string.
Definition: word.H:63
TypeName("liquidFilmModel")
Runtime type information.
volScalarField cloudMassTrans_
Film mass for transfer to cloud.
areaScalarField Cp_
Film heat capacity [J/K].
const direction noexcept
Definition: Scalar.H:258
virtual const volScalarField & cloudMassTrans() const
Return the film mass available for transfer to cloud.
liquidFilmModel(const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from components and dict.
const areaScalarField & Cp() const noexcept
Access const reference Cp.
areaScalarField pnSp_
Normal pressure by particles.
scalarField availableMass_
Available mass for transfer via sub-models.
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
scalar Tref() const noexcept
Access to reference temperature.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition: HashPtrTable.H:48
void operator=(const liquidFilmModel &)=delete
No copy assignment.
const liquidMixtureProperties & thermo() const noexcept
Access to thermo.
Namespace for OpenFOAM.