Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / fvMotionSolver / pointPatchFields / derived / angularOscillatingVelocity / angularOscillatingVelocityPointPatchVectorField.H
blobb2f0cd0eb42abb3a976ffe952095336ad987599e
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::angularOscillatingVelocityPointPatchVectorField
27 Description
28     Foam::angularOscillatingVelocityPointPatchVectorField
30 SourceFiles
31     angularOscillatingVelocityPointPatchVectorField.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef angularOscillatingVelocityPointPatchVectorField_H
36 #define angularOscillatingVelocityPointPatchVectorField_H
38 #include "fixedValuePointPatchField.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46         Class angularOscillatingVelocityPointPatchVectorField Declaration
47 \*---------------------------------------------------------------------------*/
49 class angularOscillatingVelocityPointPatchVectorField
51     public fixedValuePointPatchField<vector>
53     // Private data
55         vector axis_;
56         vector origin_;
57         scalar angle0_;
58         scalar amplitude_;
59         scalar omega_;
61         pointField p0_;
64 public:
66     //- Runtime type information
67     TypeName("angularOscillatingVelocity");
70     // Constructors
72         //- Construct from patch and internal field
73         angularOscillatingVelocityPointPatchVectorField
74         (
75             const pointPatch&,
76             const DimensionedField<vector, pointMesh>&
77         );
79         //- Construct from patch, internal field and dictionary
80         angularOscillatingVelocityPointPatchVectorField
81         (
82             const pointPatch&,
83             const DimensionedField<vector, pointMesh>&,
84             const dictionary&
85         );
87         //- Construct by mapping given patchField<vector> onto a new patch
88         angularOscillatingVelocityPointPatchVectorField
89         (
90             const angularOscillatingVelocityPointPatchVectorField&,
91             const pointPatch&,
92             const DimensionedField<vector, pointMesh>&,
93             const pointPatchFieldMapper&
94         );
96         //- Construct and return a clone
97         virtual autoPtr<pointPatchField<vector> > clone() const
98         {
99             return autoPtr<pointPatchField<vector> >
100             (
101                 new angularOscillatingVelocityPointPatchVectorField
102                 (
103                     *this
104                 )
105             );
106         }
108         //- Construct as copy setting internal field reference
109         angularOscillatingVelocityPointPatchVectorField
110         (
111             const angularOscillatingVelocityPointPatchVectorField&,
112             const DimensionedField<vector, pointMesh>&
113         );
115         //- Construct and return a clone setting internal field reference
116         virtual autoPtr<pointPatchField<vector> > clone
117         (
118             const DimensionedField<vector, pointMesh>& iF
119         ) const
120         {
121             return autoPtr<pointPatchField<vector> >
122             (
123                 new angularOscillatingVelocityPointPatchVectorField
124                 (
125                     *this,
126                     iF
127                 )
128             );
129         }
132     // Member functions
134         // Mapping functions
136             //- Map (and resize as needed) from self given a mapping object
137             virtual void autoMap
138             (
139                 const pointPatchFieldMapper&
140             );
142             //- Reverse map the given pointPatchField onto this pointPatchField
143             virtual void rmap
144             (
145                 const pointPatchField<vector>&,
146                 const labelList&
147             );
150         // Evaluation functions
152             //- Update the coefficients associated with the patch field
153             virtual void updateCoeffs();
156         //- Write
157         virtual void write(Ostream&) const;
161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 } // End namespace Foam
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 #endif
169 // ************************************************************************* //