19 params.addClassDescription(
"3D Coupled (3DC) cohesive law of Salehani and Irani with no damage");
20 params.addRequiredParam<Real>(
21 "normal_gap_at_maximum_normal_traction",
22 "The value of normal gap at which maximum normal traction is achieved");
23 params.addRequiredParam<Real>(
24 "tangential_gap_at_maximum_shear_traction",
25 "The value of tangential gap at which maximum shear traction is achieved");
26 params.addRequiredParam<Real>(
"maximum_normal_traction",
27 "The maximum normal traction the interface can sustain");
28 params.addRequiredParam<Real>(
"maximum_shear_traction",
29 "The maximum shear traction the interface can sustain");
35 _delta_u0({getParam<Real>(
"normal_gap_at_maximum_normal_traction"),
36 std::sqrt(2) * getParam<Real>(
"tangential_gap_at_maximum_shear_traction"),
37 std::sqrt(2) * getParam<Real>(
"tangential_gap_at_maximum_shear_traction")}),
38 _max_allowable_traction({getParam<Real>(
"maximum_normal_traction"),
39 getParam<Real>(
"maximum_shear_traction"),
40 getParam<Real>(
"maximum_shear_traction")})
50 RealVectorValue traction_local;
53 Real aa, x, exp_x, a_i, b_i;
58 for (i = 0; i < 3; i++)
69 for (i = 0; i < 3; i++)
74 aa = std::sqrt(2 * std::exp(1));
78 traction_local(i) = a_i * b_i * exp_x;
81 return traction_local;
109 for (i = 0; i < 3; i++)
116 exp_x = std::exp(-x);
123 Real dbi_dui, dx_duj;
125 for (i = 0; i < 3; i++)
130 a_i = std::sqrt(2 * std::exp(1));
135 for (j = 0; j < 3; j++)
147 traction_jump_derivatives_local(i, j) =
148 a_i * exp_x * (dbi_dui - b_i * dx_duj);
152 return traction_jump_derivatives_local;