13 #include "MooseError.h"
28 params.addRequiredParam<std::vector<Real>>(
"cut_data",
29 "Vector of Real values providing cut information");
31 params.addClassDescription(
"Creates a UserObject for elliptical cuts on 3D meshes for XFEM");
40 const int cut_data_len = 9;
44 mooseError(
"Length of EllipseCutUserObject cut_data must be 9");
53 if (std::abs(rays.first * rays.second) > 1e-6)
55 "EllipseCutUserObject only works on an elliptic cut. Users should provide two points at "
56 "the long and short axis.");
58 _normal = rays.first.cross(rays.second);
61 std::pair<Real, Real> ray_radii =
62 std::make_pair(std::sqrt(rays.first.norm_sq()), std::sqrt(rays.second.norm_sq()));
65 if (ray_radii.first > ray_radii.second)
88 if (std::abs(ray *
_normal) < 1e-6)
99 const std::vector<Point>
102 mooseError(
"getCrackFrontPoints() is not implemented for this object.");