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-2018 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'.
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  \endtable
62 
63 Note
64  Writing field 'wallShearStress' is done by default, but it can be overridden
65  by defining an empty \c objects list. For details see writeLocalObjects.
66 
67 See also
68  Foam::functionObject
69  Foam::functionObjects::fvMeshFunctionObject
70  Foam::functionObjects::logFiles
71  Foam::functionObjects::writeLocalObjects
72  Foam::functionObjects::timeControl
73 
74 SourceFiles
75  wallShearStress.C
76 
77 \*---------------------------------------------------------------------------*/
78 
79 #ifndef functionObjects_wallShearStress_H
80 #define functionObjects_wallShearStress_H
81 
82 #include "fvMeshFunctionObject.H"
83 #include "logFiles.H"
84 #include "writeLocalObjects.H"
85 #include "volFieldsFwd.H"
86 #include "HashSet.H"
87 
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
89 
90 namespace Foam
91 {
92 namespace functionObjects
93 {
94 
95 /*---------------------------------------------------------------------------*\
96  Class wallShearStress Declaration
97 \*---------------------------------------------------------------------------*/
98 
99 class wallShearStress
100 :
101  public fvMeshFunctionObject,
102  public logFiles,
103  public writeLocalObjects
104 {
105 
106 protected:
107 
108  // Protected data
109 
110  //- Optional list of patches to process
112 
113 
114  // Protected Member Functions
115 
116  //- File header information
117  virtual void writeFileHeader(const label i);
118 
119  //- Calculate the shear-stress
120  tmp<volVectorField> calcShearStress
121  (
122  const volSymmTensorField& Reff
123  );
124 
125 
126 private:
127 
128  // Private member functions
129 
130  //- Disallow default bitwise copy construct
132 
133  //- Disallow default bitwise assignment
134  void operator=(const wallShearStress&);
135 
136 
137 public:
138 
139  //- Runtime type information
140  TypeName("wallShearStress");
141 
142 
143  // Constructors
144 
145  //- Construct from Time and dictionary
147  (
148  const word& name,
149  const Time& runTime,
150  const dictionary&
151  );
152 
153 
154  //- Destructor
155  virtual ~wallShearStress();
156 
157 
158  // Member Functions
159 
160  //- Read the wallShearStress data
161  virtual bool read(const dictionary&);
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 
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 
173 } // End namespace functionObjects
174 } // End namespace Foam
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 #endif
179 
180 // ************************************************************************* //
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
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:137
engineTime & runTime
labelHashSet patchSet_
Optional list of patches to process.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:68
virtual bool execute()
Calculate the wall shear-stress.
HashSet< label, Hash< label > > labelHashSet
A HashSet with label keys.
Definition: HashSet.H:210
virtual void writeFileHeader(const label i)
File header information.
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;...
virtual bool write()
Write the wall shear-stress.
tmp< volVectorField > calcShearStress(const volSymmTensorField &Reff)
Calculate the shear-stress.
TypeName("wallShearStress")
Runtime type information.
Namespace for OpenFOAM.