initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / fvMotionSolver / pointPatchFields / derived / oscillatingVelocity / oscillatingVelocityPointPatchVectorField.H
blobec4892f621e45de0af2e0c8431c01f1e5c1e4902
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 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 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     Foam::oscillatingVelocityPointPatchVectorField
28 Description
29     Foam::oscillatingVelocityPointPatchVectorField
31 SourceFiles
32     oscillatingVelocityPointPatchVectorField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef oscillatingVelocityPointPatchVectorField_H
37 #define oscillatingVelocityPointPatchVectorField_H
39 #include "fixedValuePointPatchField.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47         Class oscillatingVelocityPointPatchVectorField Declaration
48 \*---------------------------------------------------------------------------*/
50 class oscillatingVelocityPointPatchVectorField
52     public fixedValuePointPatchField<vector>
54     // Private data
56         vector amplitude_;
57         scalar omega_;
59         pointField p0_;
62 public:
64     //- Runtime type information
65     TypeName("oscillatingVelocity");
68     // Constructors
70         //- Construct from patch and internal field
71         oscillatingVelocityPointPatchVectorField
72         (
73             const pointPatch&,
74             const DimensionedField<vector, pointMesh>&
75         );
77         //- Construct from patch, internal field and dictionary
78         oscillatingVelocityPointPatchVectorField
79         (
80             const pointPatch&,
81             const DimensionedField<vector, pointMesh>&,
82             const dictionary&
83         );
85         //- Construct by mapping given patchField<vector> onto a new patch
86         oscillatingVelocityPointPatchVectorField
87         (
88             const oscillatingVelocityPointPatchVectorField&,
89             const pointPatch&,
90             const DimensionedField<vector, pointMesh>&,
91             const pointPatchFieldMapper&
92         );
94         //- Construct and return a clone
95         virtual autoPtr<pointPatchField<vector> > clone() const
96         {
97             return autoPtr<pointPatchField<vector> >
98             (
99                 new oscillatingVelocityPointPatchVectorField
100                 (
101                     *this
102                 )
103             );
104         }
106         //- Construct as copy setting internal field reference
107         oscillatingVelocityPointPatchVectorField
108         (
109             const oscillatingVelocityPointPatchVectorField&,
110             const DimensionedField<vector, pointMesh>&
111         );
113         //- Construct and return a clone setting internal field reference
114         virtual autoPtr<pointPatchField<vector> > clone
115         (
116             const DimensionedField<vector, pointMesh>& iF
117         ) const
118         {
119             return autoPtr<pointPatchField<vector> >
120             (
121                 new oscillatingVelocityPointPatchVectorField
122                 (
123                     *this,
124                     iF
125                 )
126             );
127         }
130     // Member functions
132         // Evaluation functions
134             //- Update the coefficients associated with the patch field
135             virtual void updateCoeffs();
138         //- Write
139         virtual void write(Ostream&) const;
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 } // End namespace Foam
147 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
149 #endif
151 // ************************************************************************* //