Go to the documentation of this file. 1 #ifndef SimTK_SIMBODY_FORCE_H_
2 #define SimTK_SIMBODY_FORCE_H_
33 class SimbodyMatterSubsystem;
34 class GeneralForceSubsystem;
42 #ifndef SimTK_SIMBODY_DEFINING_FORCE
43 extern template class PIMPLHandle<Force, ForceImpl, true>;
131 Vector& mobilityForces)
const;
185 class TwoPointLinearSpringImpl;
186 class TwoPointLinearDamperImpl;
187 class TwoPointConstantForceImpl;
188 class MobilityLinearSpringImpl;
189 class MobilityLinearDamperImpl;
190 class MobilityConstantForceImpl;
191 class MobilityLinearStopImpl;
192 class MobilityDiscreteForceImpl;
193 class DiscreteForcesImpl;
194 class LinearBushingImpl;
195 class ConstantForceImpl;
196 class ConstantTorqueImpl;
197 class GlobalDamperImpl;
198 class ThermostatImpl;
199 class UniformGravityImpl;
392 #endif // SimTK_SIMBODY_FORCE_H_
A discrete mobility (generalized) force f applied to a particular mobility that is specified at const...
Definition: Force_MobilityDiscreteForce.h:52
TwoPointConstantForce(GeneralForceSubsystem &forces, const MobilizedBody &body1, const Vec3 &station1, const MobilizedBody &body2, const Vec3 &station2, Real force)
Create a TwoPointConstantForce.
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
bool isDisabled(const State &) const
Test whether this force element is currently disabled in the supplied State.
void disable(State &) const
Disable this force element, effectively removing it from the System for computational purposes (it is...
TwoPointLinearDamper()
Default constructor creates an empty handle.
Definition: Force.h:269
ForceIndex getForceIndex() const
Get the index of this force element within its parent force subsystem.
A constant force applied to a body station.
Definition: Force.h:313
A linear damper that acts along or around a mobility coordinate to apply a generalized force there.
Definition: Force_MobilityLinearDamper.h:46
Force(ForceImpl *r)
Use this in a derived Force handle class constructor to supply the concrete implementation object to ...
Definition: Force.h:206
A constant torque to a body.
Definition: Force.h:330
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(ConstantTorque, ConstantTorqueImpl, Force)
A constant generalized force f (a scalar) applied to a mobility.
Definition: Force_MobilityConstantForce.h:45
void enable(State &) const
Enable this force element if it was previously disabled.
Force()
Default constructor for Force handle base class does nothing.
Definition: Force.h:152
A general energy "drain" on the system.
Definition: Force.h:354
This is a System that represents the dynamics of a particle moving along a smooth surface.
Definition: Assembler.h:37
Model a compliant stop element that acts to keep a mobilizer coordinate q within specified bounds.
Definition: Force_MobilityLinearStop.h:65
This is a feedback-controlled force that uses Nose'-Hoover chains to maintain a particular temperatur...
Definition: Force_Thermostat.h:131
ConstantForce(GeneralForceSubsystem &forces, const MobilizedBody &body, const Vec3 &station, const Vec3 &force)
TwoPointLinearSpring(GeneralForceSubsystem &forces, const MobilizedBody &body1, const Vec3 &station1, const MobilizedBody &body2, const Vec3 &station2, Real k, Real x0)
Create a TwoPointLinearSpring.
ConstantTorque(GeneralForceSubsystem &forces, const MobilizedBody &body, const Vec3 &torque)
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(GlobalDamper, GlobalDamperImpl, Force)
This subsystem contains the bodies ("matter") in the multibody system, the mobilizers (joints) that d...
Definition: SimbodyMatterSubsystem.h:133
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(ConstantForce, ConstantForceImpl, Force)
A linear spring between two points, specified as a station on each of two bodies.
Definition: Force.h:221
TwoPointLinearSpring()
Default constructor creates an empty handle.
Definition: Force.h:237
This is the base class from which all Force element handle classes derive.
Definition: Force.h:50
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(TwoPointLinearSpring, TwoPointLinearSpringImpl, Force)
This is a concrete subsystem which can apply arbitrary forces to a MultibodySystem.
Definition: GeneralForceSubsystem.h:47
Arbitrary discrete body forces and mobility (generalized) forces. Useful for applying external forces...
Definition: Force_DiscreteForces.h:41
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 D...
bool isDisabledByDefault() const
Test whether this force element is disabled by default in which case it must be explicitly enabled be...
Real calcPotentialEnergyContribution(const State &state) const
Calculate the potential energy contribution that is made by this force element at the given state.
A linear spring that acts along or around a mobility coordinate to apply a generalized force there.
Definition: Force_MobilityLinearSpring.h:49
This class is used to define new force elements.
Definition: Force_Custom.h:193
ConstantTorque()
Default constructor creates an empty handle.
Definition: Force.h:335
A constant force f (a signed scalar) which acts along the line between two points,...
Definition: Force.h:285
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(TwoPointLinearDamper, TwoPointLinearDamperImpl, Force)
void setDisabledByDefault(bool shouldBeDisabled)
Normally force elements are enabled when defined and can be disabled later.
GlobalDamper(GeneralForceSubsystem &forces, const SimbodyMatterSubsystem &matter, Real damping)
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:169
ConstantForce()
Default constructor creates an empty handle.
Definition: Force.h:318
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:68
This force element represents a uniform gravitational field applied to a set of bodies.
Definition: Force_Gravity.h:70
TwoPointConstantForce()
Default constructor creates an empty handle.
Definition: Force.h:300
const GeneralForceSubsystem & getForceSubsystem() const
Get the GeneralForceSubsystem of which this Force is an element.
A force which resists changes in the distance between two points, acting along the line between those...
Definition: Force.h:254
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:606
This is the vector class intended to appear in user code for large, variable size column vectors.
Definition: BigMatrix.h:171
TwoPointLinearDamper(GeneralForceSubsystem &forces, const MobilizedBody &body1, const Vec3 &station1, const MobilizedBody &body2, const Vec3 &station2, Real damping)
Create a TwoPointLinearDamper.
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(TwoPointConstantForce, TwoPointConstantForceImpl, Force)
GlobalDamper()
Default constructor creates an empty handle.
Definition: Force.h:359
This force element represents a bushing acting to connect a frame F fixed on one body (B1) to a frame...
Definition: Force_LinearBushing.h:101