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 | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2017 OpenFOAM Foundation
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::regionModels::surfaceFilmModels::curvatureSeparation
28 
29 Description
30  Curvature film separation model
31 
32  Assesses film curvature via the mesh geometry and calculates a force
33  balance of the form:
34 
35  F_sum = F_inertial + F_body + F_surface
36 
37  If F_sum < 0, the film separates. Similarly, if F_sum > 0 the film will
38  remain attached.
39 
40  Based on description given by
41  Owen and D. J. Ryley. The flow of thin liquid films around corners.
42  International Journal of Multiphase Flow, 11(1):51-62, 1985.
43 
44 
45 SourceFiles
46  curvatureSeparation.C
47 
48 \*---------------------------------------------------------------------------*/
49 
50 #ifndef curvatureSeparation_H
51 #define curvatureSeparation_H
52 
53 #include "injectionModel.H"
54 #include "surfaceFields.H"
55 
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 
58 namespace Foam
59 {
60 namespace regionModels
61 {
62 namespace surfaceFilmModels
63 {
64 
65 /*---------------------------------------------------------------------------*\
66  Class curvatureSeparation Declaration
67 \*---------------------------------------------------------------------------*/
68 
70 :
71  public injectionModel
72 {
73 private:
74 
75  // Private member functions
76 
77  //- No copy construct
79 
80  //- No copy assignment
81  void operator=(const curvatureSeparation&) = delete;
82 
83 
84 protected:
85 
86  // Protected data
87 
88  //- Gradient of surface normals
90 
91  //- Minimum gravity driven film thickness (non-dimensionalised delta/R1)
92  scalar deltaByR1Min_;
93 
94  //- List of radii for patches - if patch not defined, radius
95  // calculated based on mesh geometry
97 
98  //- Magnitude of gravity vector
99  scalar magG_;
100 
101  //- Direction of gravity vector
102  vector gHat_;
103 
104 
105  // Protected Member Functions
106 
107  //- Calculate local (inverse) radius of curvature
109 
110  //- Calculate the cosine of the angle between gravity vector and
111  // cell out flow direction
113 
114 
115 public:
116 
117  //- Runtime type information
118  TypeName("curvatureSeparation");
119 
120 
121  // Constructors
122 
123  //- Construct from surface film model
125  (
127  const dictionary& dict
128  );
129 
130 
131  //- Destructor
132  virtual ~curvatureSeparation();
133 
134 
135  // Member Functions
136 
137  // Evolution
138 
139  //- Correct
140  virtual void correct
141  (
142  scalarField& availableMass,
143  scalarField& massToInject,
144  scalarField& diameterToInject
145  );
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::regionModels::surfaceFilmModels::curvatureSeparation::definedPatchRadii_
List< Tuple2< label, scalar > > definedPatchRadii_
List of radii for patches - if patch not defined, radius.
Definition: curvatureSeparation.H:95
Foam::regionModels::surfaceFilmModels::curvatureSeparation::deltaByR1Min_
scalar deltaByR1Min_
Minimum gravity driven film thickness (non-dimensionalised delta/R1)
Definition: curvatureSeparation.H:91
Foam::regionModels::surfaceFilmModels::curvatureSeparation::~curvatureSeparation
virtual ~curvatureSeparation()
Destructor.
Definition: curvatureSeparation.C:276
Foam::regionModels::surfaceFilmModels::injectionModel::correct
void correct()
Correct.
Definition: injectionModel.C:81
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::regionModels::surfaceFilmModels::curvatureSeparation::calcInvR1
tmp< volScalarField > calcInvR1(const volVectorField &U) const
Calculate local (inverse) radius of curvature.
Definition: curvatureSeparation.C:63
Foam::regionModels::surfaceFilmModels::filmSubModelBase::film
const surfaceFilmRegionModel & film() const
Return const access to the film surface film model.
Definition: filmSubModelBaseI.H:39
surfaceFields.H
Foam::surfaceFields.
Foam::regionModels::surfaceFilmModels::curvatureSeparation::TypeName
TypeName("curvatureSeparation")
Runtime type information.
Foam::Field< scalar >
Foam::regionModels::surfaceFilmModels::surfaceFilmRegionModel
Base class for surface film models.
Definition: surfaceFilmRegionModel.H:55
Foam::subModelBase::dict
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:113
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::regionModels::surfaceFilmModels::curvatureSeparation::magG_
scalar magG_
Magnitude of gravity vector.
Definition: curvatureSeparation.H:98
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::regionModels::surfaceFilmModels::injectionModel
Base class for film injection models, handling mass transfer from the film.
Definition: injectionModel.H:58
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::regionModels::surfaceFilmModels::curvatureSeparation
Curvature film separation model.
Definition: curvatureSeparation.H:68
U
U
Definition: pEqn.H:72
Foam::Vector< scalar >
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: BitOps.H:63
Foam::regionModels::surfaceFilmModels::curvatureSeparation::gradNHat_
volTensorField gradNHat_
Gradient of surface normals.
Definition: curvatureSeparation.H:88
Foam::GeometricField< tensor, fvPatchField, volMesh >
Foam::regionModels::surfaceFilmModels::curvatureSeparation::gHat_
vector gHat_
Direction of gravity vector.
Definition: curvatureSeparation.H:101
Foam::regionModels::surfaceFilmModels::curvatureSeparation::calcCosAngle
tmp< scalarField > calcCosAngle(const surfaceScalarField &phi) const
Calculate the cosine of the angle between gravity vector and.
Definition: curvatureSeparation.C:117