Simbody  3.7
SimTK::ContactPatch Class Reference

A ContactPatch is the description of the forces and the deformed shape of the contact surfaces that result from compliant contact interactions. More...

Public Member Functions

void clear ()
 
bool isValid () const
 
const ContactForcegetContactForce () const
 
int getNumDetails () const
 
const ContactDetailgetContactDetail (int n) const
 
void changeFrameInPlace (const Transform &X_BA)
 This object is currently in an assumed frame A; given a transform from another frame B to A we'll re-measure and re-express this in B. More...
 

Public Attributes

ContactForce m_resultant
 
Array_< ContactDetailm_elements
 

Detailed Description

A ContactPatch is the description of the forces and the deformed shape of the contact surfaces that result from compliant contact interactions.

This should not be confused with the Contact object that describes only the overlap in undeformed surface geometry and knows nothing of forces or materials. Although there are several qualitatively different kinds of compliant contact models, we assume that each can be described by some number of contact "elements" and report the detailed results in terms of those elements. Depending on the model, the elements may be associated with the surfaces or may be associated with the patch. Either way, every element applies equal and opposite forces to both surfaces. There is not necessarily any direct correspondence between elements on one surface with elements on the other.

A Hertz contact will have only a single element that belongs to the patch, while an elastic foundation contact will have many, with each element associated with one or the other surface. Only the elements that are currently participating in contact will have entries here; the surface and element id is stored with each piece of ContactDetail information. There is also some basic information needed to advance the simulation and that is common to all contact patch types and stored as a ContactForce resultant.

Member Function Documentation

◆ clear()

void SimTK::ContactPatch::clear ( )
inline

◆ isValid()

bool SimTK::ContactPatch::isValid ( ) const
inline

◆ getContactForce()

const ContactForce& SimTK::ContactPatch::getContactForce ( ) const
inline

◆ getNumDetails()

int SimTK::ContactPatch::getNumDetails ( ) const
inline

◆ getContactDetail()

const ContactDetail& SimTK::ContactPatch::getContactDetail ( int  n) const
inline

◆ changeFrameInPlace()

void SimTK::ContactPatch::changeFrameInPlace ( const Transform X_BA)
inline

This object is currently in an assumed frame A; given a transform from another frame B to A we'll re-measure and re-express this in B.

This is an expensive operation.

Member Data Documentation

◆ m_resultant

ContactForce SimTK::ContactPatch::m_resultant

◆ m_elements

Array_<ContactDetail> SimTK::ContactPatch::m_elements

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