Simbody  3.6
SimTK::ContactForceGenerator::HertzCircular Class Reference

This ContactForceGenerator handles contact between non-conforming objects that meet at a point and generate a circular contact patch; those generate a CircularPointContact tracking object. More...

+ Inheritance diagram for SimTK::ContactForceGenerator::HertzCircular:

Public Member Functions

 HertzCircular ()
 
void calcContactForce (const State &state, const Contact &overlapping, const SpatialVec &V_S1S2, ContactForce &contactForce) const override
 The CompliantContactSubsystem will invoke this method on any active contact pair of the right Contact type for which there is overlapping undeformed geometry. More...
 
void calcContactPatch (const State &state, const Contact &overlapping, const SpatialVec &V_S1S2, ContactPatch &patch) const override
 The CompliantContactSubsystem will invoke this method in response to a user request for contact patch information; this returns force, potential energy, and power as above but may also require expensive computations that can be avoided in calcContactForce(). More...
 
- Public Member Functions inherited from SimTK::ContactForceGenerator
 ContactForceGenerator (ContactTypeId type)
 Base class constructor for use by the concrete classes. More...
 
ContactTypeId getContactTypeId () const
 Return the ContactTypeId handled by this force generator. More...
 
const CompliantContactSubsystemgetCompliantContactSubsystem () const
 
void setCompliantContactSubsystem (const CompliantContactSubsystem *sub)
 
virtual ~ContactForceGenerator ()
 Base class destructor is virtual but does nothing. More...
 

Detailed Description

This ContactForceGenerator handles contact between non-conforming objects that meet at a point and generate a circular contact patch; those generate a CircularPointContact tracking object.

Although this is just a special case of elliptical contact we treat it separately so we can take advantage of the significant simplifications afforded by circular contact.

Constructor & Destructor Documentation

◆ HertzCircular()

Member Function Documentation

◆ calcContactForce()

void SimTK::ContactForceGenerator::HertzCircular::calcContactForce ( const State state,
const Contact overlapping,
const SpatialVec V_S1S2,
ContactForce contactForce 
) const
overridevirtual

The CompliantContactSubsystem will invoke this method on any active contact pair of the right Contact type for which there is overlapping undeformed geometry.

The force generator is expected to calculate a point in space where equal and opposite contact forces should be applied to the two contacting rigid bodies, the potential energy currently stored in this contact, and the power (energy dissipation rate). State should be used for instance info only; use position information from overlapping and velocity information from the supplied arguments. That allows this method to be used as an operator, for example to calculate potential energy when velocities are not yet available.

Implements SimTK::ContactForceGenerator.

◆ calcContactPatch()

void SimTK::ContactForceGenerator::HertzCircular::calcContactPatch ( const State state,
const Contact overlapping,
const SpatialVec V_S1S2,
ContactPatch patch 
) const
overridevirtual

The CompliantContactSubsystem will invoke this method in response to a user request for contact patch information; this returns force, potential energy, and power as above but may also require expensive computations that can be avoided in calcContactForce().

Don't use the state for position or velocity information; the only allowed positions are in the Contact object and the velocities are supplied explicitly.

Implements SimTK::ContactForceGenerator.


The documentation for this class was generated from the following file: