curvatureSeparation.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::regionModels::surfaceFilmModels::curvatureSeparation
26 
27 Description
28  Curvature film separation model
29 
30  Assesses film curvature via the mesh geometry and calculates a force
31  balance of the form:
32 
33  F_sum = F_inertial + F_body + F_surface
34 
35  If F_sum < 0, the film separates. Similarly, if F_sum > 0 the film will
36  remain attached.
37 
38  Based on description given by
39  Owen and D. J. Ryley. The flow of thin liquid films around corners.
40  International Journal of Multiphase Flow, 11(1):51-62, 1985.
41 
42 
43 SourceFiles
44  curvatureSeparation.C
45 
46 \*---------------------------------------------------------------------------*/
47 
48 #ifndef curvatureSeparation_H
49 #define curvatureSeparation_H
50 
51 #include "ejectionModel.H"
52 #include "surfaceFields.H"
53 
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55 
56 namespace Foam
57 {
58 namespace regionModels
59 {
60 namespace surfaceFilmModels
61 {
62 
63 /*---------------------------------------------------------------------------*\
64  Class curvatureSeparation Declaration
65 \*---------------------------------------------------------------------------*/
66 
68 :
69  public ejectionModel
70 {
71 protected:
72 
73  // Protected data
74 
75  //- Gradient of surface normals
77 
78  //- Minimum gravity driven film thickness (non-dimensionalised delta/R1)
79  scalar deltaByR1Min_;
80 
81  //- Stable film thickness - drips only formed if thickness
82  // exceeds this threshold value
83  scalar deltaStable_;
84 
85  //- List of radii for patches - if patch not defined, radius
86  // calculated based on mesh geometry
88 
89  //- Magnitude of gravity vector
90  scalar magG_;
91 
92  //- Direction of gravity vector
93  vector gHat_;
94 
95 
96  // Protected Member Functions
97 
98  //- Calculate local (inverse) radius of curvature
100 
101  //- Calculate the cosine of the angle between gravity vector and
102  // cell out flow direction
104 
105 
106 public:
107 
108  //- Runtime type information
109  TypeName("curvatureSeparation");
110 
111 
112  // Constructors
113 
114  //- Construct from surface film model
116  (
118  const dictionary& dict
119  );
120 
121  //- Disallow default bitwise copy construction
122  curvatureSeparation(const curvatureSeparation&) = delete;
123 
124 
125  //- Destructor
126  virtual ~curvatureSeparation();
127 
128 
129  // Member Functions
130 
131  // Evolution
132 
133  //- Correct
134  virtual void correct
135  (
136  scalarField& availableMass,
137  scalarField& massToEject,
138  scalarField& diameterToEject
139  );
140 
141 
142  // Member Operators
143 
144  //- Disallow default bitwise assignment
145  void operator=(const curvatureSeparation&) = delete;
146 };
147 
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 } // End namespace surfaceFilmModels
152 } // End namespace regionModels
153 } // End namespace Foam
154 
155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 
157 #endif
158 
159 // ************************************************************************* //
Foam::surfaceFields.
List< Tuple2< label, scalar > > definedPatchRadii_
List of radii for patches - if patch not defined, radius.
tmp< scalarField > calcCosAngle(const surfaceScalarField &phi) const
Calculate the cosine of the angle between gravity vector and.
U
Definition: pEqn.H:72
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
scalar deltaStable_
Stable film thickness - drips only formed if thickness.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Base class for film ejection models, handling mass transfer from the film.
Definition: ejectionModel.H:56
tmp< volScalarField > calcInvR1(const volVectorField &U) const
Calculate local (inverse) radius of curvature.
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:110
const surfaceFilmRegionModel & film() const
Return const access to the film surface film model.
phi
Definition: correctPhi.H:3
void operator=(const curvatureSeparation &)=delete
Disallow default bitwise assignment.
A class for managing temporary objects.
Definition: PtrList.H:53
volTensorField gradNHat_
Gradient of surface normals.
curvatureSeparation(surfaceFilmRegionModel &film, const dictionary &dict)
Construct from surface film model.
scalar deltaByR1Min_
Minimum gravity driven film thickness (non-dimensionalised delta/R1)
TypeName("curvatureSeparation")
Runtime type information.
Namespace for OpenFOAM.