12 #include "RotationMatrix.h"
18 InputParameters params = validParams<InterfaceMaterial>();
20 params.addClassDescription(
"Base class for cohesive zone mateirla models");
21 params.addRequiredCoupledVar(
"displacements",
22 "The string of displacements suitable for the problem statement");
27 : InterfaceMaterial(parameters),
28 _normals(_assembly.normals()),
29 _ndisp(coupledComponents(
"displacements")),
31 _disp_neighbor(_ndisp),
32 _displacement_jump_global(declareProperty<RealVectorValue>(
"displacement_jump_global")),
33 _displacement_jump(declareProperty<RealVectorValue>(
"displacement_jump")),
34 _traction_global(declareProperty<RealVectorValue>(
"traction_global")),
35 _traction(declareProperty<RealVectorValue>(
"traction")),
36 _traction_derivatives_global(declareProperty<
RankTwoTensor>(
"traction_derivatives_global")),
37 _traction_derivatives(declareProperty<
RankTwoTensor>(
"traction_derivatives"))
40 mooseError(
"the CZM material requires 1, 2 or 3 displacement variables");
42 if (getParam<bool>(
"use_displaced_mesh") ==
true)
43 mooseError(
"This material cannot be used with use_displaced_mesh = true");
46 for (
unsigned int i = 0; i <
_ndisp; ++i)
48 _disp[i] = &coupledValue(
"displacements", i);
57 RealTensorValue RotationGlobalToLocal =
58 RotationMatrix::rotVec1ToVec2(
_normals[_qp], RealVectorValue(1, 0, 0));
61 for (
unsigned int i = 0; i <
_ndisp; i++)
63 for (
unsigned int i =
_ndisp; i < 3; i++)