rotatingMotion.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-2022 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::solidBodyMotionFunctions::rotatingMotion
26 
27 Description
28  SolidBodyMotionFvMesh 6DoF motion function.
29 
30  The rotation is defined by an origin and axis of rotation and an angular
31  speed.
32 
33 SourceFiles
34  rotatingMotion.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef rotatingMotion_H
39 #define rotatingMotion_H
40 
42 #include "primitiveFields.H"
43 #include "omega.H"
44 
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 
47 namespace Foam
48 {
49 namespace solidBodyMotionFunctions
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class rotatingMotion Declaration
54 \*---------------------------------------------------------------------------*/
55 
56 class rotatingMotion
57 :
59 {
60  // Private Data
61 
62  //- Origin of the axis
63  const vector origin_;
64 
65  //- Axis vector
66  const vector axis_;
67 
68  //- Angular velocity (rad/sec)
69  Function1s::omega omega_;
70 
71 
72 public:
73 
74  //- Runtime type information
75  TypeName("rotatingMotion");
76 
77 
78  // Constructors
79 
80  //- Construct from components
82  (
83  const dictionary& SBMFCoeffs,
84  const Time& runTime
85  );
86 
87  //- Disallow default bitwise copy construction
89 
90 
91  //- Construct and return a clone
93  {
95  (
96  new rotatingMotion
97  (
99  time_
100  )
101  );
102  }
103 
104 
105  //- Destructor
106  virtual ~rotatingMotion();
107 
108 
109  // Member Functions
110 
111  //- Return the solid-body motion transformation septernion
112  virtual septernion transformation() const;
113 
114  //- Update properties from given dictionary
115  virtual bool read(const dictionary& SBMFCoeffs);
116 
117 
118  // Member Operators
119 
120  //- Disallow default bitwise assignment
121  void operator=(const rotatingMotion&) = delete;
122 };
123 
124 
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 
127 } // End namespace solidBodyMotionFunctions
128 } // End namespace Foam
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 
132 #endif
133 
134 // ************************************************************************* //
User convenience class to handle the input of time-varying rotational speed in rad/s if omega is spec...
Definition: omega.H:108
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:76
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 keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Septernion class used to perform translations and rotations in 3D space.
Definition: septernion.H:66
Base class for defining solid-body motions.
SolidBodyMotionFvMesh 6DoF motion function.
TypeName("rotatingMotion")
Runtime type information.
virtual autoPtr< solidBodyMotionFunction > clone() const
Construct and return a clone.
virtual septernion transformation() const
Return the solid-body motion transformation septernion.
void operator=(const rotatingMotion &)=delete
Disallow default bitwise assignment.
rotatingMotion(const dictionary &SBMFCoeffs, const Time &runTime)
Construct from components.
virtual bool read(const dictionary &SBMFCoeffs)
Update properties from given dictionary.
Namespace for OpenFOAM.
Specialisations of Field<T> for scalar, vector and tensor.