turbulentKineticEnergyFvPatchScalarField.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-2026 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::turbulentKineticEnergyFvPatchScalarField
26 
27 Description
28  This boundary condition provides a turbulent kinetic energy condition,
29  based on user-supplied turbulence intensity, defined as a fraction of the
30  mean velocity:
31 
32  \f[
33  k_p = 1.5 (I |U|)^2
34  \f]
35 
36  where
37 
38  \vartable
39  k_p | kinetic energy at the patch
40  I | turbulence intensity
41  U | velocity field
42  \endvartable
43 
44  In the event of reverse flow, a zero-gradient condition is applied.
45 
46 Usage
47  \table
48  Property | Description | Required | Default value
49  intensity | fraction of mean field [0-1] | yes |
50  U | velocity field name | no | U
51  phi | flux field name | no | phi
52  \endtable
53 
54  Example of the boundary condition specification:
55  \verbatim
56  <patchName>
57  {
58  type turbulentKineticEnergy;
59  intensity 0.05; // 5% turbulence
60  value uniform 1; // placeholder
61  }
62  \endverbatim
63 
64 See also
65  Foam::inletOutletFvPatchField
66 
67 SourceFiles
68  turbulentKineticEnergyFvPatchScalarField.C
69 
70 \*---------------------------------------------------------------------------*/
71 
72 #ifndef turbulentKineticEnergyFvPatchScalarField_H
73 #define turbulentKineticEnergyFvPatchScalarField_H
74 
76 
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78 
79 namespace Foam
80 {
81 
82 /*---------------------------------------------------------------------------*\
83  Class turbulentKineticEnergyFvPatchScalarField Declaration
84 \*---------------------------------------------------------------------------*/
85 
86 class turbulentKineticEnergyFvPatchScalarField
87 :
88  public inletOutletFvPatchScalarField
89 {
90  // Private Data
91 
92  //- Turbulent intensity as fraction of mean velocity
93  scalar intensity_;
94 
95  //- Name of the velocity field
96  word UName_;
97 
98 
99 public:
100 
101  //- Runtime type information
102  TypeName("turbulentKineticEnergy");
103 
104 
105  // Constructors
106 
107  //- Construct from patch, internal field and dictionary
109  (
110  const fvPatch&,
111  const DimensionedField<scalar, fvMesh>&,
112  const dictionary&
113  );
114 
115  //- Construct by mapping given
116  // turbulentKineticEnergyFvPatchScalarField
117  // onto a new patch
119  (
121  const fvPatch&,
123  const fieldMapper&
124  );
125 
126  //- Disallow copy without setting internal field reference
128  (
130  ) = delete;
131 
132  //- Copy constructor setting internal field reference
134  (
137  );
138 
139  //- Construct and return a clone setting internal field reference
141  (
143  ) const
144  {
146  (
148  (
149  *this,
150  iF
151  )
152  );
153  }
154 
155 
156  // Member Functions
157 
158  //- Update the coefficients associated with the patch field
159  virtual void updateCoeffs();
160 
161  //- Write
162  virtual void write(Ostream&) const;
163 
164 
165  // Member Operators
166 
167  //- Inherit assignment
168  using inletOutletFvPatchScalarField::operator=;
169 };
170 
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 } // End namespace Foam
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 #endif
179 
180 // ************************************************************************* //
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
Abstract base class for field mapping.
Definition: fieldMapper.H:48
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:58
A class for managing temporary objects.
Definition: tmp.H:55
This boundary condition provides a turbulent kinetic energy condition, based on user-supplied turbule...
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, fvMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("turbulentKineticEnergy")
Runtime type information.
turbulentKineticEnergyFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, fvMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
Namespace for OpenFOAM.