Description
Proxy to FEA nodes with 3 xyz + 3 rot coords, to grant them the features needed for collision detection.
**Note: the ChContactNodeXYZ would be sufficient if ChNodeFEAxyz were inherited from ChNodeFEAxyzrot, but this does not happen -hopefully it will be, in future API-, so we need to implement also this ChContactNodeXYZROT as a proxy to ChNodeFEAxyzrot, sorry for code redundancy.
#include <ChContactSurfaceNodeCloud.h>

Public Member Functions | |
ChContactNodeXYZROT (ChNodeFEAxyzrot *node=nullptr, ChContactSurface *contact_surface=nullptr) | |
ChNodeFEAxyzrot * | GetNode () |
Access the FEA node to whom this is is a proxy. | |
void | SetNode (ChNodeFEAxyzrot *node) |
Set the FEA node to whom this is a proxy. | |
ChContactSurface * | GetContactSurface () const |
Get the contact surface container. | |
void | SetContactSurface (ChContactSurface *contact_surface) |
Set the contact surface container. | |
virtual ChContactable::eChContactableType | GetContactableType () const override |
This must return the proper eChContactableType enum, for allowing a faster collision dispatcher in ChContactContainer classes (this enum will be used instead of slow dynamic_cast<> to infer the type of ChContactable, if possible) | |
virtual ChVariables * | GetVariables1 () override |
Access variables. | |
virtual bool | IsContactActive () override |
Tell if the object must be considered in collision detection. | |
virtual int | ContactableGet_ndof_x () override |
Get the number of DOFs affected by this object (position part). | |
virtual int | ContactableGet_ndof_w () override |
Get the number of DOFs affected by this object (speed part). | |
virtual void | ContactableGetStateBlock_x (ChState &x) override |
Get all the DOFs packed in a single vector (position part). | |
virtual void | ContactableGetStateBlock_w (ChStateDelta &w) override |
Get all the DOFs packed in a single vector (speed part). | |
virtual void | ContactableIncrementState (const ChState &x, const ChStateDelta &dw, ChState &x_new) override |
Increment the provided state of this object by the given state-delta increment. More... | |
virtual ChVector | GetContactPoint (const ChVector<> &loc_point, const ChState &state_x) override |
Express the local point in absolute frame, for the given state position. | |
virtual ChVector | GetContactPointSpeed (const ChVector<> &loc_point, const ChState &state_x, const ChStateDelta &state_w) override |
Get the absolute speed of a local point attached to the contactable. More... | |
virtual ChVector | GetContactPointSpeed (const ChVector<> &abs_point) override |
Get the absolute speed of point abs_point if attached to the surface. | |
virtual ChCoordsys | GetCsysForCollisionModel () override |
Return the coordinate system for the associated collision model. More... | |
virtual void | ContactForceLoadResidual_F (const ChVector<> &F, const ChVector<> &T, const ChVector<> &abs_point, ChVectorDynamic<> &R) override |
Apply the force & torque, expressed in absolute reference, to the coordinates of the variables. | |
virtual void | ContactForceLoadQ (const ChVector<> &F, const ChVector<> &T, const ChVector<> &point, const ChState &state_x, ChVectorDynamic<> &Q, int offset) override |
Apply the given force & torque at the given point and load the generalized force array. More... | |
virtual void | ComputeJacobianForContactPart (const ChVector<> &abs_point, ChMatrix33<> &contact_plane, ChVariableTupleCarrier_1vars< 6 >::type_constraint_tuple &jacobian_tuple_N, ChVariableTupleCarrier_1vars< 6 >::type_constraint_tuple &jacobian_tuple_U, ChVariableTupleCarrier_1vars< 6 >::type_constraint_tuple &jacobian_tuple_V, bool second) override |
Compute the jacobian(s) part(s) for this contactable item. More... | |
virtual double | GetContactableMass () override |
This can be useful in some SMC code: | |
virtual ChPhysicsItem * | GetPhysicsItem () override |
This is only for backward compatibility. | |
Member Function Documentation
◆ ComputeJacobianForContactPart()
|
overridevirtual |
Compute the jacobian(s) part(s) for this contactable item.
For example, if the contactable is a ChBody, this should update the corresponding 1x6 jacobian.
◆ ContactableIncrementState()
|
inlineoverridevirtual |
Increment the provided state of this object by the given state-delta increment.
Compute: x_new = x + dw.
Implements chrono::ChContactable.
◆ ContactForceLoadQ()
|
inlineoverridevirtual |
Apply the given force & torque at the given point and load the generalized force array.
The force and its application point are specified in the global frame. Each object must set the entries in Q corresponding to its variables, starting at the specified offset. If needed, the object states must be extracted from the provided state position.
Implements chrono::ChContactable.
◆ GetContactPointSpeed()
|
inlineoverridevirtual |
Get the absolute speed of a local point attached to the contactable.
The given point is assumed to be expressed in the local frame of this object. This function must use the provided states.
Implements chrono::ChContactable.
◆ GetCsysForCollisionModel()
|
inlineoverridevirtual |
Return the coordinate system for the associated collision model.
ChCollisionModel might call this to get the position of the contact model (when rigid) and sync it.
Implements chrono::ChContactable.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/fea/ChContactSurfaceNodeCloud.h
- /builds/uwsbel/chrono/src/chrono/fea/ChContactSurfaceNodeCloud.cpp