Forward compatibility: flex
[foam-extend-3.2.git] / src / dynamicMesh / meshMotion / fvMotionSolver / pointPatchFields / derived / oscillatingDisplacement / oscillatingDisplacementPointPatchVectorField.H
blob93410773f6262c87800f8be3ca0af2da0e8c4d4a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     oscillatingDisplacementPointPatchVectorField
27 Description
29 SourceFiles
30     oscillatingDisplacementPointPatchVectorField.C
32 \*---------------------------------------------------------------------------*/
34 #ifndef oscillatingDisplacementPointPatchVectorField_H
35 #define oscillatingDisplacementPointPatchVectorField_H
37 #include "fixedValuePointPatchFields.H"
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 namespace Foam
44 /*---------------------------------------------------------------------------*\
45         Class oscillatingDisplacementPointPatchVectorField Declaration
46 \*---------------------------------------------------------------------------*/
48 class oscillatingDisplacementPointPatchVectorField
50     public FixedValuePointPatchField
51     <
52         pointPatchField,
53         pointMesh,
54         pointPatch,
55         DummyMatrix,
56         vector
57     >
59     // Private data
61         vector amplitude_;
62         scalar omega_;
65 public:
67     //- Runtime type information
68     TypeName("oscillatingDisplacement");
71     // Constructors
73         //- Construct from patch and internal field
74         oscillatingDisplacementPointPatchVectorField
75         (
76             const pointPatch&,
77             const DimensionedField<vector, pointMesh>&
78         );
80         //- Construct from patch, internal field and dictionary
81         oscillatingDisplacementPointPatchVectorField
82         (
83             const pointPatch&,
84             const DimensionedField<vector, pointMesh>&,
85             const dictionary&
86         );
88         //- Construct by mapping given patchField<vector> onto a new patch
89         oscillatingDisplacementPointPatchVectorField
90         (
91             const oscillatingDisplacementPointPatchVectorField&,
92             const pointPatch&,
93             const DimensionedField<vector, pointMesh>&,
94             const PointPatchFieldMapper&
95         );
97         //- Construct and return a clone
98         virtual autoPtr<pointPatchField<vector> > clone() const
99         {
100             return autoPtr<pointPatchField<vector> >
101             (
102                 new oscillatingDisplacementPointPatchVectorField(*this)
103             );
104         }
106         //- Construct as copy setting internal field reference
107         oscillatingDisplacementPointPatchVectorField
108         (
109             const oscillatingDisplacementPointPatchVectorField&,
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 oscillatingDisplacementPointPatchVectorField(*this, iF)
122             );
123         }
126     // Member functions
128         // Evaluation functions
130             //- Update the coefficients associated with the patch field
131             virtual void updateCoeffs();
134         //- Write
135         virtual void write(Ostream&) const;
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 } // End namespace Foam
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 #endif
147 // ************************************************************************* //