diff --git a/MaterialLib/SolidModels/MFront/PowerLawLinearCreep.mfront b/MaterialLib/SolidModels/MFront/PowerLawLinearCreep.mfront index 4f945dc4d7296c85f4692e1934ae627ff195389e..501ebd2f3eff234e43e17486c81643bca832b7c9 100644 --- a/MaterialLib/SolidModels/MFront/PowerLawLinearCreep.mfront +++ b/MaterialLib/SolidModels/MFront/PowerLawLinearCreep.mfront @@ -51,7 +51,7 @@ Ru.setEntryName("UniversalGasConstant"); @Integrator { const auto s = deviator(sig); - const auto norm_s = sigmaeq(sig) / std::sqrt(3. / 2.); + const auto norm_s = std::max(sigmaeq(sig),1e-14*mu) / std::sqrt(3. / 2.); constexpr auto Pdev = Stensor4::K(); const auto bPL = std::pow(3. / 2., (m + 1) / 2) * A1 * @@ -59,15 +59,12 @@ Ru.setEntryName("UniversalGasConstant"); const auto bL = 3. / 2. * A2 / std::pow(Dgrain, 3) * std::exp(-Q2 / Ru / (T + dT)) / sig0; - if (norm_s > 1e-14 * mu) - { - const auto norm_s_pow = std::pow(norm_s, m - 1); - depsPL = dt * bPL * norm_s_pow * s; - depsL = dt * bL * s; - feel += depsPL + depsL; - dfeel_ddeel += - 2. * mu * dt * - (bPL * norm_s_pow * (Pdev + (((m - 1) / norm_s / norm_s) * s ^ s)) + - bL * Pdev); - } + const auto norm_s_pow = std::pow(norm_s, m - 1); + depsPL = dt * bPL * norm_s_pow * s; + depsL = dt * bL * s; + feel += depsPL + depsL; + dfeel_ddeel += + 2. * mu * dt * + (bPL * norm_s_pow * (Pdev + (((m - 1) / norm_s / norm_s) * s ^ s)) + + bL * Pdev); }