wallShearStress.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) 2013-2022 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::functionObjects::wallShearStress
26 
27 Description
28  Calculates and write the shear-stress at wall patches as
29  the volVectorField field 'wallShearStress' or 'wallShearStress.<phase>'.
30 
31  \f[
32  Stress = R \dot n
33  \f]
34 
35  where
36  \vartable
37  R | stress tensor
38  n | patch normal vector (into the domain)
39  \endvartable
40 
41  The shear-stress symmetric tensor field is retrieved from the turbulence
42  model. All wall patches are included by default; to restrict the
43  calculation to certain patches, use the optional 'patches' entry.
44 
45  Example of function object specification:
46  \verbatim
47  wallShearStress1
48  {
49  type wallShearStress;
50  libs ("libfieldFunctionObjects.so");
51  ...
52  patches (".*Wall");
53  }
54  \endverbatim
55 
56 Usage
57  \table
58  Property | Description | Required | Default value
59  type | type name: wallShearStress | yes |
60  patches | list of patches to process | no | all wall patches
61  phase | phase name | no |
62  \endtable
63 
64  Note:
65  Writing field 'wallShearStress' is done by default, but it can be
66  overridden by defining an empty \c objects list. For details see
67  writeLocalObjects.
68 
69 See also
70  Foam::functionObject
71  Foam::functionObjects::fvMeshFunctionObject
72  Foam::functionObjects::logFiles
73  Foam::functionObjects::writeLocalObjects
74  Foam::functionObjects::timeControl
75 
76 SourceFiles
77  wallShearStress.C
78 
79 \*---------------------------------------------------------------------------*/
80 
81 #ifndef functionObjects_wallShearStress_H
82 #define functionObjects_wallShearStress_H
83 
84 #include "fvMeshFunctionObject.H"
85 #include "logFiles.H"
86 #include "writeLocalObjects.H"
87 #include "volFieldsFwd.H"
88 #include "HashSet.H"
89 
90 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
91 
92 namespace Foam
93 {
94 namespace functionObjects
95 {
96 
97 /*---------------------------------------------------------------------------*\
98  Class wallShearStress Declaration
99 \*---------------------------------------------------------------------------*/
100 
101 class wallShearStress
102 :
103  public fvMeshFunctionObject,
104  public logFiles,
105  public writeLocalObjects
106 {
107  // Private Data
108 
109  //- The name of the phase
110  word phaseName_;
111 
112  //- Optional list of patches to process
113  labelHashSet patchSet_;
114 
115 
116  // Private Member Functions
117 
118  //- File header information
119  virtual void writeFileHeader(const label i);
120 
121  //- Calculate the shear-stress
122  tmp<volVectorField> calcShearStress
123  (
124  const volSymmTensorField& tau
125  );
126 
127 
128 public:
129 
130  //- Runtime type information
131  TypeName("wallShearStress");
132 
133 
134  // Constructors
135 
136  //- Construct from Time and dictionary
138  (
139  const word& name,
140  const Time& runTime,
141  const dictionary&
142  );
143 
144  //- Disallow default bitwise copy construction
145  wallShearStress(const wallShearStress&) = delete;
146 
147 
148  //- Destructor
149  virtual ~wallShearStress();
150 
151 
152  // Member Functions
153 
154  //- Read the wallShearStress data
155  virtual bool read(const dictionary&);
156 
157  //- Return the list of fields required
158  virtual wordList fields() const
159  {
160  return wordList::null();
161  }
162 
163  //- Calculate the wall shear-stress
164  virtual bool execute();
165 
166  //- Write the wall shear-stress
167  virtual bool write();
168 
169 
170  // Member Operators
171 
172  //- Disallow default bitwise assignment
173  void operator=(const wallShearStress&) = delete;
174 };
175 
176 
177 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
178 
179 } // End namespace functionObjects
180 } // End namespace Foam
181 
182 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
183 
184 #endif
186 // ************************************************************************* //
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
Definition: volFieldsFwd.H:62
FvWallInfoData< WallInfo, label > label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const word & name() const
Return the name of this functionObject.
virtual bool read(const dictionary &)
Read the wallShearStress data.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
wallShearStress(const word &name, const Time &runTime, const dictionary &)
Construct from Time and dictionary.
static const List< T > & null()
Return a null List.
Definition: ListI.H:118
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:69
virtual bool execute()
Calculate the wall shear-stress.
HashSet< label, Hash< label > > labelHashSet
A HashSet with label keys.
Definition: HashSet.H:211
A class for handling words, derived from string.
Definition: word.H:59
Calculates and write the shear-stress at wall patches as the volVectorField field &#39;wallShearStress&#39; o...
void operator=(const wallShearStress &)=delete
Disallow default bitwise assignment.
virtual bool write()
Write the wall shear-stress.
virtual wordList fields() const
Return the list of fields required.
TypeName("wallShearStress")
Runtime type information.
Namespace for OpenFOAM.