28 "Vector of Real values providing cut information");
30 params.
addClassDescription(
"Creates a UserObject for elliptical cuts on 3D meshes for XFEM");
39 const int cut_data_len = 9;
43 mooseError(
"Length of EllipseCutUserObject cut_data must be 9");
52 if (
std::abs(rays.first * rays.second) > 1e-6)
54 "EllipseCutUserObject only works on an elliptic cut. Users should provide two points at " 55 "the long and short axis.");
57 _normal = rays.first.cross(rays.second);
60 std::pair<Real, Real> ray_radii =
64 if (ray_radii.first > ray_radii.second)
98 const std::vector<Point>
101 std::vector<Point> crack_front_points(number_crack_front_points);
102 for (
unsigned int i = 0; i < number_crack_front_points; ++i)
108 return crack_front_points;
111 const std::vector<RealVectorValue>
114 mooseError(
"getCrackPlaneNormals() is not implemented for this object.");
std::vector< Real > _cut_data
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
static InputParameters validParams()
registerMooseObject("XFEMApp", EllipseCutUserObject)
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
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 ...
virtual bool isInsideCutPlane(Point p) const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
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
void normalizePoint(Point &p)
std::vector< Point > _vertices
static InputParameters validParams()
EllipseCutUserObject(const InputParameters ¶meters)