36namespace sixDoFRigidBodyMotionRestraints
85 restraintPosition = motion.
transform(refAttachmentPt_);
87 vector r = restraintPosition - anchor_;
94 restraintForce = -stiffness_*(magR - restLength_)*r - damping_*(r & v)*r;
96 restraintMoment =
Zero;
100 Info<<
" attachmentPt - anchor " << r*magR
101 <<
" spring length " << magR
102 <<
" force " << restraintForce
115 sDoFRBMRCoeffs_.readEntry(
"anchor", anchor_);
116 sDoFRBMRCoeffs_.readEntry(
"refAttachmentPt", refAttachmentPt_);
117 sDoFRBMRCoeffs_.readEntry(
"stiffness", stiffness_);
118 sDoFRBMRCoeffs_.readEntry(
"damping", damping_);
119 sDoFRBMRCoeffs_.readEntry(
"restLength", restLength_);
130 os.writeEntry(
"anchor", anchor_);
131 os.writeEntry(
"refAttachmentPt", refAttachmentPt_);
132 os.writeEntry(
"stiffness", stiffness_);
133 os.writeEntry(
"damping", damping_);
134 os.writeEntry(
"restLength", restLength_);
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual bool read()
Re-read model coefficients if they have changed.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual bool write()
Write the output fields.
Base class for defining restraints for sixDoF motions.
sixDoFRigidBodyMotionRestraints model. Linear spring.
virtual void restrain(const sixDoFRigidBodyMotion &motion, vector &restraintPosition, vector &restraintForce, vector &restraintMoment) const
Calculate the restraint position, force and moment.
virtual ~linearSpring()
Destructor.
virtual bool read(const dictionary &sDoFRBMRCoeff)
Update properties from given dictionary.
Six degree of freedom motion for a rigid body.
bool report() const
Return the report Switch.
point transform(const point &initialPoints) const
Transform the given initial state point by the current motion.
point velocity(const point &pt) const
Return the velocity of a position.
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
OBJstream os(runTime.globalPath()/outputName)
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
static constexpr const zero Zero
Global zero (0)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.