chrono::fea::ChContactSurfaceNodeCloud Class Reference

Description

Class which defines a contact surface for FEA elements.

Only xyz nodes in the FEA model are used as contact items for the collision detection. Might be an efficient option in case of dense tessellations (but misses the node-vs-face and edge-vs-edge cases)

#include <ChContactSurfaceNodeCloud.h>

Inheritance diagram for chrono::fea::ChContactSurfaceNodeCloud:
Collaboration diagram for chrono::fea::ChContactSurfaceNodeCloud:

Public Member Functions

 ChContactSurfaceNodeCloud (std::shared_ptr< ChContactMaterial > material, ChMesh *mesh=nullptr)
 
void AddNode (std::shared_ptr< ChNodeFEAxyz > node, const double point_radius=0.001)
 Add a specific node to this collision cloud.
 
void AddNode (std::shared_ptr< ChNodeFEAxyzrot > node, const double point_radius=0.001)
 Add a specific node to this collision cloud.
 
void AddAllNodes (const double point_radius=0.001)
 Utility function to add all nodes of the associated FEA mesh to this collision cloud. More...
 
void AddNodesFromNodeSet (std::vector< std::shared_ptr< ChNodeFEAbase >> &node_set, const double point_radius=0.001)
 Utility function to add nodes of the associated mesh belonging to the given node_set, to this collision cloud. More...
 
std::vector< std::shared_ptr< ChContactNodeXYZsphere > > & GetNodes ()
 Get the list of nodes.
 
std::vector< std::shared_ptr< ChContactNodeXYZRotSphere > > & GetNodesRot ()
 Get the list of nodes with rotational dofs.
 
unsigned int GetNumNodes () const
 Get the number of nodes.
 
unsigned int GetNumNodesRot () const
 Get the number of nodes with rotational dofs.
 
std::shared_ptr< ChContactNodeXYZsphereGetNode (unsigned int n)
 Access the n-th node.
 
std::shared_ptr< ChContactNodeXYZRotSphereGetNodeRot (unsigned int n)
 Access the n-th node with rotational dofs.
 
virtual void SyncCollisionModels () const override
 
virtual void AddCollisionModelsToSystem (ChCollisionSystem *coll_sys) const override
 
virtual void RemoveCollisionModelsFromSystem (ChCollisionSystem *coll_sys) const override
 
- Public Member Functions inherited from chrono::fea::ChContactSurface
 ChContactSurface (std::shared_ptr< ChContactMaterial > material, ChPhysicsItem *mesh=nullptr)
 
ChPhysicsItemGetPhysicsItem ()
 Get the owner physics item (e.g., an FEA mesh).
 
void SetPhysicsItem (ChPhysicsItem *physics_item)
 Set the owner physics item (e.g., an FEA mesh).
 
void DisableSelfCollisions (int family)
 Disable self-collisions (default: enabled). More...
 
std::shared_ptr< ChContactMaterial > & GetMaterialSurface ()
 Get the surface contact material.
 

Additional Inherited Members

- Protected Attributes inherited from chrono::fea::ChContactSurface
std::shared_ptr< ChContactMaterialm_material
 contact material properties
 
ChPhysicsItemm_physics_item
 associated physics item (e.g., an FEA mesh)
 
bool m_self_collide
 include self-collisions?
 
int m_collision_family
 collision family (if no self-collisions)
 

Member Function Documentation

◆ AddAllNodes()

void chrono::fea::ChContactSurfaceNodeCloud::AddAllNodes ( const double  point_radius = 0.001)

Utility function to add all nodes of the associated FEA mesh to this collision cloud.

Add all nodes of the mesh to this collision cloud.

This function does nothing if the contact surface was not yet associated with an FEA mesh.

◆ AddNodesFromNodeSet()

void chrono::fea::ChContactSurfaceNodeCloud::AddNodesFromNodeSet ( std::vector< std::shared_ptr< ChNodeFEAbase >> &  node_set,
const double  point_radius = 0.001 
)

Utility function to add nodes of the associated mesh belonging to the given node_set, to this collision cloud.

Add nodes of the mesh, belonging to the node_set, to this collision cloud.

This function does nothing if the contact surface was not yet associated with an FEA mesh.


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