19 #ifndef LIBMESH_MESH_TET_INTERFACE_H 20 #define LIBMESH_MESH_TET_INTERFACE_H 22 #include "libmesh/libmesh_config.h" 25 #include "libmesh/bounding_box.h" 26 #include "libmesh/enum_elem_type.h" 27 #include "libmesh/point.h" 39 class UnstructuredMesh;
88 void attach_hole_list(std::unique_ptr<std::vector<std::unique_ptr<UnstructuredMesh>>> holes);
200 std::unique_ptr<std::vector<std::unique_ptr<UnstructuredMesh>>>
_holes;
216 #endif // LIBMESH_MESH_TET_INTERFACE_H ElemType
Defines an enum for geometric element types.
ElemType _elem_type
The exact type of tetrahedra we intend to construct.
std::unique_ptr< std::vector< std::unique_ptr< UnstructuredMesh > > > _holes
A pointer to a vector of meshes each defining a hole.
Real & desired_volume()
Sets and/or gets the desired tetrahedron volume.
void set_verbosity(unsigned int v)
Sets a verbosity level, defaulting to 0 (print nothing), to be set as high as 100 (print everything)...
void process_hull_integrity_result(const std::set< SurfaceIntegrity > &result) const
This function prints an informative message and throws an exception based on the output of the check_...
The libMesh namespace provides an interface to certain functionality in the library.
MeshTetInterface(UnstructuredMesh &mesh)
Constructor.
SurfaceIntegrity
Enumeration of possible surface mesh integrity issues.
ElemType & elem_type()
Sets and/or gets the desired element type.
The UnstructuredMesh class is derived from the MeshBase class.
virtual ~MeshTetInterface()
Default destructor in base class.
static BoundingBox volume_to_surface_mesh(UnstructuredMesh &mesh)
Remove volume elements from the given mesh, after converting their outer boundary faces to surface el...
void attach_hole_list(std::unique_ptr< std::vector< std::unique_ptr< UnstructuredMesh >>> holes)
Attaches a vector of Mesh pointers defining holes which will be meshed around.
Defines a Cartesian bounding box by the two corner extremum.
Real _desired_volume
The desired volume for the elements in the resulting mesh.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::set< SurfaceIntegrity > check_hull_integrity() const
This function checks the integrity of the current set of elements in the Mesh to see if they comprise...
virtual void triangulate()=0
This is the main public interface for this function.
bool & smooth_after_generating()
Sets/gets flag which tells whether to do two steps of Laplace mesh smoothing after generating the gri...
std::set< SurfaceIntegrity > improve_hull_integrity()
This function checks the integrity of the current set of elements in the Mesh, and corrects what it c...
unsigned int _verbosity
verbosity setting
UnstructuredMesh & _mesh
Local reference to the mesh we are working with.
void delete_2D_hull_elements()
Delete original convex hull elements from the Mesh after performing a Delaunay tetrahedralization.
bool _smooth_after_generating
Flag which tells whether we should smooth the mesh after it is generated.
Class MeshTetInterface provides an abstract interface for tetrahedralization of meshes by subclasses...