angularOscillatingDisplacementPointPatchVectorField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2026 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::angularOscillatingDisplacementPointPatchVectorField
26 
27 Description
28  Foam::angularOscillatingDisplacementPointPatchVectorField
29 
30 SourceFiles
31  angularOscillatingDisplacementPointPatchVectorField.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef angularOscillatingDisplacementPointPatchVectorField_H
36 #define angularOscillatingDisplacementPointPatchVectorField_H
37 
38 #include "pointPatchFields.H"
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45 
46 /*---------------------------------------------------------------------------*\
47  Class angularOscillatingDisplacementPointPatchVectorField Declaration
48 \*---------------------------------------------------------------------------*/
49 
51 :
52  public fixedValuePointPatchVectorField
53 {
54  // Private Data
55 
56  vector axis_;
57  vector origin_;
58  scalar angle0_;
59  scalar amplitude_;
60  scalar omega_;
61 
62  pointField p0_;
63 
64 
65 public:
66 
67  //- Runtime type information
68  TypeName("angularOscillatingDisplacement");
69 
70 
71  // Constructors
72 
73  //- Construct from patch, internal field and dictionary
75  (
76  const pointPatch&,
78  const dictionary&
79  );
80 
81  //- Construct by mapping given
82  // angularOscillatingDisplacementPointPatchVectorField
83  // onto a new patch
85  (
87  const pointPatch&,
89  const fieldMapper&
90  );
91 
92  //- Construct as copy setting internal field reference
94  (
97  );
98 
99  //- Construct and return a clone setting internal field reference
101  (
103  ) const
104  {
106  (
108  (
109  *this,
110  iF
111  )
112  );
113  }
114 
115 
116  // Member Functions
117 
118  // Mapping functions
119 
120  //- Map the given pointPatchField onto this pointPatchField
121  virtual void map(const pointPatchVectorField&, const fieldMapper&);
122 
123  //- Reset the pointPatchField to the given pointPatchField
124  // Used for mesh to mesh mapping
125  virtual void reset(const pointPatchVectorField&);
126 
127 
128  // Evaluation functions
129 
130  //- Update the coefficients associated with the patch field
131  virtual void updateCoeffs();
132 
133 
134  //- Write
135  virtual void write(Ostream&) const;
136 
137 
138  // Member Operators
139 
140  //- Inherit assignment
141  using fixedValuePointPatchVectorField::operator=;
142 };
143 
144 
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 
147 } // End namespace Foam
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 #endif
152 
153 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
angularOscillatingDisplacementPointPatchVectorField(const pointPatch &, const DimensionedField< vector, pointMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void reset(const pointPatchVectorField &)
Reset the pointPatchField to the given pointPatchField.
virtual void map(const pointPatchVectorField &, const fieldMapper &)
Map the given pointPatchField onto this pointPatchField.
virtual autoPtr< pointPatchVectorField > clone(const DimensionedField< vector, pointMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("angularOscillatingDisplacement")
Runtime type information.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Abstract base class for field mapping.
Definition: fieldMapper.H:48
Abstract base class for point-mesh patch fields.
Basic pointPatch represents a set of points from the mesh.
Definition: pointPatch.H:61
Namespace for OpenFOAM.