#include <Force.h>
Public Member Functions | |
virtual | ~Implementation () |
virtual void | calcForce (const State &state, Vector_< SpatialVec > &bodyForces, Vector_< Vec3 > &particleForces, Vector &mobilityForces) const =0 |
Calculate the force for a given state. | |
virtual Real | calcPotentialEnergy (const State &state) const =0 |
Calculate this force's contribution to the potential energy of the System. | |
virtual bool | dependsOnlyOnPositions () const |
Get whether this force depends only on the position variables (q), not on the velocies (u) or auxiliary variables (z). | |
virtual void | realizeTopology (State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeModel (State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeInstance (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeTime (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizePosition (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeVelocity (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeDynamics (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeAcceleration (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. | |
virtual void | realizeReport (const State &state) const |
The following methods may optionally be overridden to do specialized realization for a Force. |
virtual ~Implementation | ( | ) | [inline, virtual] |
virtual void calcForce | ( | const State & | state, | |
Vector_< SpatialVec > & | bodyForces, | |||
Vector_< Vec3 > & | particleForces, | |||
Vector & | mobilityForces | |||
) | const [pure virtual] |
Calculate the force for a given state.
state | the State for which to calculate the force | |
bodyForces | spatial forces on MobilizedBodies are accumulated in this. To apply a force to a body, add it to the appropriate element of this vector. | |
particleForces | forces on particles are accumulated in this. Since particles are not yet implemented, this is ignored. | |
mobilityForces | forces on individual mobilities (elements of the state's u vector) are accumulated in this. To apply a force to a mobility, add it to the appropriate element of this vector. |
virtual Real calcPotentialEnergy | ( | const State & | state | ) | const [pure virtual] |
virtual bool dependsOnlyOnPositions | ( | ) | const [inline, virtual] |
Get whether this force depends only on the position variables (q), not on the velocies (u) or auxiliary variables (z).
The default implementation returns false. If the force depends only on positions, you should override this to return true. This allows force calculations to be optimized in some cases.
virtual void realizeTopology | ( | State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeModel | ( | State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeInstance | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeTime | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizePosition | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeVelocity | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeDynamics | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeAcceleration | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.
virtual void realizeReport | ( | const State & | state | ) | const [inline, virtual] |
The following methods may optionally be overridden to do specialized realization for a Force.