Simbody  3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SimTK::Force::MobilityLinearDamper Class Reference

A linear damper that acts along or around a mobility coordinate to apply a generalized force there. More...

#include <Force_MobilityLinearDamper.h>

+ Inheritance diagram for SimTK::Force::MobilityLinearDamper:

Public Member Functions

 MobilityLinearDamper (GeneralForceSubsystem &forces, const MobilizedBody &mobod, MobilizerUIndex whichU, Real defaultDamping)
 Create a MobilityLinearDamper force element on a particular mobility (generalized speed). More...
 
 MobilityLinearDamper ()
 Default constructor creates an empty handle that can be assigned to refer to any MobilityLinearDamper object. More...
 
MobilityLinearDampersetDefaultDamping (Real defaultDamping)
 Provide a new value for the default damping constant c of this damper. More...
 
Real getDefaultDamping () const
 Return the default value for the damper's damping constant c. More...
 
const MobilityLinearDampersetDamping (State &state, Real damping) const
 Change the value of the damping constant c in the given state; this may differ from the default value supplied at construction. More...
 
Real getDamping (const State &state) const
 Return the value for the damping constant c that is stored in the given state. More...
 
Deprecated

Methods here are for backwards compatibility but have been replaced with better ones that you should use.

 MobilityLinearDamper (GeneralForceSubsystem &forces, const MobilizedBody &mobod, int whichU, Real defaultDamping)
 Deprecated: Alternate signature for backwards compatibilty – for safety you should prefer using the other constructor signature that takes a MobilizerUIndex rather than a plain int. More...
 
- Public Member Functions inherited from SimTK::Force
void disable (State &) const
 Disable this force element, effectively removing it from the System for computational purposes (it is still using its ForceIndex, however). More...
 
void enable (State &) const
 Enable this force element if it was previously disabled. More...
 
bool isDisabled (const State &) const
 Test whether this force element is currently disabled in the supplied State. More...
 
void setDisabledByDefault (bool shouldBeDisabled)
 Normally force elements are enabled when defined and can be disabled later. More...
 
bool isDisabledByDefault () const
 Test whether this force element is disabled by default in which case it must be explicitly enabled before it will take effect. More...
 
void calcForceContribution (const State &state, Vector_< SpatialVec > &bodyForces, Vector_< Vec3 > &particleForces, Vector &mobilityForces) const
 Calculate the force that would be applied by this force element if the given state were realized to Dynamics stage. More...
 
Real calcPotentialEnergyContribution (const State &state) const
 Calculate the potential energy contribution that is made by this force element at the given state. More...
 
 Force ()
 Default constructor for Force handle base class does nothing. More...
 
 operator ForceIndex () const
 Implicit conversion to ForceIndex when needed. More...
 
const GeneralForceSubsystemgetForceSubsystem () const
 Get the GeneralForceSubsystem of which this Force is an element. More...
 
ForceIndex getForceIndex () const
 Get the index of this force element within its parent force subsystem. More...
 
- Public Member Functions inherited from SimTK::PIMPLHandle< Force, ForceImpl, true >
bool isEmptyHandle () const
 Returns true if this handle is empty, that is, does not refer to any implementation object. More...
 
bool isOwnerHandle () const
 Returns true if this handle is the owner of the implementation object to which it refers. More...
 
bool isSameHandle (const Force &other) const
 Determine whether the supplied handle is the same object as "this" PIMPLHandle. More...
 
void disown (Force &newOwner)
 Give up ownership of the implementation to an empty handle. More...
 
PIMPLHandlereferenceAssign (const Force &source)
 "Copy" assignment but with shallow (pointer) semantics. More...
 
PIMPLHandlecopyAssign (const Force &source)
 This is real copy assignment, with ordinary C++ object ("value") semantics. More...
 
void clearHandle ()
 Make this an empty handle, deleting the implementation object if this handle is the owner of it. More...
 
const ForceImpl & getImpl () const
 Get a const reference to the implementation associated with this Handle. More...
 
ForceImpl & updImpl ()
 Get a writable reference to the implementation associated with this Handle. More...
 
int getImplHandleCount () const
 Return the number of handles the implementation believes are referencing it. More...
 

Additional Inherited Members

- Public Types inherited from SimTK::PIMPLHandle< Force, ForceImpl, true >
typedef PIMPLHandle< Force,
ForceImpl, PTR > 
HandleBase
 
typedef HandleBase ParentHandle
 
