axisRotationMotion.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) 2012-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::solidBodyMotionFunctions::axisRotationMotion
26 
27 Description
28  Constant angular velocity rotation around given origin.
29 
30  Similar to rotatingMotion but motion specified as an angular velocity
31  vector.
32 
33 SourceFiles
34  axisRotationMotion.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef axisRotationMotion_H
39 #define axisRotationMotion_H
40 
42 #include "primitiveFields.H"
43 #include "point.H"
44 
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 
47 namespace Foam
48 {
49 namespace solidBodyMotionFunctions
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class axisRotationMotion Declaration
54 \*---------------------------------------------------------------------------*/
55 
57 :
59 {
60  // Private Data
61 
62  //- Origin
63  point origin_;
64 
65  //- Angular velocity
66  vector omega_;
67 
68 
69 public:
70 
71  //- Runtime type information
72  TypeName("axisRotationMotion");
73 
74 
75  // Constructors
76 
77  //- Construct from components
79  (
80  const word& name,
81  const dictionary& SBMFCoeffs,
82  const Time& runTime
83  );
84 
85  //- Disallow default bitwise copy construction
86  axisRotationMotion(const axisRotationMotion&) = delete;
87 
88  //- Construct and return a clone
90  {
92  (
94  (
95  name_,
97  time_
98  )
99  );
100  }
101 
102 
103  //- Destructor
104  virtual ~axisRotationMotion();
105 
106 
107  // Member Functions
108 
109  //- Return the solid-body motion transformation septernion
110  virtual septernion transformation() const;
111 
112  //- Update properties from given dictionary
113  virtual bool read(const dictionary& SBMFCoeffs);
114 
115 
116  // Member Operators
117 
118  //- Disallow default bitwise assignment
119  void operator=(const axisRotationMotion&) = delete;
120 };
121 
122 
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124 
125 } // End namespace solidBodyMotionFunctions
126 } // End namespace Foam
127 
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 
130 #endif
131 
132 // ************************************************************************* //
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 keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Septernion class used to perform translations and rotations in 3D space.
Definition: septernion.H:66
Base class for defining solid-body motions.
Constant angular velocity rotation around given origin.
TypeName("axisRotationMotion")
Runtime type information.
virtual autoPtr< solidBodyMotionFunction > clone() const
Construct and return a clone.
void operator=(const axisRotationMotion &)=delete
Disallow default bitwise assignment.
virtual septernion transformation() const
Return the solid-body motion transformation septernion.
axisRotationMotion(const word &name, const dictionary &SBMFCoeffs, const Time &runTime)
Construct from components.
virtual bool read(const dictionary &SBMFCoeffs)
Update properties from given dictionary.
A class for handling words, derived from string.
Definition: word.H:63
Namespace for OpenFOAM.
Specialisations of Field<T> for scalar, vector and tensor.