Go to the documentation of this file.
15 #include "libmesh/libmesh_common.h"
16 #include "libmesh/libmesh.h"
17 #include "libmesh/elem.h"
115 virtual void initialize()
override;
116 virtual void execute()
override;
117 virtual void threadJoin(
const UserObject & y)
override;
118 virtual void finalize()
override;
129 virtual bool cutElementByGeometry(
const Elem * elem,
130 std::vector<Xfem::CutEdge> & cut_edges,
131 std::vector<Xfem::CutNode> & cut_nodes,
132 Real time)
const = 0;
142 virtual bool cutElementByGeometry(
const Elem * elem,
143 std::vector<Xfem::CutFace> & cut_faces,
144 Real time)
const = 0;
153 virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_edges,
154 std::vector<Xfem::CutEdge> & cut_edges,
155 Real time)
const = 0;
164 virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_faces,
165 std::vector<Xfem::CutFace> & cut_faces,
166 Real time)
const = 0;
178 void setInterfaceID(
unsigned int interface_id) { _interface_id = interface_id; };
189 std::shared_ptr<XFEM> _xfem;
206 void serialize(std::string & serialized_buffer);
207 void deserialize(std::vector<std::string> & serialized_buffers);
unsigned int _id1
ID of the first node on the edge.
Data structure describing geometrically described cut through 2D element.
unsigned int getInterfaceID() const
Get the interface ID for this cutting object.
Real _distance
Fractional distance along the edge (from node 1 to 2) where the cut is located.
unsigned int _host_id
Local ID of this node in the host element.
InputParameters validParams< GeometricCutUserObject >()
std::vector< Real > _position
Fractional distance along the cut edges where the cut is located.
unsigned int _id2
ID of the second node on the edge.
std::vector< CutEdge > _elem_cut_edges
Container for data about all cut edges in this element.
std::vector< CutNode > _elem_cut_nodes
Container for data about all cut nodes in this element.
unsigned int _host_side_id
Local ID of this side in the host element.
std::vector< std::vector< Point > > _frag_edges
Container for data about all cut edges in cut fragments in this element.
unsigned int _face_id
ID of the cut face.
std::vector< unsigned int > _face_edge
IDs of all cut faces.
std::map< unsigned int, std::vector< Xfem::GeomMarkedElemInfo3D > > _marked_elems_3d
unsigned int _last_step_initialized
Time step information needed to advance a 3D crack only at the real beginning of a time step.
Data structure describing geometrically described cut through 3D element.
std::vector< CutEdge > _frag_cut_edges
Container for data about all cut fragments in this element.
bool shouldHealMesh() const
Should the elements cut by this cutting object be healed in the current time step?
unsigned int _interface_id
Associated interface id.
void setInterfaceID(unsigned int interface_id)
Set the interface ID for this cutting object.
Data structure defining a cut through a node.
std::map< unsigned int, std::vector< Xfem::GeomMarkedElemInfo2D > > _marked_elems_2d
Containers with information about all 2D and 3D elements marked for cutting by this object.
bool operator<(const CutEdge &lhs, const CutEdge &rhs)
Operator < for two CutEdge Objects Needed to allow the use of std::set<CutEdge>
bool _heal_always
Heal the mesh.
unsigned int _id
ID of the cut node.
std::vector< std::vector< Point > > _frag_faces
Container for data about all cut faces in cut fragments in this element.
std::vector< CutFace > _frag_cut_faces
Container for data about all faces this element's fragment.
Data structure defining a cut through a face.
std::vector< CutFace > _elem_cut_faces
Container for data about all cut faces in this element.
Data structure defining a cut on an element edge.
Base class for crack front points provider.