nutUSpaldingWallFunctionFvPatchScalarField.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-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::nutUSpaldingWallFunctionFvPatchScalarField
26 
27 Description
28  This boundary condition provides a turbulent kinematic viscosity condition
29  when using wall functions for rough walls, based on velocity, using
30  Spalding's law to give a continuous nut profile to the wall (y+ = 0)
31 
32  \f[
33  y^+ = u^+ + \frac{1}{E} \left[exp(\kappa u^+) - 1 - \kappa u^+\,
34  - 0.5 (\kappa u^+)^2 - \frac{1}{6} (\kappa u^+)^3\right]
35  \f]
36 
37  where
38  \vartable
39  y^+ | non-dimensional position
40  u^+ | non-dimensional velocity
41  \kappa | Von Karman constant
42  \endvartable
43 
44  Reference:
45  \verbatim
46  Spalding, D. B., (1961).
47  A Single Formula for the "Law of the Wall".
48  Journal of Applied Mechanics, 28(3), 455-458
49  \endverbatim
50 
51 Usage
52  Example of the boundary condition specification:
53  \verbatim
54  <patchName>
55  {
56  type nutUSpaldingWallFunction;
57  value uniform 0;
58  }
59  \endverbatim
60 
61 See also
62  Foam::nutWallFunctionFvPatchScalarField
63 
64 SourceFiles
65  nutUSpaldingWallFunctionFvPatchScalarField.C
66 
67 \*---------------------------------------------------------------------------*/
68 
69 #ifndef nutUSpaldingWallFunctionFvPatchScalarField_H
70 #define nutUSpaldingWallFunctionFvPatchScalarField_H
71 
73 
74 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
75 
76 namespace Foam
77 {
78 
79 /*---------------------------------------------------------------------------*\
80  Class nutUSpaldingWallFunctionFvPatchScalarField Declaration
81 \*---------------------------------------------------------------------------*/
82 
83 class nutUSpaldingWallFunctionFvPatchScalarField
84 :
85  public nutWallFunctionFvPatchScalarField
86 {
87 protected:
88 
89  // Protected Member Functions
90 
91  //- Calculate the turbulence viscosity
92  virtual tmp<scalarField> nut() const;
93 
94  //- Calculate the friction velocity
95  virtual tmp<scalarField> calcUTau(const scalarField& magGradU) const;
96 
97 
98 public:
99 
100  //- Runtime type information
101  TypeName("nutUSpaldingWallFunction");
102 
103 
104  // Constructors
105 
106  //- Construct from patch, internal field and dictionary
108  (
109  const fvPatch&,
111  const dictionary&
112  );
113 
114  //- Construct by mapping given
115  // nutUSpaldingWallFunctionFvPatchScalarField
116  // onto a new patch
118  (
120  const fvPatch&,
122  const fieldMapper&
123  );
124 
125  //- Disallow copy without setting internal field reference
127  (
129  ) = delete;
130 
131  //- Copy constructor setting internal field reference
133  (
136  );
137 
138  //- Construct and return a clone setting internal field reference
140  (
142  ) const
143  {
145  (
147  );
148  }
149 
150 
151  // Member Functions
152 
153  // Evaluation functions
154 
155  //- Calculate and return the yPlus at the boundary
156  virtual tmp<scalarField> yPlus() const;
157 
158 
159  // I-O
160 
161  //- Write
162  virtual void write(Ostream& os) const;
163 };
164 
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 } // End namespace Foam
169 
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
171 
172 #endif
173 
174 // ************************************************************************* //
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:162
Abstract base class for field mapping.
Definition: fieldMapper.H:48
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
This boundary condition provides a turbulent kinematic viscosity condition when using wall functions ...
virtual tmp< scalarField > yPlus() const
Calculate and return the yPlus at the boundary.
virtual tmp< scalarField > nut() const
Calculate the turbulence viscosity.
virtual tmp< scalarField > calcUTau(const scalarField &magGradU) const
Calculate the friction velocity.
nutUSpaldingWallFunctionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
TypeName("nutUSpaldingWallFunction")
Runtime type information.
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.