Project Chrono: chrono::fea::ChContactNodeXYZ Class Reference

Public Member Functions | List of all members
chrono::fea::ChContactNodeXYZ Class Reference
Chrono::Engine » Finite Element Analysis » Contact

## Description

Proxy to FEA nodes, to grant them the features needed for collision detection.

`#include <ChContactSurfaceNodeCloud.h>`

Inheritance diagram for chrono::fea::ChContactNodeXYZ:
[legend]

## Public Member Functions
| ChContactNodeXYZ (ChNodeFEAxyz *node=nullptr, ChContactSurface *contact_surface=nullptr)
ChNodeFEAxyz * | GetNode ()
| Access the FEA node to whom this is is a proxy.
void | SetNode (ChNodeFEAxyz *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 | GetContactableNumCoordsPosLevel () override
| Get the number of DOFs affected by this object (position part).
virtual int | GetContactableNumCoordsVelLevel () override
| Get the number of DOFs affected by this object (speed part).
virtual void | ContactableGetStateBlockPosLevel (ChState &x) override
| Get all the DOFs packed in a single vector (position part).
virtual void | ContactableGetStateBlockVelLevel (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.
virtual ChVector3d | GetContactPoint (const ChVector3d &loc_point, const ChState &state_x) override
| Express the local point in absolute frame, for the given state position.
virtual ChVector3d | GetContactPointSpeed (const ChVector3d &loc_point, const ChState &state_x, const ChStateDelta &state_w) override
| Get the absolute speed of a local point attached to the contactable.
virtual ChVector3d | GetContactPointSpeed (const ChVector3d &abs_point) override
| Get the absolute speed of point abs_point if attached to the surface.
virtual ChFrame | GetCollisionModelFrame () override
| Return the frame of the associated collision model relative to the contactable object.
virtual void | ContactForceLoadResidual_F (const ChVector3d &F, const ChVector3d &T, const ChVector3d &abs_point, ChVectorDynamic<> &R) override
| Apply the force & torque, expressed in absolute reference, to the coordinates of the variables.
virtual void | ContactComputeQ (const ChVector3d &F, const ChVector3d &T, const ChVector3d &point, const ChState &state_x, ChVectorDynamic<> &Q, int offset) override
| Compute a contiguous vector of generalized forces Q from a given force & torque at the given point.
virtual void | ComputeJacobianForContactPart (const ChVector3d &abs_point, ChMatrix33<> &contact_plane, type_constraint_tuple &jacobian_tuple_N, type_constraint_tuple &jacobian_tuple_U, type_constraint_tuple &jacobian_tuple_V, bool second) override
| Compute the jacobian(s) part(s) for this contactable item.
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()

void chrono::fea::ChContactNodeXYZ::ComputeJacobianForContactPart | ( | const ChVector3d & | abs_point,
|  | ChMatrix33<> & | contact_plane,
|  | type_constraint_tuple & | jacobian_tuple_N,
|  | type_constraint_tuple & | jacobian_tuple_U,
|  | type_constraint_tuple & | jacobian_tuple_V,
|  | bool | second )
| 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.

## ◆ ContactableGetStateBlockPosLevel()

virtual void chrono::fea::ChContactNodeXYZ::ContactableGetStateBlockPosLevel | ( | ChState & | x | ) |
| inlineoverridevirtual

Get all the DOFs packed in a single vector (position part).

Implements chrono::ChContactable.

## ◆ ContactableGetStateBlockVelLevel()

virtual void chrono::fea::ChContactNodeXYZ::ContactableGetStateBlockVelLevel | ( | ChStateDelta & | w | ) |
| inlineoverridevirtual

Get all the DOFs packed in a single vector (speed part).

Implements chrono::ChContactable.

## ◆ ContactableIncrementState()

virtual void chrono::fea::ChContactNodeXYZ::ContactableIncrementState | ( | const ChState & | x,
|  | const ChStateDelta & | dw,
|  | ChState & | x_new )
| inlineoverridevirtual

Increment the provided state of this object by the given state-delta increment.

Compute: x_new = x + dw.

Implements chrono::ChContactable.

## ◆ ContactComputeQ()

virtual void chrono::fea::ChContactNodeXYZ::ContactComputeQ | ( | const ChVector3d & | F,
|  | const ChVector3d & | T,
|  | const ChVector3d & | point,
|  | const ChState & | state_x,
|  | ChVectorDynamic<> & | Q,
|  | int | offset )
| inlineoverridevirtual

Compute a contiguous vector of generalized forces Q from a given force & torque at the given point.

Used for computing stiffness matrix (square force jacobian) by backward differentiation. 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.

## ◆ ContactForceLoadResidual_F()

void chrono::fea::ChContactNodeXYZ::ContactForceLoadResidual_F | ( | const ChVector3d & | F,
|  | const ChVector3d & | T,
|  | const ChVector3d & | abs_point,
|  | ChVectorDynamic<> & | R )
| overridevirtual

Apply the force & torque, expressed in absolute reference, to the coordinates of the variables.

Implements chrono::ChContactable.

## ◆ GetCollisionModelFrame()

virtual ChFrame chrono::fea::ChContactNodeXYZ::GetCollisionModelFrame | ( |  | ) |
| inlineoverridevirtual

Return the frame of the associated collision model relative to the contactable object.

Implements chrono::ChContactable.

## ◆ GetContactableMass()

virtual double chrono::fea::ChContactNodeXYZ::GetContactableMass | ( |  | ) |
| inlineoverridevirtual

This can be useful in some SMC code:

Implements chrono::ChContactable.

## ◆ GetContactableNumCoordsPosLevel()

virtual int chrono::fea::ChContactNodeXYZ::GetContactableNumCoordsPosLevel | ( |  | ) |
| inlineoverridevirtual

Get the number of DOFs affected by this object (position part).

Implements chrono::ChContactable.

## ◆ GetContactableNumCoordsVelLevel()

virtual int chrono::fea::ChContactNodeXYZ::GetContactableNumCoordsVelLevel | ( |  | ) |
| inlineoverridevirtual

Get the number of DOFs affected by this object (speed part).

Implements chrono::ChContactable.

## ◆ GetContactableType()

virtual ChContactable::eChContactableType chrono::fea::ChContactNodeXYZ::GetContactableType | ( |  | ) | const
| inlineoverridevirtual

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).

Implements chrono::ChContactable.

## ◆ GetContactPoint()

virtual ChVector3d chrono::fea::ChContactNodeXYZ::GetContactPoint | ( | const ChVector3d & | loc_point,
|  | const ChState & | state_x )
| inlineoverridevirtual

Express the local point in absolute frame, for the given state position.

Implements chrono::ChContactable.

## ◆ GetContactPointSpeed() [1/2]

virtual ChVector3d chrono::fea::ChContactNodeXYZ::GetContactPointSpeed | ( | const ChVector3d & | abs_point | ) |
| inlineoverridevirtual

Get the absolute speed of point abs_point if attached to the surface.

Implements chrono::ChContactable.

## ◆ GetContactPointSpeed() [2/2]

virtual ChVector3d chrono::fea::ChContactNodeXYZ::GetContactPointSpeed | ( | const ChVector3d & | loc_point,
|  | const ChState & | state_x,
|  | const ChStateDelta & | state_w )
| 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.

## ◆ GetPhysicsItem()

ChPhysicsItem * chrono::fea::ChContactNodeXYZ::GetPhysicsItem | ( |  | ) |
| overridevirtual

This is only for backward compatibility.

Implements chrono::ChContactable.

## ◆ GetVariables1()

virtual ChVariables * chrono::fea::ChContactNodeXYZ::GetVariables1 | ( |  | ) |
| inlineoverridevirtual

Access variables.

Implements chrono::ChVariableTupleCarrier_1vars< T1 >.

## ◆ IsContactActive()

virtual bool chrono::fea::ChContactNodeXYZ::IsContactActive | ( |  | ) |
| inlineoverridevirtual

Tell if the object must be considered in collision detection.

Implements chrono::ChContactable.

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono/fea/ChContactSurfaceNodeCloud.h
- D:/W/B/src/chrono-9.0.1/src/chrono/fea/ChContactSurfaceNodeCloud.cpp