14 #include "MooseTypes.h"
38 XFEMCutElem(Elem * elem,
unsigned int n_qpoints,
unsigned int n_sides);
58 virtual Point getNodeCoordinates(
EFANode * node, MeshBase * displaced_mesh = NULL)
const = 0;
61 void setQuadraturePointsAndWeights(
const std::vector<Point> & qp_points,
62 const std::vector<Real> & qp_weights);
66 virtual void computePhysicalVolumeFraction() = 0;
71 Real getPhysicalVolumeFraction()
const;
77 virtual void computePhysicalFaceAreaFraction(
unsigned int side) = 0;
83 Real getPhysicalFaceAreaFraction(
unsigned int side)
const;
85 virtual void computeMomentFittingWeights() = 0;
86 Real getMomentFittingWeight(
unsigned int i_qp)
const;
87 virtual Point getCutPlaneOrigin(
unsigned int plane_id,
88 MeshBase * displaced_mesh = NULL)
const = 0;
89 virtual Point getCutPlaneNormal(
unsigned int plane_id,
90 MeshBase * displaced_mesh = NULL)
const = 0;
92 getCrackTipOriginAndDirection(
unsigned tip_id, Point & origin, Point & direction)
const = 0;
93 virtual void getFragmentFaces(std::vector<std::vector<Point>> & frag_faces,
94 MeshBase * displaced_mesh = NULL)
const = 0;
95 virtual const EFAElement * getEFAElement()
const = 0;
96 virtual unsigned int numCutPlanes()
const = 0;
97 void getWeightMultipliers(MooseArray<Real> & weights,
100 const MooseArray<Point> & q_points);
101 void getFaceWeightMultipliers(MooseArray<Real> & face_weights,
104 const MooseArray<Point> & q_points,
113 void computeXFEMWeights(QBase * qrule,
115 const MooseArray<Point> & q_points);
125 void computeXFEMFaceWeights(QBase * qrule,
127 const MooseArray<Point> & q_points,
129 bool isPointPhysical(
const Point & p)
const;
130 virtual void getIntersectionInfo(
unsigned int plane_id,
132 std::vector<Point> & intersectionPoints,
133 MeshBase * displaced_mesh = NULL)
const = 0;