rotatingWallVelocityFvPatchVectorField.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-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::rotatingWallVelocityFvPatchVectorField
26 
27 Description
28  This boundary condition provides a rotational velocity condition.
29 
30 Usage
31  \table
32  Property | Description | Required | Default value
33  origin | origin of rotation in Cartesian co-ordinates | yes|
34  axis | axis of rotation | yes |
35  omega | angular velocty of the frame [rad/s] | yes |
36  \endtable
37 
38  Example of the boundary condition specification:
39  \verbatim
40  <patchName>
41  {
42  type rotatingWallVelocity;
43  origin (0 0 0);
44  axis (0 0 1);
45  omega 100;
46  }
47  \endverbatim
48 
49  The \c omega entry is a Function1 of time, see Foam::Function1Types.
50 
51 See also
52  Foam::fixedValueFvPatchField
53  Foam::Function1Types
54 
55 SourceFiles
56  rotatingWallVelocityFvPatchVectorField.C
57 
58 \*---------------------------------------------------------------------------*/
59 
60 #ifndef rotatingWallVelocityFvPatchVectorField_H
61 #define rotatingWallVelocityFvPatchVectorField_H
62 
64 #include "Function1.H"
65 
66 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
67 
68 namespace Foam
69 {
70 
71 /*---------------------------------------------------------------------------*\
72  Class rotatingWallVelocityFvPatchVectorField Declaration
73 \*---------------------------------------------------------------------------*/
74 
75 class rotatingWallVelocityFvPatchVectorField
76 :
77  public fixedValueFvPatchVectorField
78 {
79  // Private data
80 
81  //- Origin of the rotation
82  vector origin_;
83 
84  //- Axis of the rotation
85  vector axis_;
86 
87  //- Rotational speed
88  autoPtr<Function1<scalar>> omega_;
89 
90 
91 public:
92 
93  //- Runtime type information
94  TypeName("rotatingWallVelocity");
95 
96 
97  // Constructors
98 
99  //- Construct from patch and internal field
101  (
102  const fvPatch&,
104  );
105 
106  //- Construct from patch, internal field and dictionary
108  (
109  const fvPatch&,
111  const dictionary&
112  );
113 
114  //- Construct by mapping given rotatingWallVelocityFvPatchVectorField
115  // onto a new patch
117  (
119  const fvPatch&,
121  const fvPatchFieldMapper&
122  );
123 
124  //- Construct as copy
126  (
128  );
129 
130  //- Construct and return a clone
131  virtual tmp<fvPatchVectorField> clone() const
132  {
134  (
136  );
137  }
138 
139  //- Construct as copy setting internal field reference
141  (
144  );
145 
146  //- Construct and return a clone setting internal field reference
148  (
150  ) const
151  {
153  (
155  );
156  }
157 
158 
159 
160  // Member functions
161 
162  // Access functions
163 
164  //- Return the origin of the rotation
165  const vector& origin() const
166  {
167  return origin_;
168  }
169 
170  //- Return the axis of the rotation
171  const vector& axis() const
172  {
173  return axis_;
174  }
175 
176  //- Return non-const access to the origin of the rotation
177  vector& origin()
178  {
179  return origin_;
180  }
181 
182  //- Return non-const access to the axis of the rotation
183  vector& axis()
184  {
185  return axis_;
186  }
187 
188 
189  //- Update the coefficients associated with the patch field
190  virtual void updateCoeffs();
191 
192  //- Write
193  virtual void write(Ostream&) const;
194 };
195 
197 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
198 
199 } // End namespace Foam
200 
201 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
203 #endif
204 
205 // ************************************************************************* //
rotatingWallVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
virtual tmp< fvPatchVectorField > clone() const
Construct and return a clone.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
const vector & origin() const
Return the origin of the rotation.
Vector< scalar > vector
A scalar version of the templated Vector.
Definition: vector.H:49
TypeName("rotatingWallVelocity")
Runtime type information.
This boundary condition provides a rotational velocity condition.
Foam::fvPatchFieldMapper.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
const vector & axis() const
Return the axis of the rotation.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.