chrono::ChContactNSCrolling< Ta, Tb > Class Template Reference
Description
template<class Ta, class Tb>
class chrono::ChContactNSCrolling< Ta, Tb >
Class for non-smooth contact between two generic ChContactable objects.
It inherits ChContactNSC, that has three reaction forces (N,U,V), but also adds three rolling reaction torques. This means that it requires about twice the memory required by the ChContactNSC. Ta and Tb are of ChContactable sub classes.
#include <ChContactNSCrolling.h>
Inheritance diagram for chrono::ChContactNSCrolling< Ta, Tb >:
Collaboration diagram for chrono::ChContactNSCrolling< Ta, Tb >:
Public Types | |
typedef ChContactTuple< Ta, Tb >::typecarr_a | typecarr_a |
typedef ChContactTuple< Ta, Tb >::typecarr_b | typecarr_b |
Public Types inherited from chrono::ChContactNSC< Ta, Tb > | |
typedef ChContactTuple< Ta, Tb >::typecarr_a | typecarr_a |
typedef ChContactTuple< Ta, Tb >::typecarr_b | typecarr_b |
Public Types inherited from chrono::ChContactTuple< Ta, Tb > | |
typedef Ta::type_variable_tuple_carrier | typecarr_a |
typedef Tb::type_variable_tuple_carrier | typecarr_b |
Public Member Functions | |
ChContactNSCrolling (ChContactContainer *contact_container, Ta *obj_A, Tb *obj_B, const ChCollisionInfo &cinfo, const ChContactMaterialCompositeNSC &mat, double min_speed) | |
virtual void | Reset (Ta *obj_A, Tb *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. | |
ChConstraint * | GetConstraintRu () |
Access the constraints. | |
ChConstraint * | GetConstraintRv () |
ChConstraint * | GetConstraintRx () |
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< Ta, Tb > | |
ChContactNSC (ChContactContainer *contact_container, Ta *obj_A, Tb *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. | |
ChConstraint * | GetConstraintNx () |
Access the constraints. | |
ChConstraint * | GetConstraintTu () |
ChConstraint * | GetConstraintTv () |
Public Member Functions inherited from chrono::ChContactTuple< Ta, Tb > | |
ChContactTuple (ChContactContainer *contact_container, Ta *obj_A, Tb *obj_B) | |
void | Reset_cinfo (Ta *obj_A, Tb *obj_B, const 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 ChVector3d & | GetContactP1 () const |
Get the contact point 1, in absolute coordinates. | |
const ChVector3d & | GetContactP2 () const |
Get the contact point 2, in absolute coordinates. | |
const ChVector3d & | 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 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 | |
ChConstraintTwoTuplesRollingN< typecarr_a, typecarr_b > | Rx |
ChConstraintTwoTuplesRollingT< typecarr_a, typecarr_b > | Ru |
ChConstraintTwoTuplesRollingT< typecarr_a, typecarr_b > | Rv |
ChVector3d | react_torque |
float | complianceRoll |
float | complianceSpin |
Protected Attributes inherited from chrono::ChContactNSC< Ta, Tb > | |
float * | reactions_cache |
N,U,V reactions which might be stored in a persistent contact manifold. | |
ChConstraintTwoTuplesContactN< typecarr_a, typecarr_b > | Nx |
The three scalar constraints, to be fed into the system solver. More... | |
ChConstraintTwoTuplesFrictionT< typecarr_a, typecarr_b > | Tu |
ChConstraintTwoTuplesFrictionT< typecarr_a, typecarr_b > | Tv |
ChVector3d | react_force |
double | compliance |
double | complianceT |
double | restitution |
double | dampingf |
double | min_rebounce_speed |
Protected Attributes inherited from chrono::ChContactTuple< Ta, Tb > | |
ChContactContainer * | container |
associated contact container | |
Ta * | objA |
first ChContactable object in the pair | |
Tb * | objB |
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 | |
Constructor & Destructor Documentation
◆ ChContactNSCrolling()
template<class Ta , class Tb >
|
inline |
- Parameters
-
contact_container contact container obj_A contactable object A obj_B contactable object B cinfo data for the collision pair mat composite material min_speed minimum speed for rebounce
Member Function Documentation
◆ Reset()
template<class Ta , class Tb >
|
inlineoverridevirtual |
Reinitialize this contact for reuse.
- Parameters
-
obj_A contactable object A obj_B contactable object B cinfo data for the collision pair mat composite material min_speed minimum speed for rebounce
Reimplemented from chrono::ChContactNSC< Ta, Tb >.
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/physics/ChContactNSCrolling.h