angularOscillatingVelocityPointPatchVectorField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::angularOscillatingVelocityPointPatchVectorField
28 
29 Description
30  Foam::angularOscillatingVelocityPointPatchVectorField
31 
32 SourceFiles
33  angularOscillatingVelocityPointPatchVectorField.cxx
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef Foam_angularOscillatingVelocityPointPatchVectorField_H
38 #define Foam_angularOscillatingVelocityPointPatchVectorField_H
39 
41 
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 
44 namespace Foam
45 {
46 
47 /*---------------------------------------------------------------------------*\
48  Class angularOscillatingVelocityPointPatchVectorField Declaration
49 \*---------------------------------------------------------------------------*/
50 
52 :
53  public fixedValuePointPatchField<vector>
54 {
57 
58  // Private data
59 
60  vector axis_;
61  vector origin_;
62  scalar angle0_;
63  scalar amplitude_;
64  scalar omega_;
65 
66  pointField p0_;
67 
68 
69 public:
70 
71  //- Runtime type information
72  TypeName("angularOscillatingVelocity");
73 
74 
75  // Constructors
76 
77  //- Construct from patch and internal field
79  (
80  const pointPatch&,
82  );
83 
84  //- Construct from patch, internal field and dictionary
86  (
87  const pointPatch&,
89  const dictionary&
90  );
91 
92  //- Construct by mapping onto a new patch
94  (
95  const this_bctype&,
96  const pointPatch&,
99  );
100 
101  //- Construct as copy setting internal field reference
103  (
104  const this_bctype&,
106  );
107 
108  //- No copy without an internal field
110  (
111  const this_bctype&
112  ) = delete;
113 
114  //- Clone with an internal field reference
116  (
118  ) const
119  {
120  return pointPatchField<vector>::Clone(*this, iF);
121  }
122 
123 
124  // Member functions
126  // Mapping functions
127 
128  //- Map (and resize as needed) from self given a mapping object
129  virtual void autoMap
130  (
131  const pointPatchFieldMapper&
132  );
133 
134  //- Reverse map the given pointPatchField onto this pointPatchField
135  virtual void rmap
136  (
138  const labelList&
139  );
140 
141 
142  // Evaluation functions
143 
144  //- Update the coefficients associated with the patch field
145  virtual void updateCoeffs();
146 
147 
148  //- Write
149  virtual void write(Ostream&) const;
150 
151 
152  // Member Operators
153 
154  //- Inherit assignment
156 };
157 
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 } // End namespace Foam
162 
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 
165 #endif
166 
167 // ************************************************************************* //
virtual void rmap(const pointPatchField< vector > &, const labelList &)
Reverse map the given pointPatchField onto this pointPatchField.
TypeName("angularOscillatingVelocity")
Runtime type information.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:130
A FixedValue boundary condition for pointField.
Foam::pointPatchFieldMapper.
virtual autoPtr< pointPatchField< vector > > clone() const
No clone without an internal field reference.
friend Ostream & operator(Ostream &, const pointPatchField< vector > &)
angularOscillatingVelocityPointPatchVectorField(const pointPatch &, const DimensionedField< vector, pointMesh > &)
Construct from patch and internal field.
static autoPtr< pointPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
virtual void autoMap(const pointPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
Basic pointPatch represents a set of points from the mesh.
Definition: pointPatch.H:64
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition: HashPtrTable.H:48
Namespace for OpenFOAM.
virtual void write(Ostream &) const
Write.