17 "state-based peridynamic correspondence models");
19 params.
addParam<std::vector<MaterialPropertyName>>(
22 "List of eigenstrains to be coupled in non-ordinary state-based mechanics kernels");
29 _dgrad_old(getMaterialPropertyOld<
RankTwoTensor>(
"deformation_gradient")),
30 _E_inc(getMaterialProperty<
RankTwoTensor>(
"strain_increment")),
31 _R_inc(getMaterialProperty<
RankTwoTensor>(
"rotation_increment"))
48 else if (component == 1)
50 else if (component == 2)
73 for (
unsigned int i = 0; i < 3; ++i)
74 for (
unsigned int j = 0; j < 3; ++j)
75 for (
unsigned int k = 0; k < 3; ++k)
76 for (
unsigned int l = 0; l < 3; ++l)
77 for (
unsigned int m = 0; m < 3; ++m)
78 for (
unsigned int n = 0; n < 3; ++n)
79 for (
unsigned int r = 0; r < 3; ++r)
82 (
_R_inc[nd](j, n) * (0.5 * I(k, m) * I(i, l) - I(m, l) *
_R_inc[nd](i, k) +
84 _R_inc[nd](i, m) * (0.5 * I(k, n) * I(j, l) - I(n, l) *
_R_inc[nd](j, k) +
96 for (
unsigned int k = 0; k < 3; ++k)
97 for (
unsigned int l = 0; l < 3; ++l)
98 for (
unsigned int m = 0; m < 3; ++m)
99 for (
unsigned int n = 0; n < 3; ++n)
100 Tp2(k, l, m, n) += -invFhat(k, m) * invFhat(n, l);
118 Real detF =
_dgrad[nd].det();
119 for (
unsigned int i = 0; i < 3; ++i)
120 for (
unsigned int j = 0; j < 3; ++j)
123 dJdU += detF * invF(j, i) *
_ddgraddu[nd](i, j);
124 else if (component == 1)
125 dJdU += detF * invF(j, i) *
_ddgraddv[nd](i, j);
126 else if (component == 2)
127 dJdU += detF * invF(j, i) *
_ddgraddw[nd](i, j);
159 else if (component == 1)
174 else if (component == 2)
190 dinvFTdU /=
_dgrad[nd].det();
191 for (
unsigned int i = 0; i < 3; ++i)
192 for (
unsigned int j = 0; j < 3; ++j)
193 for (
unsigned int k = 0; k < 3; ++k)
194 for (
unsigned int l = 0; l < 3; ++l)
197 dinvFTdU(i, j) -= invF(i, j) * invF(l, k) *
_ddgraddu[nd](k, l);
198 else if (component == 1)
199 dinvFTdU(i, j) -= invF(i, j) * invF(l, k) *
_ddgraddv[nd](k, l);
200 else if (component == 2)
201 dinvFTdU(i, j) -= invF(i, j) * invF(l, k) *
_ddgraddw[nd](k, l);
Base kernel class for bond-associated correspondence material models.
const MaterialProperty< RankTwoTensor > & _ddgraddu
const MaterialProperty< RankTwoTensor > & _ddgraddw
const MaterialProperty< RankFourTensor > & _Jacobian_mult
const MaterialProperty< RankTwoTensor > & _dgrad
const MaterialProperty< RankTwoTensor > & _ddgraddv
static InputParameters validParams()
Real computeDJDU(unsigned int component, unsigned int nd)
Function to compute derivative of determinant of deformation gradient with respect to displacements.
const MaterialProperty< RankTwoTensor > & _E_inc
static InputParameters validParams()
RankTwoTensor computeDinvFTDU(unsigned int component, unsigned int nd)
Function to compute derivative of deformation gradient inverse with respect to displacements.
MechanicsFiniteStrainBaseNOSPD(const InputParameters ¶meters)
RankFourTensor computeDSDFhat(unsigned int nd)
Function to compute derivative of stress with respect to derived deformation gradient.
virtual RankTwoTensor computeDSDU(unsigned int component, unsigned int nd) override
Function to compute derivative of stress with respect to displacements for small strain problems.
const MaterialProperty< RankTwoTensor > & _dgrad_old
Material point based material property.
const MaterialProperty< RankTwoTensor > & _R_inc
RankTwoTensorTempl< T > inverse() const