- Protected Member Functions inherited from SimTK::Force
 Force (ForceImpl *r)
 Use this in a derived Force handle class constructor to supply the concrete implementation object to be stored in the handle base. More...
 
- Protected Member Functions inherited from SimTK::PIMPLHandle< Force, ForceImpl, true >
 PIMPLHandle ()
 The default constructor makes this an empty handle. More...
 
 PIMPLHandle (ForceImpl *p)
 This provides consruction of a handle referencing an existing implementation object. More...
 
 PIMPLHandle (const PIMPLHandle &source)
 The copy constructor makes either a deep (value) or shallow (reference) copy of the supplied source PIMPL object, based on whether this is a "pointer semantics" (PTR=true) or "object (value) semantics" (PTR=false, default) class. More...
 
 ~PIMPLHandle ()
 Note that the destructor is non-virtual. More...
 
PIMPLHandleoperator= (const PIMPLHandle &source)
 Copy assignment makes the current handle either a deep (value) or shallow (reference) copy of the supplied source PIMPL object, based on whether this is a "pointer sematics" (PTR=true) or "object (value) semantics" (PTR=false, default) class. More...
 
void setImpl (ForceImpl *p)
 Set the implementation for this empty handle. More...
 
bool hasSameImplementation (const Force &other) const
 Determine whether the supplied handle is a reference to the same implementation object as is referenced by "this" PIMPLHandle. More...
 

Detailed Description

A linear damper that acts along or around a mobility coordinate to apply a generalized force there.

The damping constant c is provided, with the generated force being -c*u where u is the mobility's generalized speed. This is meaningful on any mobility, since all our generalized speeds have physical meaning. This is not a potential force and hence does not contribute to potential energy.

Constructor & Destructor Documentation

SimTK::Force::MobilityLinearDamper::MobilityLinearDamper ( GeneralForceSubsystem forces,
const MobilizedBody mobod,
MobilizerUIndex  whichU,
Real  defaultDamping 
)

Create a MobilityLinearDamper force element on a particular mobility (generalized speed).

Parameters
[in,out]forcesThe subsystem to which this force should be added.
[in]mobodMobilizer to which the force should be applied.
[in]whichUTo which of the mobilizer's mobilities (generalized speeds) u should this force be applied (first is 0)?
[in]defaultDampingThe default value for the damping constant c.

Default constructor creates an empty handle that can be assigned to refer to any MobilityLinearDamper object.

SimTK::Force::MobilityLinearDamper::MobilityLinearDamper ( GeneralForceSubsystem forces,
const MobilizedBody mobod,
int  whichU,
Real  defaultDamping 
)
inline

Deprecated: Alternate signature for backwards compatibilty – for safety you should prefer using the other constructor signature that takes a MobilizerUIndex rather than a plain int.

Member Function Documentation

MobilityLinearDamper& SimTK::Force::MobilityLinearDamper::setDefaultDamping ( Real  defaultDamping)

Provide a new value for the default damping constant c of this damper.

This is a topological change because it affects the value that the containing System's default state will have when realizeTopology() is called. This is for use during construction, not for during a simulation where you should be using setDamping() to set the damping constant in a State rather than in the System.

Parameters
[in]defaultDampingThe default value for the damping constant c.
Returns
A writable reference to this modified force element for convenience in chaining set methods.
See Also
getDefaultDamping(), setDamping()
Real SimTK::Force::MobilityLinearDamper::getDefaultDamping ( ) const

Return the default value for the damper's damping constant c.

This is normally set at construction but can be modified with setDefaultDamping().

See Also
setDefaultDamping(), getDamping()
const MobilityLinearDamper& SimTK::Force::MobilityLinearDamper::setDamping ( State state,
Real  damping 
) const

Change the value of the damping constant c in the given state; this may differ from the default value supplied at construction.

Parameters
[in,out]stateThe State in which the damping constant is to be changed.
[in]dampingThe new damping constant c (>= 0) that overrides the default.
Returns
A const reference to this MobilityLinearDamper element for convenience in chaining set methods together.

Changing the damping constant invalidates Stage::Dynamics and above in the state since it can affect force generation.

See Also
setDefaultDamping(), getDamping()
Real SimTK::Force::MobilityLinearDamper::getDamping ( const State state) const

Return the value for the damping constant c that is stored in the given state.

Note that this is not the same thing as the default damping constant that was supplied on construction or in setDefaultDamping().

See Also
setDamping(), getDefaultDamping()

The documentation for this class was generated from the following file: