chrono::fea::ChMeshSurface Class Reference

Description

Class which defines a surface for a mesh FEA elements.

The contact surface is a collection of pointers to ChLoadableUV objects, those can be shells in the mesh, or proxies to faces of solid elements such as ChFaceTetra_4.

#include <ChMeshSurface.h>

Public Member Functions

 ChMeshSurface (ChMesh *parentmesh=0)
 
ChMeshGetMesh ()
 Get owner mesh.
 
void SetMesh (ChMesh *mm)
 Set owner mesh.
 
std::vector< std::shared_ptr
< ChLoadableUV > > & 
GetFacesList ()
 Direct access to the list of faces.
 
virtual void AddFace (std::shared_ptr< ChLoadableUV > mface)
 Add a single mesh face. More...
 
virtual void AddFacesFromNodeSet (std::vector< std::shared_ptr< ChNodeFEAbase > > &node_set)
 Add multiple faces of FEM elements given a set of nodes at vertexes. More...
 
virtual void AddFacesFromBoundary ()
 Given a solid mesh (ex a mesh of tetrahetrons) it finds the faces on the outer boundary. More...
 

Member Function Documentation

virtual void chrono::fea::ChMeshSurface::AddFace ( std::shared_ptr< ChLoadableUV mface)
virtual

Add a single mesh face.

Beware, it does not check for double insertion of the same face.

void chrono::fea::ChMeshSurface::AddFacesFromBoundary ( )
virtual

Given a solid mesh (ex a mesh of tetrahetrons) 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'). Supported solids that generate boundary skin:

  • tetrahedrons
  • more will follow in future

Case1. Outer skin boundary of meshes of TETRAHEDRONS:

void chrono::fea::ChMeshSurface::AddFacesFromNodeSet ( std::vector< std::shared_ptr< ChNodeFEAbase > > &  node_set)
virtual

Add multiple faces of FEM elements given a set of nodes at vertexes.

It scans all the finite elements already added in the parent ChMesh, and see if someone has a face whose vertexes are all in the given node set; if so, adds it to this mesh surface, with these rules: