11 #include "MathUtils.h"
12 #include "RankTwoTensor.h"
20 InputParameters params = validParams<Kernel>();
21 params.addClassDescription(
"This kernel calculates off-diagonal Jacobian of elastic energy in "
22 "AllenCahn with respect to displacements");
23 params.addCoupledVar(
"displacements",
24 "The vector of displacements suitable for the problem statement");
25 params.addParam<MaterialPropertyName>(
26 "F_name",
"E_el",
"Name of material property storing the elastic energy");
27 params.addParam<MaterialPropertyName>(
"mob_name",
"L",
"The mobility used with the kernel");
32 : DerivativeMaterialInterface<JvarMapKernelInterface<Kernel>>(parameters),
33 _L(getMaterialProperty<Real>(
"mob_name")),
34 _ndisp(coupledComponents(
"displacements")),
36 _d2Fdcdstrain(getMaterialProperty<
RankTwoTensor>(
"d2Fdcdstrain"))
38 for (
unsigned int i = 0; i <
_ndisp; ++i)
39 _disp_var[i] = coupled(
"displacements", i);
45 for (
unsigned int c_comp = 0; c_comp <
_ndisp; ++c_comp)
48 const Real dxddFdc =
_L[_qp] * _test[_i][_qp];
49 const Real d2Fdcdstrain_comp =
52 return dxddFdc * d2Fdcdstrain_comp;