25 "Vector of Real values providing cut information");
27 params.
addParam<std::vector<Real>>(
"cut_scale",
"X,Y scale factors for geometric cuts");
28 params.
addParam<std::vector<Real>>(
"cut_translate",
"X,Y translations for geometric cuts");
30 params.
addClassDescription(
"Creates a UserObject for a line segment cut on 2D meshes for XFEM");
39 const int line_cut_data_len = 6;
42 if (
_cut_data.size() % line_cut_data_len != 0)
43 mooseError(
"Length of LineSegmentCutSetUserObject cut_data must be a multiple of 6.");
45 unsigned int num_cuts =
_cut_data.size() / line_cut_data_len;
48 std::pair<Real, Real>
scale;
51 auto vec_scale = getParam<std::vector<Real>>(
"cut_scale");
52 scale = std::make_pair(vec_scale[0], vec_scale[1]);
56 scale = std::make_pair(1.0, 1.0);
59 std::pair<Real, Real> trans;
62 auto vec_trans = getParam<std::vector<Real>>(
"cut_translate");
63 trans = std::make_pair(vec_trans[0], vec_trans[1]);
67 trans = std::make_pair(0.0, 0.0);
74 for (
unsigned int i = 0; i < num_cuts; ++i)
83 std::make_pair(
_cut_data[i * line_cut_data_len + 4],
_cut_data[i * line_cut_data_len + 5]));
87 mooseError(
"Number of start/end times must match number of cut line endpoint sets");
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.");
std::vector< std::pair< Point, Point > > _cut_line_endpoints
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 ...
registerMooseObject("XFEMApp", LineSegmentCutSetUserObject)
static InputParameters validParams()
bool isParamValid(const std::string &name) const
static InputParameters validParams()
std::vector< Real > _cut_data
LineSegmentCutSetUserObject(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
std::vector< std::pair< Real, Real > > _cut_time_ranges
Vector of start/end times for each cut segment.
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