18 params.
addClassDescription(
"3D Coupled (3DC) cohesive law of Salehani and Irani with no damage");
20 "normal_gap_at_maximum_normal_traction",
21 "The value of normal gap at which maximum normal traction is achieved");
23 "tangential_gap_at_maximum_shear_traction",
24 "The value of tangential gap at which maximum shear traction is achieved");
26 "The maximum normal traction the interface can sustain");
28 "The maximum shear traction the interface can sustain");
34 _delta_u0({getParam<Real>(
"normal_gap_at_maximum_normal_traction"),
35 std::sqrt(2) * getParam<Real>(
"tangential_gap_at_maximum_shear_traction"),
36 std::sqrt(2) * getParam<Real>(
"tangential_gap_at_maximum_shear_traction")}),
37 _max_allowable_traction({getParam<Real>(
"maximum_normal_traction"),
38 getParam<Real>(
"maximum_shear_traction"),
39 getParam<Real>(
"maximum_shear_traction")})
59 Real aa,
x, exp_x, a_i, b_i;
64 for (i = 0; i < 3; i++)
75 for (i = 0; i < 3; i++)
80 aa = std::sqrt(2 * std::exp(1));
84 traction_local(i) = a_i * b_i * exp_x;
87 return traction_local;
115 for (i = 0; i < 3; i++)
122 exp_x = std::exp(-
x);
129 Real dbi_dui, dx_duj;
131 for (i = 0; i < 3; i++)
136 a_i = std::sqrt(2 * std::exp(1));
141 for (
j = 0;
j < 3;
j++)
153 traction_jump_derivatives_local(i,
j) =
154 a_i * exp_x * (dbi_dui - b_i * dx_duj);
158 return traction_jump_derivatives_local;
const RealVectorValue _delta_u0
the displacement jump associated to the maximum traction
RealVectorValue computeTraction()
method computing the total traction
void computeInterfaceTractionAndDerivatives() override
Compute the local traction and derivatives. This method should fill the _interface_traction and _dint...
MaterialProperty< RealVectorValue > & _interface_traction
the value of the traction in local coordinates
SalehaniIrani3DCTraction(const InputParameters ¶meters)
registerMooseObject("SolidMechanicsApp", SalehaniIrani3DCTraction)
const std::vector< double > x
Base class used to implement traction separetion laws for materials whose beahvior can be described u...
RankTwoTensor computeTractionDerivatives()
method computing the total traction derivatives w.r.t. the interface displacement jump ...
Implementation of the non-stateful exponential traction separation law proposed by Salehani...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
const RealVectorValue _max_allowable_traction
the vector representing the maximum allowed traction in each direction
const MaterialProperty< RealVectorValue > & _interface_displacement_jump
The displacment jump in local coordaintes.
static InputParameters validParams()
MaterialProperty< RankTwoTensor > & _dinterface_traction_djump
the traction's derivatives wrt the displacement jump in local coordinates
static InputParameters validParams()