20 params.
addClassDescription(
"Implements a boundary condition that enforces a displacement field "
21 "around a crack tip based on applied stress intensity factors.");
23 "component", disp_component,
"The component of the displacement to apply BC on.");
25 "The CrackFrontDefinition user object name");
27 "crack_front_point_index", 0,
"The index of the point on the crack front.");
28 params.
addRequiredParam<Real>(
"poissons_ratio",
"Poisson's ratio for the material.");
29 params.
addRequiredParam<Real>(
"youngs_modulus",
"Young's modulus of the material.");
31 "Function describing the Mode I stress intensity factor.");
33 "Function describing the Mode II stress intensity factor.");
35 "KIII_function",
"Function describing the Mode III stress intensity factor.");
36 params.
set<
bool>(
"preset") =
true;
42 _component(getParam<
MooseEnum>(
"component")),
44 _crack_front_point_index(getParam<unsigned
int>(
"crack_front_point_index")),
45 _poissons_ratio(getParam<Real>(
"poissons_ratio")),
46 _youngs_modulus(getParam<Real>(
"youngs_modulus")),
47 _ki_function(getFunction(
"KI_function")),
48 _kii_function(getFunction(
"KII_function")),
49 _kiii_function(getFunction(
"KIII_function"))
68 const Real st2 = std::sin(
_theta / 2.0);
69 const Real ct2 = std::cos(
_theta / 2.0);
75 (ki_val * ct2 * (
_kappa - 1 + 2 * st2 * st2) +
76 kii_val * st2 * (
_kappa + 1 + 2 * ct2 * ct2));
79 (ki_val * st2 * (
_kappa + 1 - 2 * ct2 * ct2) -
80 kii_val * ct2 * (
_kappa - 1 - 2 * st2 * st2));
registerMooseObject("SolidMechanicsApp", InteractionIntegralBenchmarkBC)
void ErrorVector unsigned int
Class used in fracture integrals to define geometric characteristics of the crack front.
void calculateRThetaToCrackFront(const Point qp, const std::size_t point_index, Real &r, Real &theta) const
Calculate r and theta of a point in the crack front polar coordinates for a given crack point index.
static InputParameters validParams()
virtual Real value(Real t, const Point &p) const
Implements a boundary condition that enforces a displacement field around a crack tip based on applie...
virtual Real computeQpValue()
Evaluate the function at the current quadrature point and timestep.
const Real _poissons_ratio
const Function & _ki_function
const unsigned int _crack_front_point_index
const Function & _kiii_function
const Real _youngs_modulus
InteractionIntegralBenchmarkBC(const InputParameters ¶meters)
static InputParameters validParams()
const CrackFrontDefinition & _crack_front_definition
const Function & _kii_function
const Node *const & _current_node