20 #ifndef LIBMESH_ELEM_CUTTER_H 21 #define LIBMESH_ELEM_CUTTER_H 25 #if defined(LIBMESH_HAVE_TRIANGLE) && defined(LIBMESH_HAVE_TETGEN) 43 class TriangleInterface;
44 class TetGenMeshInterface;
81 const std::vector<Real> & vertex_distance_func)
const;
89 const std::vector<Real> & vertex_distance_func)
const;
97 const std::vector<Real> & vertex_distance_func)
const;
109 const std::vector<Real> & vertex_distance_func);
134 const std::vector<Real> & vertex_distance_func);
140 const std::vector<Real> & vertex_distance_func);
146 const std::vector<Real> & vertex_distance_func);
152 const std::vector<Real> & vertex_distance_func);
177 #endif // LIBMESH_HAVE_TRIANGLE && LIBMESH_HAVE_TETGEN 178 #endif // LIBMESH_ELEM_CUTTER_H std::unique_ptr< ReplicatedMesh > _inside_mesh_3D
std::unique_ptr< ReplicatedMesh > _inside_mesh_2D
void find_intersection_points(const Elem &elem, const std::vector< Real > &vertex_distance_func)
std::vector< Point > _intersection_pts
std::unique_ptr< TriangleInterface > _triangle_outside
void cut_1D(const Elem &elem, const std::vector< Real > &vertex_distance_func)
void operator()(const Elem &elem_in, const std::vector< Real > &vertex_distance_func)
The base class for all geometric element types.
bool is_cut(const Elem &elem, const std::vector< Real > &vertex_distance_func) const
void cut_2D(const Elem &elem, const std::vector< Real > &vertex_distance_func)
Subdivides a single element using a mesh generator.
std::vector< Elem const * > _inside_elem
std::unique_ptr< ReplicatedMesh > _outside_mesh_3D
std::unique_ptr< TriangleInterface > _triangle_inside
const std::vector< Elem const * > & outside_elements() const
void cut_3D(const Elem &elem, const std::vector< Real > &vertex_distance_func)
std::unique_ptr< TetGenMeshInterface > _tetgen_inside
std::unique_ptr< TetGenMeshInterface > _tetgen_outside
bool is_outside(const Elem &elem, const std::vector< Real > &vertex_distance_func) const
bool is_inside(const Elem &elem, const std::vector< Real > &vertex_distance_func) const
std::vector< Elem const * > _outside_elem
const std::vector< Elem const * > & inside_elements() const
std::unique_ptr< ReplicatedMesh > _outside_mesh_2D
Parallel::Communicator _comm_self