linearSpring.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-2013 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::sixDoFRigidBodyMotionRestraints::linearSpring
28 
29 Description
30  sixDoFRigidBodyMotionRestraints model. Linear spring.
31 
32 SourceFiles
33  linearSpring.C
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef linearSpring_H
38 #define linearSpring_H
39 
41 #include "point.H"
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 namespace sixDoFRigidBodyMotionRestraints
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class linearSpring Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 class linearSpring
56 :
58 {
59  // Private data
60 
61  //- Anchor point, where the spring is attached to an immovable
62  // object
63  point anchor_;
64 
65  //- Reference point of attachment to the solid body
66  point refAttachmentPt_;
67 
68  //- Spring stiffness coefficient (N/m)
69  scalar stiffness_;
70 
71  //- Damping coefficient (Ns/m)
72  scalar damping_;
73 
74  //- Rest length - length of spring when no forces are applied to it
75  scalar restLength_;
76 
77 
78 public:
79 
80  //- Runtime type information
81  TypeName("linearSpring");
82 
83 
84  // Constructors
85 
86  //- Construct from components
88  (
89  const word& name,
90  const dictionary& sDoFRBMRDict
91  );
92 
93  //- Construct and return a clone
95  {
97  (
98  new linearSpring(*this)
99  );
100  }
101 
102 
103  //- Destructor
104  virtual ~linearSpring();
105 
107  // Member Functions
108 
109  //- Calculate the restraint position, force and moment.
110  // Global reference frame vectors.
111  virtual void restrain
112  (
113  const sixDoFRigidBodyMotion& motion,
114  vector& restraintPosition,
115  vector& restraintForce,
116  vector& restraintMoment
117  ) const;
118 
119  //- Update properties from given dictionary
120  virtual bool read(const dictionary& sDoFRBMRCoeff);
121 
122  //- Write
123  virtual void write(Ostream&) const;
124 };
125 
126 
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 
129 } // End namespace solidBodyMotionFunctions
130 } // End namespace Foam
131 
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 
134 #endif
135 
136 // ************************************************************************* //
Six degree of freedom motion for a rigid body.
virtual void restrain(const sixDoFRigidBodyMotion &motion, vector &restraintPosition, vector &restraintForce, vector &restraintMoment) const
Calculate the restraint position, force and moment.
Definition: linearSpring.C:71
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:120
Base class for defining restraints for sixDoF motions.
virtual bool read(const dictionary &sDoFRBMRCoeff)
Update properties from given dictionary.
Definition: linearSpring.C:102
linearSpring(const word &name, const dictionary &sDoFRBMRDict)
Construct from components.
Definition: linearSpring.C:46
virtual autoPtr< sixDoFRigidBodyMotionRestraint > clone() const
Construct and return a clone.
Definition: linearSpring.H:106
virtual void write(Ostream &) const
Write.
Definition: linearSpring.C:119
A class for handling words, derived from Foam::string.
Definition: word.H:63
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:55
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
TypeName("linearSpring")
Runtime type information.
const word & name() const
Return the name.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition: HashPtrTable.H:48
sixDoFRigidBodyMotionRestraints model. Linear spring.
Definition: linearSpring.H:50
Namespace for OpenFOAM.