chrono::ChContactNSCrolling Class Reference

Description

Class for non-smooth contact with rolling between two generic ChContactable objects.

It inherits ChContactNSC, which has three reaction forces (N,U,V) and adds three rolling reaction torques.

#include <ChContactNSCrolling.h>

Inheritance diagram for chrono::ChContactNSCrolling:
Collaboration diagram for chrono::ChContactNSCrolling:

Public Member Functions

 ChContactNSCrolling (ChContactContainer *contact_container, ChContactable *obj_A, ChContactable *obj_B, const ChCollisionInfo &cinfo, const ChContactMaterialCompositeNSC &mat, double min_speed)
 
virtual void Reset (ChContactable *obj_A, ChContactable *obj_B, const ChCollisionInfo &cinfo, const ChContactMaterialCompositeNSC &mat, double min_speed) override
 Reinitialize this contact for reuse. More...
 
virtual ChVector3d GetContactTorque ()
 Get the contact force, if computed, in contact coordinate system.
 
virtual float GetRollingFriction ()
 Get the contact rolling friction coefficient.
 
virtual void SetRollingFriction (float mf)
 Set the contact rolling friction coefficient.
 
virtual float GetSpinningFriction ()
 Get the contact spinning friction coefficient.
 
virtual void SetSpinningFriction (float mf)
 Set the contact spinning friction coefficient.
 
ChConstraintGetConstraintRu ()
 Access the constraints.
 
ChConstraintGetConstraintRv ()
 
ChConstraintGetConstraintRx ()
 
virtual void ContIntStateGatherReactions (const unsigned int off_L, ChVectorDynamic<> &L) override
 
virtual void ContIntStateScatterReactions (const unsigned int off_L, const ChVectorDynamic<> &L) override
 
virtual void ContIntLoadResidual_CqL (const unsigned int off_L, ChVectorDynamic<> &R, const ChVectorDynamic<> &L, const double c) override
 
virtual void ContIntLoadConstraint_C (const unsigned int off_L, ChVectorDynamic<> &Qc, const double c, bool do_clamp, double recovery_clamp) override
 
virtual void ContIntToDescriptor (const unsigned int off_L, const ChVectorDynamic<> &L, const ChVectorDynamic<> &Qc) override
 
virtual void ContIntFromDescriptor (const unsigned int off_L, ChVectorDynamic<> &L) override
 
virtual void InjectConstraints (ChSystemDescriptor &descriptor) override
 
virtual void ConstraintsBiReset () override
 
virtual void ConstraintsBiLoad_C (double factor=1., double recovery_clamp=0.1, bool do_clamp=false) override
 
virtual void ConstraintsFetch_react (double factor) override
 
- Public Member Functions inherited from chrono::ChContactNSC
 ChContactNSC (ChContactContainer *contact_container, ChContactable *obj_A, ChContactable *obj_B, const ChCollisionInfo &cinfo, const ChContactMaterialCompositeNSC &mat, double min_speed)
 
virtual ChVector3d GetContactForce () const override
 Get the contact force, if computed, in contact coordinate system.
 
virtual double GetFriction ()
 Get the contact friction coefficient.
 
virtual void SetFriction (double mf)
 Set the contact friction coefficient.
 
ChConstraintGetConstraintNx ()
 Access the constraints.
 
ChConstraintGetConstraintTu ()
 
ChConstraintGetConstraintTv ()
 
- Public Member Functions inherited from chrono::ChContact
void Reset_cinfo (ChContactable *obj_A, ChContactable *obj_B, const ChCollisionInfo &cinfo)
 Reinitialize geometric information for this contact for reuse. More...
 
ChContactableGetObjA ()
 Get the colliding object A, with point P1.
 
ChContactableGetObjB ()
 Get the colliding object B, with point P2.
 
ChCoordsys GetContactCoords () const
 Get the contact coordinate system, expressed in absolute frame. More...
 
const ChMatrix33GetContactPlane () const
 Returns the pointer to a contained 3x3 matrix representing the UV and normal directions of the contact. More...
 
const ChVector3dGetContactP1 () const
 Get the contact point 1, in absolute coordinates.
 
const ChVector3dGetContactP2 () const
 Get the contact point 2, in absolute coordinates.
 
const ChVector3dGetContactNormal () 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 ChVector3d GetContactTorque () const
 Get the contact torque, if computed, in contact coordinate system.
 
virtual void ContIntLoadResidual_F (ChVectorDynamic<> &R, const double c)
 
virtual void ContInjectKRMmatrices (ChSystemDescriptor &mdescriptor)
 
virtual void ContKRMmatricesLoad (double Kfactor, double Rfactor)
 

Protected Attributes

ChConstraintRollingNormal Rx
 normal rolling constraint
 
ChConstraintRollingTangential Ru
 first tangential rolling constraint
 
ChConstraintRollingTangential Rv
 second tangential rolling constraint
 
ChVector3d react_torque
 constraint reaction torque
 
float complianceRoll
 
float complianceSpin
 
- Protected Attributes inherited from chrono::ChContactNSC
ChConstraintContactNormal Nx
 normal constraint
 
ChConstraintContactTangential Tu
 first tangential sliding constraint
 
ChConstraintContactTangential Tv
 second tangential sliding constraint
 
float * reactions_cache
 N,U,V reactions potentially stored in a persistent contact manifold.
 
ChVector3d react_force
 constraint reaction force
 
double compliance
 
double complianceT
 
double restitution
 
double dampingf
 
double min_rebounce_speed
 
- Protected Attributes inherited from chrono::ChContact
ChContactContainercontainer
 associated contact container
 
ChContactableobjA
 first ChContactable object in the pair
 
ChContactableobjB
 second ChContactable object in the pair
 
ChVector3d p1
 max penetration point on geo1, after refining, in abs space
 
ChVector3d p2
 max penetration point on geo2, after refining, in abs space
 
ChVector3d 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
 

Additional Inherited Members

- Protected Member Functions inherited from chrono::ChContact
 ChContact (ChContactContainer *contact_container, ChContactable *obj_A, ChContactable *obj_B)
 

Constructor & Destructor Documentation

◆ ChContactNSCrolling()

chrono::ChContactNSCrolling::ChContactNSCrolling ( ChContactContainer contact_container,
ChContactable obj_A,
ChContactable obj_B,
const ChCollisionInfo cinfo,
const ChContactMaterialCompositeNSC mat,
double  min_speed 
)
Parameters
contact_containercontact container
obj_Acontactable object A
obj_Bcontactable object B
cinfodata for the collision pair
matcomposite material
min_speedminimum speed for rebounce

Member Function Documentation

◆ Reset()

void chrono::ChContactNSCrolling::Reset ( ChContactable obj_A,
ChContactable obj_B,
const ChCollisionInfo cinfo,
const ChContactMaterialCompositeNSC mat,
double  min_speed 
)
overridevirtual

Reinitialize this contact for reuse.

Parameters
obj_Acontactable object A
obj_Bcontactable object B
cinfodata for the collision pair
matcomposite material
min_speedminimum speed for rebounce

Reimplemented from chrono::ChContactNSC.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/physics/ChContactNSCrolling.h
  • /builds/uwsbel/chrono/src/chrono/physics/ChContactNSCrolling.cpp