MULTIBODY SIMULATION SOFTWARE - API documentation
Public Member Functions | Protected Attributes
chrono::ChContactNode Class Reference

#include <CHcontactNode.h>

Collaboration diagram for chrono::ChContactNode:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ChContactNode (collision::ChCollisionModel *mmodA, collision::ChCollisionModel *mmodB, const ChLcpVariablesBody *varA, const ChLcpVariablesNode *varB, const ChFrame<> *frameA, const ChVector<> *posB, const ChVector<> &vpA, const ChVector<> &vpB, const ChVector<> &vN, double mdistance, float *mreaction_cache, float mfriction)
virtual void Reset (collision::ChCollisionModel *mmodA, collision::ChCollisionModel *mmodB, const ChLcpVariablesBody *varA, const ChLcpVariablesNode *varB, const ChFrame<> *frameA, const ChVector<> *posB, const ChVector<> &vpA, const ChVector<> &vpB, const ChVector<> &vN, double mdistance, float *mreaction_cache, float mfriction)
virtual ChCoordsys GetContactCoords ()
ChMatrix33< float > * GetContactPlane ()
virtual ChVector GetContactP1 ()
virtual ChVector GetContactP2 ()
virtual ChVector< float > GetContactNormal ()
virtual double GetContactDistance ()
virtual ChVector GetContactForce ()
virtual float GetFriction ()
virtual void SetFriction (float mf)
virtual
collision::ChCollisionModel
GetModelA ()
virtual
collision::ChCollisionModel
GetModelB ()
void InjectConstraints (ChLcpSystemDescriptor &mdescriptor)
void ConstraintsBiReset ()
void ConstraintsBiLoad_C (double factor=1., double recovery_clamp=0.1, bool do_clamp=false)
void ConstraintsFetch_react (double factor)
void ConstraintsLiLoadSuggestedSpeedSolution ()
void ConstraintsLiLoadSuggestedPositionSolution ()
void ConstraintsLiFetchSuggestedSpeedSolution ()
void ConstraintsLiFetchSuggestedPositionSolution ()

Protected Attributes

collision::ChCollisionModelmodA
collision::ChCollisionModelmodB
ChVector p1
ChVector p2
ChVector< float > normal
ChMatrix33< float > contact_plane
double norm_dist
float * reactions_cache
ChLcpConstraintNodeContactN Nx
ChLcpConstraintNodeFrictionT Tu
ChLcpConstraintNodeFrictionT Tv
ChVector react_force

Detailed Description

Class representing an unilateral contact constraint between a 3DOF node and a 6DOF body


Constructor & Destructor Documentation

chrono::ChContactNode::ChContactNode ( collision::ChCollisionModel mmodA,
collision::ChCollisionModel mmodB,
const ChLcpVariablesBody varA,
const ChLcpVariablesNode varB,
const ChFrame<> *  frameA,
const ChVector<> *  posB,
const ChVector<> &  vpA,
const ChVector<> &  vpB,
const ChVector<> &  vN,
double  mdistance,
float *  mreaction_cache,
float  mfriction 
)

< pass A vars

< pass B vars

< pass A frame

< pass B frame

< pass coll.point on A

< pass coll.point on B

< pass coll.normal, respect to A

< pass the distance (negative for penetration)

< pass the pointer to array of N,U,V reactions: a cache in contact manifold. If not available=0.

< friction coeff.

Parameters:
mmodAmodel A (body)
mmodBmodel B (node)
varApass B vars (body)
varBpass A vars (node)
frameApass A frame
posBpass B position
vpApass coll.point on A, in absolute coordinates
vpBpass coll.point on B, in absolute coordinates
vNpass coll.normal, respect to A, in absolute coordinates
mdistancepass the distance (negative for penetration)
mreaction_cachepass the pointer to array of N,U,V reactions: a cache in contact manifold. If not available=0.
mfrictionfriction coeff.

Member Function Documentation

ChCoordsys chrono::ChContactNode::GetContactCoords ( ) [virtual]

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)

ChMatrix33<float>* chrono::ChContactNode::GetContactPlane ( )

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.

void chrono::ChContactNode::Reset ( collision::ChCollisionModel mmodA,
collision::ChCollisionModel mmodB,
const ChLcpVariablesBody varA,
const ChLcpVariablesNode varB,
const ChFrame<> *  frameA,
const ChVector<> *  posB,
const ChVector<> &  vpA,
const ChVector<> &  vpB,
const ChVector<> &  vN,
double  mdistance,
float *  mreaction_cache,
float  mfriction 
) [virtual]

Initialize again this constraint.

Parameters:
mmodAmodel A (body)
mmodBmodel B (node)
varApass B vars (body)
varBpass A vars (node)
frameApass A frame
posBpass B position
vpApass coll.point on A, in absolute coordinates
vpBpass coll.point on B, in absolute coordinates
vNpass coll.normal, respect to A, in absolute coordinates
mdistancepass the distance (negative for penetration)
mreaction_cachepass the pointer to array of N,U,V reactions: a cache in contact manifold. If not available=0.
mfrictionfriction coeff.

Member Data Documentation

ChVector<float> chrono::ChContactNode::normal [protected]

normal, on surface of master reference (geo1)

the plane of contact (X is normal direction)


CHRONO::ENGINE
C++ library for multibody simulation, (C) Alessandro Tasora
This API documentation has been generated on Tue Jul 10 2012 by Doxygen