67 A(
i_3,
j_3,
k_3,
l_3) = 0.5 *
mu / I3 * (
compute_d2I2_C_dF2(F)(
i_3,
j_3,
k_3,
l_3) - 1. / I3 * ( dI2_dF(
i_3,
j_3) * dI3_dF(
k_3,
l_3) + dI3_dF(
i_3,
j_3) * dI2_dF(
k_3,
l_3) ) + ( sqrt(I3) - I2 / I3 ) *
compute_d2I3_C_dF2(F)(
i_3,
j_3,
k_3,
l_3) + ( 2. * I2 / I3 / I3 - 0.5 / sqrt(I3) ) * dI3_dF(
i_3,
j_3) * dI3_dF(
k_3,
l_3) );
89std::unique_ptr<MaterialStatus>
92 return std::make_unique<StructuralMaterialStatus>(gp);
#define _IFT_BlatzKoMaterial_mu
#define REGISTER_Material(class)
double compute_I3_C_from_F(const Tensor2_3d &F) const
Tensor4_3d compute_d2I3_C_dF2(const Tensor2_3d &F) const
Tensor4_3d compute_d2I2_C_dF2(const Tensor2_3d &F) const
double compute_I2_C_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
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
FloatMatrixF< 9, 9 > give3dMaterialStiffnessMatrix_dPdF(MatResponseMode, GaussPoint *gp, TimeStep *tStep) const override
void initializeFrom(InputRecord &ir) override
FloatArrayF< 9 > giveFirstPKStressVector_3d(const FloatArrayF< 9 > &vF, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
void letTempPVectorBe(const FloatArray &v)
Assigns tempPVector to given vector v.
const FloatArray & giveTempFVector() const
Returns the const pointer to receiver's temporary deformation gradient vector.
void letTempFVectorBe(const FloatArray &v)
Assigns tempFVector to given vector v.
void initializeFrom(InputRecord &ir) override
const FloatArrayF< 9 > to_voigt_form()
FloatMatrixF< 9, 9 > to_voigt_form()
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