sixDoFRigidBodyMotionPointConstraint.C
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 -------------------------------------------------------------------------------
11 License
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 
27 \*---------------------------------------------------------------------------*/
28 
31 #include "sixDoFRigidBodyMotion.H"
32 
33 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
34 
35 namespace Foam
36 {
37 namespace sixDoFRigidBodyMotionConstraints
38 {
40 
42  (
43  sixDoFRigidBodyMotionConstraint,
44  point,
45  dictionary
46  );
47 }
48 }
49 
50 
51 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
52 
54 (
55  const word& name,
56  const dictionary& sDoFRBMCDict,
57  const sixDoFRigidBodyMotion& motion
58 )
59 :
60  sixDoFRigidBodyMotionConstraint(name, sDoFRBMCDict, motion),
61  centreOfRotation_()
62 {
63  read(sDoFRBMCDict);
64 }
65 
66 
67 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
68 
70 {}
71 
72 
73 // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
74 
76 (
77  Foam::point& CofR
78 ) const
79 {
80  CofR = centreOfRotation_;
81 }
82 
83 
85 (
86  pointConstraint& pc
87 ) const
88 {
90 }
91 
92 
94 (
95  pointConstraint& pc
96 ) const
97 {}
98 
99 
101 (
102  const dictionary& sDoFRBMCDict
103 )
104 {
106 
107  centreOfRotation_ = sDoFRBMCCoeffs_.getOrDefault
108  (
109  "centreOfRotation",
110  motion_.initialCentreOfMass()
111  );
112 
113  return true;
114 }
115 
116 
118 (
119  Ostream& os
120 ) const
121 {
122  os.writeEntry("centreOfRotation", centreOfRotation_);
123 }
124 
125 // ************************************************************************* //
Six degree of freedom motion for a rigid body.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
virtual bool read(const dictionary &sDoFRBMCCoeff)
Update properties from given dictionary.
addToRunTimeSelectionTable(sixDoFRigidBodyMotionConstraint, axis, dictionary)
void combine(const pointConstraint &)
Combine constraints.
Base class for defining constraints for sixDoF motions.
Macros for easy insertion into run-time selection tables.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Definition: exprTraits.C:127
A class for handling words, derived from Foam::string.
Definition: word.H:63
virtual void constrainRotation(pointConstraint &) const
Apply and accumulate rotational constraints.
Accumulates point constraints through successive applications of the applyConstraint function...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
virtual bool read(const dictionary &sDoFRBMCDict)
Update properties from given dictionary.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
void read(Istream &, label &val, const dictionary &)
In-place read with dictionary lookup.
OBJstream os(runTime.globalPath()/outputName)
virtual void setCentreOfRotation(Foam::point &) const
Set the centre of rotation to the point.
vector point
Point is a vector.
Definition: point.H:37
virtual void constrainTranslation(pointConstraint &) const
Apply and accumulate translational constraints.
point(const word &name, const dictionary &sDoFRBMCDict, const sixDoFRigidBodyMotion &motion)
Construct from components.
Namespace for OpenFOAM.
static constexpr const zero Zero
Global zero (0)
Definition: zero.H:127