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>;
62 void disable(
State&)
const;
66 void enable(
State&)
const;
70 bool isDisabled(
const State&)
const;
76 void setDisabledByDefault(
bool shouldBeDisabled);
80 bool isDisabledByDefault()
const;
128 void calcForceContribution(
const State& state,
131 Vector& mobilityForces)
const;
143 Real calcPotentialEnergyContribution(
const State& state)
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;
383 Vec3 getGravity()
const;
384 void setGravity(
const Vec3& g);
385 Real getZeroHeight()
const;
386 void setZeroHeight(
Real height);
392 #endif // SimTK_SIMBODY_FORCE_H_ This is the base class from which all Force element handle classes derive.
Definition: Force.h:50
A constant force applied to a body station.
Definition: Force.h:313
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
This is a feedback-controlled force that uses Nose'-Hoover chains to maintain a particular temperatur...
Definition: Force_Thermostat.h:131
This is the vector class intended to appear in user code for large, variable size column vectors...
Definition: BigMatrix.h:171
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
This force element represents a uniform gravitational field applied to a set of bodies.
Definition: Force_Gravity.h:70
A linear spring that acts along or around a mobility coordinate to apply a generalized force there...
Definition: Force_MobilityLinearSpring.h:49
A force which resists changes in the distance between two points, acting along the line between those...
Definition: Force.h:254
TwoPointLinearDamper()
Default constructor creates an empty handle.
Definition: Force.h:269
A discrete mobility (generalized) force f applied to a particular mobility that is specified at const...
Definition: Force_MobilityDiscreteForce.h:52
Model a compliant stop element that acts to keep a mobilizer coordinate q within specified bounds...
Definition: Force_MobilityLinearStop.h:65
Every Simbody header and source file should include this header before any other Simbody header...
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:593
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:276
A constant generalized force f (a scalar) applied to a mobility.
Definition: Force_MobilityConstantForce.h:45
GlobalDamper()
Default constructor creates an empty handle.
Definition: Force.h:359
This class is used to define new force elements.
Definition: Force_Custom.h:193
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix.
ConstantTorque()
Default constructor creates an empty handle.
Definition: Force.h:335
This type represents the index of a Force element within its subsystem.
#define SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(DERIVED, DERIVED_IMPL, PARENT)
Definition: PrivateImplementation.h:343
Force()
Default constructor for Force handle base class does nothing.
Definition: Force.h:152
A constant force f (a signed scalar) which acts along the line between two points, specified as a station on each of two bodies.
Definition: Force.h:285
TwoPointLinearSpring()
Default constructor creates an empty handle.
Definition: Force.h:237
ConstantForce()
Default constructor creates an empty handle.
Definition: Force.h:318
A constant torque to a body.
Definition: Force.h:330
Force(ForceImpl *r)
Use this in a derived Force handle class constructor to supply the concrete implementation object to ...
Definition: Force.h:206
This is a concrete subsystem which can apply arbitrary forces to a MultibodySystem.
Definition: GeneralForceSubsystem.h:47
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:72
A linear damper that acts along or around a mobility coordinate to apply a generalized force there...
Definition: Force_MobilityLinearDamper.h:46
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:167
TwoPointConstantForce()
Default constructor creates an empty handle.
Definition: Force.h:300
A linear spring between two points, specified as a station on each of two bodies. ...
Definition: Force.h:221
This subsystem contains the bodies ("matter") in the multibody system, the mobilizers (joints) that d...
Definition: SimbodyMatterSubsystem.h:133
Arbitrary discrete body forces and mobility (generalized) forces. Useful for applying external forces...
Definition: Force_DiscreteForces.h:41
A general energy "drain" on the system.
Definition: Force.h:354