20 params.addClassDescription(
"Stress divergence kernel for phase-field fracture: Computes off "
21 "diagonal damage dependent Jacobian components. To be used with "
22 "StressDivergenceTensors or DynamicStressDivergenceTensors.");
23 params.addParam<std::string>(
"base_name",
"Material property base name");
24 params.addRequiredParam<
unsigned int>(
"component",
25 "An integer corresponding to the direction "
26 "the variable this kernel acts in. (0 for x, "
30 "Phase field damage variable: Used to indicate calculation of Off Diagonal Jacobian term");
35 const InputParameters & parameters)
36 : DerivativeMaterialInterface<Kernel>(parameters),
37 _base_name(isParamValid(
"base_name") ? getParam<std::string>(
"base_name") +
"_" :
""),
38 _component(getParam<unsigned int>(
"component")),
39 _c_coupled(isCoupled(
"c")),
40 _c_var(_c_coupled ? coupled(
"c") : 0),
42 getMaterialPropertyDerivative<
RankTwoTensor>(_base_name +
"stress", getVar(
"c", 0)->
name()))
52 for (
unsigned int k = 0; k < 3; ++k)
54 return val * _phi[_j][_qp];