chrono::fea::ChContactSurfaceSegmentSet Class Reference

Description

Class which defines a contact surface for FEA elements.

Suitable for cable and beam elements, it uses one or more capsules per element (depending on the number of nodes).

#include <ChContactSurfaceSegmentSet.h>

Inheritance diagram for chrono::fea::ChContactSurfaceSegmentSet:
Collaboration diagram for chrono::fea::ChContactSurfaceSegmentSet:

Public Member Functions

 ChContactSurfaceSegmentSet (std::shared_ptr< ChContactMaterial > material, ChMesh *mesh=nullptr)
 
void AddSegment (std::shared_ptr< ChNodeFEAxyz > node1, std::shared_ptr< ChNodeFEAxyz > node2, bool owns_node1, bool owns_node2, double sphere_swept=0.0)
 Add the segment specified by the two given XYZ nodes to this contact surface. More...
 
void AddSegment (std::shared_ptr< ChNodeFEAxyzrot > node1, std::shared_ptr< ChNodeFEAxyzrot > node2, bool owns_node1, bool owns_node2, double sphere_swept=0.0)
 Add the segment specified by the two given XYZRot nodes to this contact surface. More...
 
void AddAllSegments (double sphere_swept=0.0)
 Utility function to add segments for all 1D elements of the associated FEA mesh to this collision set. More...
 
std::vector< std::shared_ptr< ChContactSegmentXYZ > > & GetSegmentsXYZ ()
 Get the list of segments.
 
std::vector< std::shared_ptr< ChContactSegmentXYZRot > > & GetSegmentsXYZRot ()
 Get the list of segments for nodes with rotational DOFs.
 
unsigned int GetNumSegments () const
 Get the total number of segments.
 
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

◆ AddAllSegments()

void chrono::fea::ChContactSurfaceSegmentSet::AddAllSegments ( double  sphere_swept = 0.0)

Utility function to add segments for all 1D elements of the associated FEA mesh to this collision set.

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

◆ AddSegment() [1/2]

void chrono::fea::ChContactSurfaceSegmentSet::AddSegment ( std::shared_ptr< ChNodeFEAxyz node1,
std::shared_ptr< ChNodeFEAxyz node2,
bool  owns_node1,
bool  owns_node2,
double  sphere_swept = 0.0 
)

Add the segment specified by the two given XYZ nodes to this contact surface.

Parameters
node1segment node1
node2segment node2
owns_node1collision segment owns node1
owns_node2collision segment owns node2
sphere_sweptthickness (radius of sweeping sphere)

◆ AddSegment() [2/2]

void chrono::fea::ChContactSurfaceSegmentSet::AddSegment ( std::shared_ptr< ChNodeFEAxyzrot node1,
std::shared_ptr< ChNodeFEAxyzrot node2,
bool  owns_node1,
bool  owns_node2,
double  sphere_swept = 0.0 
)

Add the segment specified by the two given XYZRot nodes to this contact surface.

Parameters
node1segment node1
node2segment node2
owns_node1collision segment owns node1
owns_node2collision segment owns node2
sphere_sweptthickness (radius of sweeping sphere)

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/fea/ChContactSurfaceSegmentSet.h
  • /builds/uwsbel/chrono/src/chrono/fea/ChContactSurfaceSegmentSet.cpp