28 "Vector of Real values providing cut information");
39 const int cut_data_len = 12;
40 const int num_vertices = 4;
44 mooseError(
"Length of RectangleCutUserObject cut_data must be 12");
52 for (
unsigned int i = 0; i < num_vertices; ++i)
56 for (
unsigned int i = 0; i < num_vertices; ++i)
58 unsigned int iplus1(i < 3 ? i + 1 : 0);
59 std::pair<Point, Point> rays =
70 const int num_vertices = 4;
73 unsigned int counter = 0;
74 for (
unsigned int i = 0; i < num_vertices; ++i)
76 unsigned int iplus1 = (i < 3 ? i + 1 : 0);
79 Point side_norm = side_tang.cross(
_normal);
82 if (middle2p * side_norm <= 0.0)
85 if (counter == num_vertices)
90const std::vector<Point>
93 mooseError(
"getCrackFrontPoints() is not implemented for this object.");
96const std::vector<RealVectorValue>
99 mooseError(
"getCrackPlaneNormals() is not implemented for this object.");
registerMooseObject("XFEMApp", RectangleCutUserObject)
static InputParameters validParams()
void mooseError(Args &&... args) const
virtual const std::vector< RealVectorValue > getCrackPlaneNormals(unsigned int num_crack_front_points) const override
get a set of normal vectors along a crack front from a XFEM GeometricCutUserObject
RectangleCutUserObject(const InputParameters ¶meters)
bool isInsideCutPlane(Point p) const override
virtual const std::vector< Point > getCrackFrontPoints(unsigned int num_crack_front_points) const override
get a set of points along a crack front from a XFEM GeometricCutUserObject
std::vector< Point > _vertices
static InputParameters validParams()
std::vector< Real > _cut_data
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross(const TypeVector< T2 > &v) const
void normalizePoint(Point &p)