chrono::fea::ChContactSurfaceMesh Class Reference

Description

Class which defines a contact surface for FEA elements, using a mesh of triangles.

Differently from ChContactSurfaceNodeCloud, this also captures the FEAnodes-vs-FEAfaces and FEAedge-vs-FEAedges cases, but it has a higher computational overhead

#include <ChContactSurfaceMesh.h>

Inheritance diagram for chrono::fea::ChContactSurfaceMesh:
Collaboration diagram for chrono::fea::ChContactSurfaceMesh:

Public Member Functions

 ChContactSurfaceMesh (std::shared_ptr< ChMaterialSurface > material, ChMesh *mesh=nullptr)
 
void AddFacesFromBoundary (double sphere_swept=0.0, bool ccw=true)
 Given a FEA mesh (ex a mesh of tetrahedrons) it finds the faces on the outer boundary. More...
 
std::vector< std::shared_ptr< ChContactTriangleXYZ > > & GetTriangleList ()
 As AddFacesFromBoundary, but only for faces containing selected nodes in node_set. More...
 
std::vector< std::shared_ptr< ChContactTriangleXYZROT > > & GetTriangleListRot ()
 Get the list of triangles, for nodes with rotational dofs too.
 
unsigned int GetNumTriangles () const
 Get the number of triangles.
 
unsigned int GetNumVertices () const
 Get the number of vertices.
 
virtual void SurfaceSyncCollisionModels () override
 Functions to interface this with ChPhysicsItem container.
 
virtual void SurfaceAddCollisionModelsToSystem (ChSystem *msys) override
 
virtual void SurfaceRemoveCollisionModelsFromSystem (ChSystem *msys) override
 
- Public Member Functions inherited from chrono::fea::ChContactSurface
 ChContactSurface (std::shared_ptr< ChMaterialSurface > material, ChMesh *mesh=nullptr)
 
ChMeshGetMesh ()
 Get owner mesh.
 
void SetMesh (ChMesh *mesh)
 Set owner mesh.
 
std::shared_ptr< ChMaterialSurface > & GetMaterialSurface ()
 Get the surface contact material.
 

Additional Inherited Members

- Protected Attributes inherited from chrono::fea::ChContactSurface
std::shared_ptr< ChMaterialSurfacem_material
 contact material properties
 
ChMeshm_mesh
 associated mesh
 

Member Function Documentation

◆ AddFacesFromBoundary()

void chrono::fea::ChContactSurfaceMesh::AddFacesFromBoundary ( double  sphere_swept = 0.0,
bool  ccw = true 
)

Given a FEA mesh (ex a mesh of tetrahedrons) it finds the faces on the outer boundary.

That is, it scans all the finite elements already added in the parent ChMesh and adds the faces that are not shared (ie. the faces on the boundary 'skin'). For shells, the argument 'ccw' indicates whether the face vertices are provided in a counter-clockwise (default) or clockwise order, this has a reason: shells collisions are oriented and might work only from the "outer" side. Supported elements that generate boundary skin:

Parameters
sphere_sweptradius of swept sphere
ccwindicate clockwise or counterclockwise vertex ordering

◆ GetTriangleList()

std::vector<std::shared_ptr<ChContactTriangleXYZ> >& chrono::fea::ChContactSurfaceMesh::GetTriangleList ( )
inline

As AddFacesFromBoundary, but only for faces containing selected nodes in node_set.

Get the list of triangles.


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