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 =
61 _normal += rays.first.cross(rays.second);
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)
90 const std::vector<Point>
93 mooseError(
"getCrackFrontPoints() is not implemented for this object.");
96 const std::vector<RealVectorValue>
99 mooseError(
"getCrackPlaneNormals() is not implemented for this object.");
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
registerMooseObject("XFEMApp", RectangleCutUserObject)
static InputParameters validParams()
std::vector< Real > _cut_data
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
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)
void mooseError(Args &&... args) const
void normalizePoint(Point &p)
bool isInsideCutPlane(Point p) const override
static InputParameters validParams()
std::vector< Point > _vertices