47#define _IFT_BaseHyperElasticMaterial_k "k"
48#define _IFT_BaseHyperElasticMaterial "type"
108 return ( 0.5 * ( ( F(
k_3, 0) * F(
k_3, 0) + F(
k_3, 1) * F(
k_3, 1) + F(
k_3, 2) * F(
k_3, 2) ) * ( F(
k_3, 0) * F(
k_3, 0) + F(
k_3, 1) * F(
k_3, 1) + F(
k_3, 2) * F(
k_3, 2) ) - F(
k_3, 0) * F(
k_3,
l_3) * F(
m_3,
l_3) * F(
m_3, 0) - F(
k_3, 1) * F(
k_3,
l_3) * F(
m_3,
l_3) * F(
m_3, 1) - F(
k_3, 2) * F(
k_3,
l_3) * F(
m_3,
l_3) * F(
m_3, 2) ) );
141 return ( 0.5 * ( trC * trC - ( C(
k_3, 0) * C(
k_3, 0) + C(
k_3, 1) * C(
k_3, 1) + C(
k_3, 2) * C(
k_3, 2) ) ) );
177 dI2_C_dF(
i_3,
j_3) = 2. * ( F(
k_3, 0) * F(
k_3, 0) + F(
k_3, 1) * F(
k_3, 1) + F(
k_3, 2) * F(
k_3, 2) ) * F(
i_3,
j_3) - 2. * F(
i_3,
m_3) * F(
k_3,
m_3) * F(
k_3,
j_3);
215 Tensor2_3d I(1.0, 0., 0., 0., 1.0, 0., 0., 0., 1.0);
228 Tensor2_3d I(1.0, 0., 0., 0., 1.0, 0., 0., 0., 1.0);
230 d2I2_C_dF2(
i_3,
j_3,
k_3,
l_3) = 4. * F(
i_3,
j_3) * F(
k_3,
l_3) - 2. * F(
i_3,
l_3) * F(
k_3,
j_3) + 2. * ( F(
m_3, 0) * F(
m_3, 0) + F(
m_3, 1) * F(
m_3, 1) + F(
m_3, 2) * F(
m_3, 2) ) * I(
i_3,
k_3) * I(
j_3,
l_3) - 2. * F(
m_3,
l_3) * F(
m_3,
j_3) * I(
i_3,
k_3) - 2. * F(
i_3,
m_3) * F(
k_3,
m_3) * I(
j_3,
l_3);
306 Tensor2_3d I(1.0, 0., 0., 0., 1.0, 0., 0., 0., 1.0);
310 d2I1_Cdev_dF2(
i_3,
j_3,
k_3,
l_3) = 2. / 3. * pow(F.
compute_determinant(), -2. / 3.) * ( 3. * I(
i_3,
k_3) * I(
j_3,
l_3) + I1 * iF(
j_3,
k_3) * iF(
l_3,
i_3) + 2. / 3. * I1 * iF(
j_3,
i_3) * iF(
l_3,
k_3) - 2. * iF(
l_3,
k_3) * F(
i_3,
j_3) - 2. * iF(
j_3,
i_3) * F(
k_3,
l_3) );
311 return d2I1_Cdev_dF2;
321 Tensor2_3d I(1.0, 0., 0., 0., 1.0, 0., 0., 0., 1.0);
323 auto J_43 = pow(J, -4. / 3.);
332 d2I2_Cdev_dF2(
i_3,
j_3,
k_3,
l_3) = 2. * J_43 * ( I1 * I(
i_3,
k_3) * I(
j_3,
l_3) + 2. * F(
i_3,
j_3) * F(
k_3,
l_3) - 4. / 3. * I1 * F(
i_3,
j_3) * iF(
l_3,
k_3) + 8. / 9. * I2 * iF(
j_3,
i_3) * iF(
l_3,
k_3) - 4. / 3. * I1 * iF(
j_3,
i_3) * F(
k_3,
l_3) + 4. / 3. * FC(
k_3,
l_3) * iF(
j_3,
i_3) + 2. / 3. * I2 * iF(
j_3,
k_3) * iF(
l_3,
i_3) + 4. / 3. * FC(
i_3,
j_3) * iF(
l_3,
k_3) - C(
l_3,
j_3) * I(
i_3,
k_3) - F(
i_3,
l_3) * F(
k_3,
j_3) - B(
i_3,
k_3) * I(
l_3,
j_3) );
333 return d2I2_Cdev_dF2;
Tensor2_3d compute_dJ_dF(const Tensor2_3d &F) const
Tensor4_3d compute_d2I1_Cdev_dF2(const Tensor2_3d &F) const
BaseHyperElasticMaterial()
double compute_I1_C_from_C(const Tensor2_3d &C) const
double compute_I3_C_from_F(const Tensor2_3d &F) const
Tensor4_3d compute_d2J_dF2(const Tensor2_3d &F) const
Tensor4_3d compute_d2I2_Cdev_dF2(const Tensor2_3d &F) const
double compute_I3_C_from_C(const Tensor2_3d &C) const
Tensor4_3d compute_d2I3_C_dF2(const Tensor2_3d &F) const
Tensor2_3d compute_dI2_Cdev_dF(const Tensor2_3d &F) const
Tensor4_3d compute_d2I2_C_dF2(const Tensor2_3d &F) const
Tensor2_3d compute_dI1_Cdev_dF(const Tensor2_3d &F) const
double compute_I2_C_from_F(const Tensor2_3d &F) const
double compute_I2_C_from_C(const Tensor2_3d &C) const
~BaseHyperElasticMaterial()
VolumetricEnergyType VET_Type
volumetric energy type
double compute_I1_Cdev_from_F(const Tensor2_3d &F) const
double compute_I1_C_from_F(const Tensor2_3d &F) const
Tensor2_3d compute_dI1_C_dF(const Tensor2_3d &F) const
double compute_I2_Cdev_from_F(const Tensor2_3d &F) const
Tensor2_3d compute_dI3_C_dF(const Tensor2_3d &F) const
Tensor2_3d compute_dI2_C_dF(const Tensor2_3d &F) const
Tensor4_3d compute_d2I1_C_dF2(const Tensor2_3d &F) const
Tensor2_3d compute_inverse() const
Tensor2_3d compute_cofactor() const
double compute_determinant() const
Tensor2_3d compute_tensor_cross_product(const Tensor2_3d &B) const
std::pair< double, Tensor2_3d > compute_determinant_and_cofactor() const
static FTensor::Index< 'k', 3 > k_3
static FTensor::Index< 'j', 3 > j_3
static FTensor::Index< 'i', 3 > i_3
static FTensor::Index< 'l', 3 > l_3
static FTensor::Index< 'm', 3 > m_3