rotatingWallVelocityFvPatchVectorField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2011-2016 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 Group
28  grpWallBoundaryConditions grpGenericBoundaryConditions
29 
30 Description
31  This boundary condition provides a rotational velocity condition.
32 
33 Usage
34  \table
35  Property | Description | Required | Default value
36  origin | origin of rotation in Cartesian co-ordinates | yes|
37  axis | axis of rotation | yes |
38  omega | angular velocty of the frame [rad/s] | yes |
39  \endtable
40 
41  Example of the boundary condition specification:
42  \verbatim
43  <patchName>
44  {
45  type rotatingWallVelocity;
46  origin (0 0 0);
47  axis (0 0 1);
48  omega 100;
49  }
50  \endverbatim
51 
52  The \c omega entry is a Function1 of time, see Foam::Function1Types.
53 
54 See also
55  Foam::fixedValueFvPatchField
56  Foam::Function1Types
57 
58 SourceFiles
59  rotatingWallVelocityFvPatchVectorField.C
60 
61 \*---------------------------------------------------------------------------*/
62 
63 #ifndef rotatingWallVelocityFvPatchVectorField_H
64 #define rotatingWallVelocityFvPatchVectorField_H
65 
67 #include "Function1.H"
68 
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 
71 namespace Foam
72 {
73 
74 /*---------------------------------------------------------------------------*\
75  Class rotatingWallVelocityFvPatchVectorField Declaration
76 \*---------------------------------------------------------------------------*/
77 
78 class rotatingWallVelocityFvPatchVectorField
79 :
80  public fixedValueFvPatchVectorField
81 {
82  // Private data
83 
84  //- Origin of the rotation
85  vector origin_;
86 
87  //- Axis of the rotation
88  vector axis_;
89 
90  //- Rotational speed
91  autoPtr<Function1<scalar>> omega_;
92 
93 
94 public:
95 
96  //- Runtime type information
97  TypeName("rotatingWallVelocity");
98 
99 
100  // Constructors
101 
102  //- Construct from patch and internal field
104  (
105  const fvPatch&,
107  );
108 
109  //- Construct from patch, internal field and dictionary
111  (
112  const fvPatch&,
114  const dictionary&
115  );
116 
117  //- Construct by mapping given rotatingWallVelocityFvPatchVectorField
118  // onto a new patch
120  (
122  const fvPatch&,
124  const fvPatchFieldMapper&
125  );
126 
127  //- Construct as copy
129  (
131  );
132 
133  //- Construct and return a clone
134  virtual tmp<fvPatchVectorField> clone() const
135  {
137  (
139  );
140  }
141 
142  //- Construct as copy setting internal field reference
144  (
147  );
148 
149  //- Construct and return a clone setting internal field reference
151  (
153  ) const
154  {
156  (
158  );
159  }
160 
161 
162 
163  // Member functions
164 
165  // Access functions
166 
167  //- Return the origin of the rotation
168  const vector& origin() const
169  {
170  return origin_;
171  }
172 
173  //- Return the axis of the rotation
174  const vector& axis() const
175  {
176  return axis_;
177  }
178 
179  //- Return non-const access to the origin of the rotation
180  vector& origin()
181  {
182  return origin_;
183  }
184 
185  //- Return non-const access to the axis of the rotation
186  vector& axis()
187  {
188  return axis_;
189  }
190 
191 
192  //- Update the coefficients associated with the patch field
193  virtual void updateCoeffs();
194 
195  //- Write
196  virtual void write(Ostream&) const;
197 };
198 
200 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
201 
202 } // End namespace Foam
203 
204 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206 #endif
207 
208 // ************************************************************************* //
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.