Description
template<class Ta, class Tb>
class chrono::ChContactTuple< Ta, Tb >
Base class for contact between two generic ChContactable objects.
T1 and T2 are of ChContactable sub classes.
#include <ChContactTuple.h>


| Public Types | |
| typedef Ta::type_variable_tuple_carrier | typecarr_a | 
| typedef Tb::type_variable_tuple_carrier | typecarr_b | 
| Public Member Functions | |
| ChContactTuple (ChContactContainer *mcontainer, Ta *mobjA, Tb *mobjB, const collision::ChCollisionInfo &cinfo) | |
| void | Reset_cinfo (Ta *mobjA, Tb *mobjB, const collision::ChCollisionInfo &cinfo) | 
| Reinitialize geometric information for this contact for reuse.  More... | |
| Ta * | GetObjA () | 
| Get the colliding object A, with point P1. | |
| Tb * | GetObjB () | 
| Get the colliding object B, with point P2. | |
| ChCoordsys | GetContactCoords () const | 
| Get the contact coordinate system, expressed in absolute frame.  More... | |
| const ChMatrix33 & | GetContactPlane () const | 
| Returns the pointer to a contained 3x3 matrix representing the UV and normal directions of the contact.  More... | |
| const ChVector & | GetContactP1 () const | 
| Get the contact point 1, in absolute coordinates. | |
| const ChVector & | GetContactP2 () const | 
| Get the contact point 2, in absolute coordinates. | |
| const ChVector & | GetContactNormal () const | 
| Get the contact normal, in absolute coordinates. | |
| double | GetContactDistance () const | 
| Get the contact distance. | |
| double | GetEffectiveCurvatureRadius () const | 
| Get the effective radius of curvature. | |
| virtual ChVector | GetContactForce () const | 
| Get the contact force, if computed, in contact coordinate system. | |
| virtual void | ContIntStateGatherReactions (const unsigned int off_L, ChVectorDynamic<> &L) | 
| virtual void | ContIntStateScatterReactions (const unsigned int off_L, const ChVectorDynamic<> &L) | 
| virtual void | ContIntLoadResidual_CqL (const unsigned int off_L, ChVectorDynamic<> &R, const ChVectorDynamic<> &L, const double c) | 
| virtual void | ContIntLoadConstraint_C (const unsigned int off_L, ChVectorDynamic<> &Qc, const double c, bool do_clamp, double recovery_clamp) | 
| virtual void | ContIntLoadResidual_F (ChVectorDynamic<> &R, const double c) | 
| virtual void | ContInjectKRMmatrices (ChSystemDescriptor &mdescriptor) | 
| virtual void | ContKRMmatricesLoad (double Kfactor, double Rfactor) | 
| virtual void | ContIntToDescriptor (const unsigned int off_L, const ChVectorDynamic<> &L, const ChVectorDynamic<> &Qc) | 
| virtual void | ContIntFromDescriptor (const unsigned int off_L, ChVectorDynamic<> &L) | 
| virtual void | InjectConstraints (ChSystemDescriptor &mdescriptor) | 
| virtual void | ConstraintsBiReset () | 
| virtual void | ConstraintsBiLoad_C (double factor=1., double recovery_clamp=0.1, bool do_clamp=false) | 
| virtual void | ConstraintsFetch_react (double factor) | 
| Protected Attributes | |
| ChContactContainer * | container | 
| associated contact container | |
| Ta * | objA | 
| first ChContactable object in the pair | |
| Tb * | objB | 
| second ChContactable object in the pair | |
| ChVector | p1 | 
| max penetration point on geo1, after refining, in abs space | |
| ChVector | p2 | 
| max penetration point on geo2, after refining, in abs space | |
| ChVector | normal | 
| normal, on surface of master reference (geo1) | |
| ChMatrix33 | contact_plane | 
| the plane of contact (X is normal direction) | |
| double | norm_dist | 
| penetration distance (negative if going inside) after refining | |
| double | eff_radius | 
| effective radius of curvature at contact | |
Constructor & Destructor Documentation
◆ ChContactTuple()
| 
 | inline | 
- Parameters
- 
  mcontainer contact container mobjA ChContactable object A mobjB ChContactable object B cinfo data for the contact pair 
Member Function Documentation
◆ ContIntFromDescriptor()
| 
 | inlinevirtual | 
- Parameters
- 
  off_L offset in L L the L vector 
◆ ContIntLoadConstraint_C()
| 
 | inlinevirtual | 
- Parameters
- 
  off_L offset in Qc residual Qc result: the Qc residual, Qc += c*C c a scaling factor do_clamp apply clamping to c*C? recovery_clamp value for min/max clamping of c*C 
◆ ContIntLoadResidual_CqL()
| 
 | inlinevirtual | 
- Parameters
- 
  off_L offset in L multipliers R result: the R residual, R += c*Cq'*L L the L vector c a scaling factor 
◆ ContIntToDescriptor()
| 
 | inlinevirtual | 
- Parameters
- 
  off_L offset in L, Qc L the L vector Qc the Qc vector 
◆ GetContactCoords()
| 
 | inline | 
Get the contact coordinate system, expressed in absolute frame.
This represents the 'main' reference of the link: reaction forces are expressed in this coordinate system. Its origin is point P2. (It is the coordinate system of the contact plane and normal)
◆ GetContactPlane()
| 
 | inline | 
Returns the pointer to a contained 3x3 matrix representing the UV and normal directions of the contact.
In detail, the X versor (the 1s column of the matrix) represents the direction of the contact normal.
◆ Reset_cinfo()
| 
 | inline | 
Reinitialize geometric information for this contact for reuse.
- Parameters
- 
  mobjA ChContactable object A mobjB ChContactable object B cinfo data for the contact pair 
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/physics/ChContactTuple.h
