Every custom force requires implementation of a class that is derived from this abstract class. See Force::Custom for details.
More...
Every custom force requires implementation of a class that is derived from this abstract class. See Force::Custom for details.
◆ ~Implementation()
virtual SimTK::Force::Custom::Implementation::~Implementation |
( |
| ) |
|
|
inlinevirtual |
◆ calcForce()
Calculate the force for a given state.
- Parameters
-
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. |
◆ calcPotentialEnergy()
virtual Real SimTK::Force::Custom::Implementation::calcPotentialEnergy |
( |
const State & |
state | ) |
const |
|
pure virtual |
Calculate this force's contribution to the potential energy of the System.
- Parameters
-
state | the State for which to calculate the potential energy |
◆ dependsOnlyOnPositions()
virtual bool SimTK::Force::Custom::Implementation::dependsOnlyOnPositions |
( |
| ) |
const |
|
inlinevirtual |
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.
◆ shouldBeParallelIfPossible()
virtual bool SimTK::Force::Custom::Implementation::shouldBeParallelIfPossible |
( |
| ) |
const |
|
inlinevirtual |
Returns a boolean flag telling Simbody whether this Force type should be calculated in parallel if possible.
By default, this method returns false.
- Note
- : By overriding this method, you are telling Simbody that (1) the Force class is computationally expensive to calculate and (2) the Force class is thread safe such that multiple instances of the Force class will not rely on any shared cache variables in the state. See getStateLock() in SimTK::State.
◆ realizeTopology()
virtual void SimTK::Force::Custom::Implementation::realizeTopology |
( |
State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeModel()
virtual void SimTK::Force::Custom::Implementation::realizeModel |
( |
State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeInstance()
virtual void SimTK::Force::Custom::Implementation::realizeInstance |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeTime()
virtual void SimTK::Force::Custom::Implementation::realizeTime |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizePosition()
virtual void SimTK::Force::Custom::Implementation::realizePosition |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeVelocity()
virtual void SimTK::Force::Custom::Implementation::realizeVelocity |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeDynamics()
virtual void SimTK::Force::Custom::Implementation::realizeDynamics |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeAcceleration()
virtual void SimTK::Force::Custom::Implementation::realizeAcceleration |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ realizeReport()
virtual void SimTK::Force::Custom::Implementation::realizeReport |
( |
const State & |
state | ) |
const |
|
inlinevirtual |
The following methods may optionally be overridden to do specialized realization for a Force.
◆ calcDecorativeGeometryAndAppend()
Override this if you want to generate some geometry for the visualizer to display.
Be sure to append the geometry to the list.
The documentation for this class was generated from the following file: