rotatingMotion.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 Copyright (C) 2020 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::solidBodyMotionFunctions::rotatingMotion
29
30Description
31 SolidBodyMotionFvMesh 6DoF motion function.
32
33 The rotation is defined by an origin and axis of rotation and an angular
34 speed.
35
36SourceFiles
37 rotatingMotion.C
38
39\*---------------------------------------------------------------------------*/
40
41#ifndef rotatingMotion_H
42#define rotatingMotion_H
43
45#include "primitiveFields.H"
46#include "point.H"
47#include "Function1.H"
48#include "autoPtr.H"
49
50// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51
52namespace Foam
53{
54namespace solidBodyMotionFunctions
55{
56
57/*---------------------------------------------------------------------------*\
58 Class rotatingMotion Declaration
59\*---------------------------------------------------------------------------*/
62:
64{
65 // Private Data
66
67 //- Origin of the axis
68 const vector origin_;
69
70 //- Axis vector
71 const vector axis_;
72
73 //- Angular velocity (rad/sec)
75
76
77 // Private Member Functions
78
79 //- No copy construct
80 rotatingMotion(const rotatingMotion&) = delete;
81
82 //- No copy assignment
83 void operator=(const rotatingMotion&) = delete;
84
85
86public:
87
88 //- Runtime type information
89 TypeName("rotatingMotion");
90
91
92 // Constructors
93
94 //- Construct from components
96 (
97 const dictionary& SBMFCoeffs,
98 const Time& runTime
99 );
100
101 //- Construct and return a clone
103 {
105 (
107 (
109 time_
110 )
111 );
112 }
113
114
115 //- Destructor
116 virtual ~rotatingMotion() = default;
117
118
119 // Member Functions
120
121 //- Return the solid-body motion transformation septernion
122 virtual septernion transformation() const;
123
124 //- Update properties from given dictionary
125 virtual bool read(const dictionary& SBMFCoeffs);
126};
127
128
129// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
130
131} // End namespace solidBodyMotionFunctions
132} // End namespace Foam
133
134// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135
136#endif
137
138// ************************************************************************* //
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:80
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
Septernion class used to perform translations and rotations in 3D space.
Definition: septernion.H:67
Base class for defining solid-body motions.
SolidBodyMotionFvMesh 6DoF motion function.
TypeName("rotatingMotion")
Runtime type information.
virtual ~rotatingMotion()=default
Destructor.
virtual septernion transformation() const
Return the solid-body motion transformation septernion.
virtual autoPtr< solidBodyMotionFunction > clone() const
Construct and return a clone.
virtual bool read(const dictionary &SBMFCoeffs)
Update properties from given dictionary.
engineTime & runTime
Namespace for OpenFOAM.
Specialisations of Field<T> for scalar, vector and tensor.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73