Fix tutorials: coupled/conjugateHeatFoam/conjugateCavity: fix Allrun file
[OpenFOAM-1.6-ext.git] / src / finiteVolume / fields / fvPatchFields / derived / movingRotatingWallVelocity / movingRotatingWallVelocityFvPatchVectorField.H
blob4e225371905c49ca347db3dd7b0b8d2c6c506baf
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     movingRotatingWallVelocityFvPatchVectorField
28 Description
29     movingRotatingWallVelocityFvPatchVectorField
31 Author
32     Hrvoje Jasak, Wikki Ltd.  All rights reserved.
34 SourceFiles
35     movingRotatingWallVelocityFvPatchVectorField.C
37 \*---------------------------------------------------------------------------*/
39 #ifndef movingRotatingWallVelocityFvPatchVectorField_H
40 #define movingRotatingWallVelocityFvPatchVectorField_H
42 #include "fvPatchFields.H"
43 #include "fixedValueFvPatchFields.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 /*---------------------------------------------------------------------------*\
51          Class movingRotatingWallVelocityFvPatchVectorField Declaration
52 \*---------------------------------------------------------------------------*/
54 class movingRotatingWallVelocityFvPatchVectorField
56     public fixedValueFvPatchVectorField
58     // Private data
60         //- Centre of rotation
61         point centre_;
63         //- Rotation axis
64         vector axis_;
66         //- Rotational speed in rpm
67         scalar rpm_;
70 public:
72     //- Runtime type information
73     TypeName("movingRotatingWallVelocity");
76     // Constructors
78         //- Construct from patch and internal field
79         movingRotatingWallVelocityFvPatchVectorField
80         (
81             const fvPatch&,
82             const DimensionedField<vector, volMesh>&
83         );
85         //- Construct from components
86         movingRotatingWallVelocityFvPatchVectorField
87         (
88             const fvPatch&,
89             const DimensionedField<vector, volMesh>&,
90             const point& centre,
91             const vector& axis,
92             const scalar rpm
93         );
95         //- Construct from patch, internal field and dictionary
96         movingRotatingWallVelocityFvPatchVectorField
97         (
98             const fvPatch&,
99             const DimensionedField<vector, volMesh>&,
100             const dictionary&
101         );
103         //- Construct by mapping given
104         //  movingRotatingWallVelocityFvPatchVectorField
105         //  onto a new patch
106         movingRotatingWallVelocityFvPatchVectorField
107         (
108             const movingRotatingWallVelocityFvPatchVectorField&,
109             const fvPatch&,
110             const DimensionedField<vector, volMesh>&,
111             const fvPatchFieldMapper&
112         );
114         //- Construct as copy
115         movingRotatingWallVelocityFvPatchVectorField
116         (
117             const movingRotatingWallVelocityFvPatchVectorField&
118         );
120         //- Construct and return a clone
121         virtual tmp<fvPatchVectorField> clone() const
122         {
123             return tmp<fvPatchVectorField>
124             (
125                 new movingRotatingWallVelocityFvPatchVectorField(*this)
126             );
127         }
129         //- Construct as copy setting internal field reference
130         movingRotatingWallVelocityFvPatchVectorField
131         (
132             const movingRotatingWallVelocityFvPatchVectorField&,
133             const DimensionedField<vector, volMesh>&
134         );
136         //- Construct and return a clone setting internal field reference
137         virtual tmp<fvPatchVectorField> clone
138         (
139             const DimensionedField<vector, volMesh>& iF
140         ) const
141         {
142             return tmp<fvPatchVectorField>
143             (
144                 new movingRotatingWallVelocityFvPatchVectorField(*this, iF)
145             );
146         }
150     // Member functions
152         // Access
154             //- Return centre of rotation
155             const point& centre() const
156             {
157                 return centre_;
158             }
160             //- Return axis of rotation
161             const vector& axis() const
162             {
163                 return axis_;
164             }
166             //- Return rpm
167             scalar rpm() const
168             {
169                 return rpm_;
170             }
173         // Edit
175             //- Return access to centre of rotation
176             point& centre()
177             {
178                 return centre_;
179             }
181             //- Return access to axis of rotation
182             vector& axis()
183             {
184                 return axis_;
185             }
187             //- Return access to rpm
188             scalar& rpm()
189             {
190                 return rpm_;
191             }
194         //- Update the coefficients associated with the patch field
195         virtual void updateCoeffs();
197         //- Write
198         virtual void write(Ostream&) const;
202 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
204 } // End namespace Foam
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
208 #endif
210 // ************************************************************************* //