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>
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< ChContactNodeXYZsphere > | GetNode (unsigned int n) |
Access the n-th node. | |
std::shared_ptr< ChContactNodeXYZRotSphere > | GetNodeRot (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) | |
ChPhysicsItem * | GetPhysicsItem () |
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< ChContactMaterial > | m_material |
contact material properties | |
ChPhysicsItem * | m_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