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 Copyright (C) 2021 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::regionModels::areaSurfaceFilmModels::curvatureSeparation
29
30Description
31 Curvature film separation model
32
33 Assesses film curvature via the mesh geometry and calculates a force
34 balance of the form:
35
36 F_sum = F_inertial + F_body + F_surface
37
38 If F_sum < 0, the film separates. Similarly, if F_sum > 0 the film will
39 remain attached.
40
41 Based on description given by
42 Owen and D. J. Ryley. The flow of thin liquid films around corners.
43 International Journal of Multiphase Flow, 11(1):51-62, 1985.
44
45SourceFiles
46 curvatureSeparation.C
47
48\*---------------------------------------------------------------------------*/
49
50#ifndef curvatureSeparation_H
51#define curvatureSeparation_H
52
53#include "injectionModel.H"
54#include "faCFD.H"
55
56// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57
58namespace Foam
59{
60namespace regionModels
61{
62namespace areaSurfaceFilmModels
63{
64
65/*---------------------------------------------------------------------------*\
66 Class curvatureSeparation Declaration
67\*---------------------------------------------------------------------------*/
70:
71 public injectionModel
72{
73 // Private Member Functions
74
75 //- No copy construct
77
78 //- No copy assignment
79 void operator=(const curvatureSeparation&) = delete;
80
81
82protected:
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
94 scalar definedPatchRadii_;
95
96 //- Magnitude of gravity vector
97 scalar magG_;
98
99 //- Direction of gravity vector
101
102 //- Threshold force for separation
103 scalar fThreshold_;
104
105 //- Minimum inv R1 for separation
106 scalar minInvR1_;
107
108
109 // Protected Member Functions
110
111 //- Calculate local (inverse) radius of curvature
113 (
114 const areaVectorField& U,
116 ) const;
117
118 //- Calculate the cosine of the angle between gravity vector and
119 //- cell out flow direction
121
122
123public:
124
125 //- Runtime type information
126 TypeName("curvatureSeparation");
127
128
129 // Constructors
130
131 //- Construct from surface film model
133 (
135 const dictionary& dict
136 );
137
138
139 //- Destructor
140 virtual ~curvatureSeparation() = default;
141
142
143 // Member Functions
144
145 // Evolution
146
147 //- Correct
148 virtual void correct
149 (
150 scalarField& availableMass,
151 scalarField& massToInject,
152 scalarField& diameterToInject
153 );
154};
155
156
157// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
158
159} // End namespace areaSurfaceFilmModels
160} // End namespace regionModels
161} // End namespace Foam
162
163// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164
165#endif
166
167// ************************************************************************* //
surfaceScalarField & phi
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
areaTensorField gradNHat_
Gradient of surface normals.
scalar deltaByR1Min_
Minimum gravity driven film thickness (non-dimensionalised delta/R1)
tmp< areaScalarField > calcInvR1(const areaVectorField &U, const scalarField &calcCosAngle) const
Calculate local (inverse) radius of curvature.
tmp< scalarField > calcCosAngle(const edgeScalarField &phi) const
TypeName("curvatureSeparation")
Runtime type information.
const liquidFilmBase & film() const
Return const access to the film surface film model.
Base class for film injection models, handling mass transfer from the film.
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:113
A class for managing temporary objects.
Definition: tmp.H:65
U
Definition: pEqn.H:72
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73