Simbody
3.3
|
A linear damper that acts along or around a mobility coordinate to apply a generalized force there. More...
#include <Force_MobilityLinearDamper.h>
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... | |
MobilityLinearDamper & | setDefaultDamping (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 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. 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 GeneralForceSubsystem & | getForceSubsystem () 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... | |
PIMPLHandle & | referenceAssign (const Force &source) |
"Copy" assignment but with shallow (pointer) semantics. More... | |
PIMPLHandle & | copyAssign (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... | |
PIMPLHandle & | operator= (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... | |
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.
SimTK::Force::MobilityLinearDamper::MobilityLinearDamper | ( | GeneralForceSubsystem & | forces, |
const MobilizedBody & | mobod, | ||
MobilizerUIndex | whichU, | ||
Real | defaultDamping | ||
) |
Create a MobilityLinearDamper force element on a particular mobility (generalized speed).
[in,out] | forces | The subsystem to which this force should be added. |
[in] | mobod | Mobilizer to which the force should be applied. |
[in] | whichU | To which of the mobilizer's mobilities (generalized speeds) u should this force be applied (first is 0)? |
[in] | defaultDamping | The default value for the damping constant c. |
Default constructor creates an empty handle that can be assigned to refer to any MobilityLinearDamper object.
|
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.
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.
[in] | defaultDamping | The default value for the damping constant c. |
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().
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.
[in,out] | state | The State in which the damping constant is to be changed. |
[in] | damping | The new damping constant c (>= 0) that overrides the default. |
Changing the damping constant invalidates Stage::Dynamics and above in the state since it can affect force generation.
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().