template<class Ta, class Tb>
class chrono::ChContactSMC< Ta, Tb >
Class for smooth (penalty-based) contact between two generic contactable objects.
Ta and Tb are of ChContactable sub classes.
|
| ChContactSMC (ChContactContainer *mcontainer, Ta *mobjA, Tb *mobjB, const collision::ChCollisionInfo &cinfo, const ChMaterialCompositeSMC &mat) |
|
virtual ChVector | GetContactForce () const override |
| Get the contact force, if computed, in contact coordinate system.
|
|
double | GetContactPenetration () const |
| Get the contact penetration (positive if there is overlap).
|
|
ChVector | GetContactForceAbs () const |
| Get the contact force, expressed in the frame of the contact.
|
|
const ChKblockGeneric * | GetJacobianKRM () const |
| Access the proxy to the Jacobian.
|
|
const ChMatrixDynamic< double > * | GetJacobianK () const |
|
const ChMatrixDynamic< double > * | GetJacobianR () const |
|
void | Reset (Ta *mobjA, Tb *mobjB, const collision::ChCollisionInfo &cinfo, const ChMaterialCompositeSMC &mat) |
| Reinitialize this contact for reuse. More...
|
|
ChVector | CalculateForce (double delta, const ChVector<> &normal_dir, const ChVector<> &vel1, const ChVector<> &vel2, const ChMaterialCompositeSMC &mat) |
| Calculate contact force, expressed in absolute coordinates. More...
|
|
void | CalculateQ (const ChState &stateA_x, const ChStateDelta &stateA_w, const ChState &stateB_x, const ChStateDelta &stateB_w, const ChMaterialCompositeSMC &mat, ChVectorDynamic<> &Q) |
| Compute all forces in a contiguous array. More...
|
|
void | CreateJacobians () |
| Create the Jacobian matrices. More...
|
|
void | CalculateJacobians (const ChMaterialCompositeSMC &mat) |
| Calculate Jacobian of generalized contact forces.
|
|
virtual void | ContIntLoadResidual_F (ChVectorDynamic<> &R, const double c) override |
| Apply contact forces to the two objects. More...
|
|
virtual void | ContInjectKRMmatrices (ChSystemDescriptor &mdescriptor) override |
| Inject Jacobian blocks into the system descriptor. More...
|
|
virtual void | ContKRMmatricesLoad (double Kfactor, double Rfactor) override |
| Compute Jacobian of contact forces.
|
|
| 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 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 | 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) |
|