22 params.addRequiredParam<std::vector<Real>>(
"cut_data",
23 "Vector of Real values providing cut information");
25 params.addParam<std::vector<Real>>(
"cut_scale",
"X,Y scale factors for geometric cuts");
26 params.addParam<std::vector<Real>>(
"cut_translate",
"X,Y translations for geometric cuts");
28 params.addClassDescription(
"Creates a UserObject for a line segment cut on 2D meshes for XFEM");
37 const int cut_data_len = 4;
41 mooseError(
"Length of LineSegmentCutUserObject cut_data must be 4");
44 std::pair<Real, Real> scale;
45 if (isParamValid(
"cut_scale"))
47 auto vec_scale = getParam<std::vector<Real>>(
"cut_scale");
48 scale = std::make_pair(vec_scale[0], vec_scale[1]);
52 scale = std::make_pair(1.0, 1.0);
55 std::pair<Real, Real> trans;
56 if (isParamValid(
"cut_translate"))
58 auto vec_trans = getParam<std::vector<Real>>(
"cut_translate");
59 trans = std::make_pair(vec_trans[0], vec_trans[1]);
63 trans = std::make_pair(0.0, 0.0);
67 Real x0 = (
_cut_data[0] + trans.first) * scale.first;
68 Real y0 = (
_cut_data[1] + trans.second) * scale.second;
69 Real x1 = (
_cut_data[2] + trans.first) * scale.first;
70 Real y1 = (
_cut_data[3] + trans.second) * scale.second;
75 mooseError(
"Number of start/end times must match number of cut line endpoint sets");
78 const std::vector<Point>
81 mooseError(
"getCrackFrontPoints() is not implemented for this object.");