filmSurfaceVelocityFvPatchVectorField.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) 2023 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::filmSurfaceVelocityFvPatchVectorField
26 
27 Description
28  Film surface velocity boundary condition
29 
30  Evaluates the surface velocity from the shear imposed by the neighbouring
31  fluid velocity using either a simple drag model based on the difference
32  between the fluid and film velocities multiplied by the coefficient \c Cs or
33  if \c Cs is not specified or set to 0 the fluid viscous shear stress.
34 
35  The simple model might be used in preference to the fluid viscous shear
36  stress model in order to provide some means to include the drag enhancing
37  effect of surface ripples, rivulets etc. in the film surface.
38 
39 Usage
40  \table
41  Property | Description | Required | Default value
42  Cs | Fluid-film drag coefficient | no | 0
43  \endtable
44 
45  Example of the boundary condition specification using the simple drag model:
46  \verbatim
47  <patchName>
48  {
49  type filmSurfaceVelocity;
50  Cs 0.005;
51  value $internalField;
52  }
53  \endverbatim
54 
55  Example of the boundary condition specification using the fluid stress:
56  \verbatim
57  <patchName>
58  {
59  type filmSurfaceVelocity;
60  value $internalField;
61  }
62  \endverbatim
63 
64 See also
65  Foam::mixedFvPatchField
66 
67 SourceFiles
68  filmSurfaceVelocityFvPatchVectorField.C
69 
70 \*---------------------------------------------------------------------------*/
71 
72 #ifndef filmSurfaceVelocityFvPatchVectorField_H
73 #define filmSurfaceVelocityFvPatchVectorField_H
74 
75 #include "mixedFvPatchFields.H"
76 
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78 
79 namespace Foam
80 {
81 /*---------------------------------------------------------------------------*\
82  Class filmSurfaceVelocityFvPatchVectorField Declaration
83 \*---------------------------------------------------------------------------*/
84 
85 class filmSurfaceVelocityFvPatchVectorField
86 :
87  public mixedFvPatchVectorField
88 {
89  // Private Data
90 
91  //- Fluid-film drag-coefficient
92  scalar Cs_;
93 
94 
95 public:
96 
97  //- Runtime type information
98  TypeName("filmSurfaceVelocity");
99 
100 
101  // Constructors
102 
103  //- Construct from patch, internal field and dictionary
105  (
106  const fvPatch&,
108  const dictionary&
109  );
110 
111  //- Construct by mapping given
112  // filmSurfaceVelocityFvPatchVectorField
113  // onto a new patch
115  (
117  const fvPatch&,
119  const fvPatchFieldMapper&
120  );
121 
122  //- Disallow copy without setting internal field reference
124  (
126  ) = delete;
127 
128  //- Copy constructor setting internal field reference
130  (
133  );
134 
135  //- Construct and return a clone setting internal field reference
137  (
139  ) const
140  {
142  (
144  (
145  *this,
146  iF
147  )
148  );
149  }
150 
151 
152  // Member Functions
153 
154  //- Update the coefficients associated with the patch field
155  virtual void updateCoeffs();
156 
157  //- Write
158  virtual void write(Ostream&) const;
159 };
160 
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 } // End namespace Foam
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #endif
169 
170 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
filmSurfaceVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
TypeName("filmSurfaceVelocity")
Runtime type information.
Foam::fvPatchFieldMapper.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.