All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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-2019 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 "injectionModel.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 injectionModel
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  //- List of radii for patches - if patch not defined, radius
82  // calculated based on mesh geometry
84 
85  //- Magnitude of gravity vector
86  scalar magG_;
87 
88  //- Direction of gravity vector
89  vector gHat_;
90 
91 
92  // Protected Member Functions
93 
94  //- Calculate local (inverse) radius of curvature
96 
97  //- Calculate the cosine of the angle between gravity vector and
98  // cell out flow direction
100 
101 
102 public:
103 
104  //- Runtime type information
105  TypeName("curvatureSeparation");
106 
107 
108  // Constructors
109 
110  //- Construct from surface film model
112  (
114  const dictionary& dict
115  );
116 
117  //- Disallow default bitwise copy construction
118  curvatureSeparation(const curvatureSeparation&) = delete;
119 
120 
121  //- Destructor
122  virtual ~curvatureSeparation();
123 
124 
125  // Member Functions
126 
127  // Evolution
128 
129  //- Correct
130  virtual void correct
131  (
132  scalarField& availableMass,
133  scalarField& massToInject,
134  scalarField& diameterToInject
135  );
136 
137 
138  // Member Operators
139 
140  //- Disallow default bitwise assignment
141  void operator=(const curvatureSeparation&) = delete;
142 };
143 
144 
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 
147 } // End namespace surfaceFilmModels
148 } // End namespace regionModels
149 } // End namespace Foam
150 
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 
153 #endif
154 
155 // ************************************************************************* //
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.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
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
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
phi
Definition: pEqn.H:104
const surfaceFilmRegionModel & film() const
Return const access to the film surface film model.
void operator=(const curvatureSeparation &)=delete
Disallow default bitwise assignment.
Base class for film injection models, handling mass transfer from the film.
U
Definition: pEqn.H:72
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.