initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / fvMotionSolver / pointPatchFields / derived / oscillatingDisplacement / oscillatingDisplacementPointPatchVectorField.H
blob411c47604dfc503221d9653ac8eee9d257cd5faa
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::oscillatingDisplacementPointPatchVectorField
28 Description
29     Foam::oscillatingDisplacementPointPatchVectorField
31 SourceFiles
32     oscillatingDisplacementPointPatchVectorField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef oscillatingDisplacementPointPatchVectorField_H
37 #define oscillatingDisplacementPointPatchVectorField_H
39 #include "fixedValuePointPatchField.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47         Class oscillatingDisplacementPointPatchVectorField Declaration
48 \*---------------------------------------------------------------------------*/
50 class oscillatingDisplacementPointPatchVectorField
52     public fixedValuePointPatchField<vector>
54     // Private data
56         vector amplitude_;
57         scalar omega_;
60 public:
62     //- Runtime type information
63     TypeName("oscillatingDisplacement");
66     // Constructors
68         //- Construct from patch and internal field
69         oscillatingDisplacementPointPatchVectorField
70         (
71             const pointPatch&,
72             const DimensionedField<vector, pointMesh>&
73         );
75         //- Construct from patch, internal field and dictionary
76         oscillatingDisplacementPointPatchVectorField
77         (
78             const pointPatch&,
79             const DimensionedField<vector, pointMesh>&,
80             const dictionary&
81         );
83         //- Construct by mapping given patchField<vector> onto a new patch
84         oscillatingDisplacementPointPatchVectorField
85         (
86             const oscillatingDisplacementPointPatchVectorField&,
87             const pointPatch&,
88             const DimensionedField<vector, pointMesh>&,
89             const pointPatchFieldMapper&
90         );
92         //- Construct and return a clone
93         virtual autoPtr<pointPatchField<vector> > clone() const
94         {
95             return autoPtr<pointPatchField<vector> >
96             (
97                 new oscillatingDisplacementPointPatchVectorField
98                 (
99                     *this
100                 )
101             );
102         }
104         //- Construct as copy setting internal field reference
105         oscillatingDisplacementPointPatchVectorField
106         (
107             const oscillatingDisplacementPointPatchVectorField&,
108             const DimensionedField<vector, pointMesh>&
109         );
111         //- Construct and return a clone setting internal field reference
112         virtual autoPtr<pointPatchField<vector> > clone
113         (
114             const DimensionedField<vector, pointMesh>& iF
115         ) const
116         {
117             return autoPtr<pointPatchField<vector> >
118             (
119                 new oscillatingDisplacementPointPatchVectorField
120                 (
121                     *this,
122                     iF
123                 )
124             );
125         }
128     // Member functions
130         // Evaluation functions
132             //- Update the coefficients associated with the patch field
133             virtual void updateCoeffs();
136         //- Write
137         virtual void write(Ostream&) const;
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 } // End namespace Foam
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 #endif
149 // ************************************************************************* //