14template <
int DisplacementDim>
15std::optional<std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector,
17 DisplacementDim>::MaterialStateVariables>,
26 auto const& eps_m = std::get<MPL::SymmetricTensor<DisplacementDim>>(
28 auto const& eps_m_prev = std::get<MPL::SymmetricTensor<DisplacementDim>>(
30 auto const& sigma_prev = std::get<MPL::SymmetricTensor<DisplacementDim>>(
31 variable_array_prev.
stress);
34 double const strength =
_strength(t, x)[0];
35 double const strength_prev =
_strength(t - dt, x)[0];
38 KelvinVector sigma = sigma_prev + C * (eps_m - eps_m_prev);
41 double const sig_tr = Invariants::trace(sigma);
42 if (strength != strength_prev && strength_prev != 0.0 && sig_tr != 0.0)
45 strength * Invariants::trace(sigma_prev) / (strength_prev * sig_tr);
48 return {std::make_tuple(
55template <
int DisplacementDim>
65 tangentStiffness.template topLeftCorner<3, 3>().setConstant(
67 tangentStiffness.noalias() += 2 *
_mp.mu(t, x) * KelvinMatrix::Identity();
68 return tangentStiffness;
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
KelvinMatrix getElasticTensor(double const t, ParameterLib::SpatialPosition const &x, double const T) const
std::optional< std::tuple< typename MechanicsBase< DisplacementDim >::KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, typename MechanicsBase< DisplacementDim >::KelvinMatrix > > integrateStress(MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
KelvinVector mechanical_strain
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix