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) | |
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
◆ 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
-
node1 segment node1 node2 segment node2 owns_node1 collision segment owns node1 owns_node2 collision segment owns node2 sphere_swept thickness (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
-
node1 segment node1 node2 segment node2 owns_node1 collision segment owns node1 owns_node2 collision segment owns node2 sphere_swept thickness (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