curvatureSeparation.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 | Copyright (C) 2011-2017 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::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 private:
72 
73  // Private member functions
74 
75  //- Disallow default bitwise copy construct
77 
78  //- Disallow default bitwise assignment
79  void operator=(const curvatureSeparation&);
80 
81 
82 protected:
83 
84  // Protected data
85 
86  //- Gradient of surface normals
88 
89  //- Minimum gravity driven film thickness (non-dimensionalised delta/R1)
90  scalar deltaByR1Min_;
91 
92  //- List of radii for patches - if patch not defined, radius
93  // calculated based on mesh geometry
95 
96  //- Magnitude of gravity vector
97  scalar magG_;
98 
99  //- Direction of gravity vector
100  vector gHat_;
101 
102 
103  // Protected Member Functions
104 
105  //- Calculate local (inverse) radius of curvature
107 
108  //- Calculate the cosine of the angle between gravity vector and
109  // cell out flow direction
111 
112 
113 public:
114 
115  //- Runtime type information
116  TypeName("curvatureSeparation");
117 
118 
119  // Constructors
120 
121  //- Construct from surface film model
123  (
125  const dictionary& dict
126  );
127 
128 
129  //- Destructor
130  virtual ~curvatureSeparation();
131 
132 
133  // Member Functions
134 
135  // Evolution
136 
137  //- Correct
138  virtual void correct
139  (
140  scalarField& availableMass,
141  scalarField& massToInject,
142  scalarField& diameterToInject
143  );
144 };
145 
146 
147 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 
149 } // End namespace surfaceFilmModels
150 } // End namespace regionModels
151 } // End namespace Foam
152 
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 
155 #endif
156 
157 // ************************************************************************* //
Foam::surfaceFields.
List< Tuple2< label, scalar > > definedPatchRadii_
List of radii for patches - if patch not defined, radius.
const surfaceFilmModel & film() const
Return const access to the film surface film model.
surfaceScalarField & phi
U
Definition: pEqn.H:83
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:137
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:60
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
Base class for film injection models, handling mass transfer from the film.
A class for managing temporary objects.
Definition: PtrList.H:53
volTensorField gradNHat_
Gradient of surface normals.
scalar deltaByR1Min_
Minimum gravity driven film thickness (non-dimensionalised delta/R1)
TypeName("curvatureSeparation")
Runtime type information.
Namespace for OpenFOAM.