Skip to content
Snippets Groups Projects
Commit c2e310dc authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[MatL] Ehlers simplify sqrt(a)^3 to a*sqrt(a).

parent b7c8cab5
No related branches found
No related tags found
No related merge requests found
...@@ -193,14 +193,13 @@ double yieldFunction(MaterialProperties const& mp, ...@@ -193,14 +193,13 @@ double yieldFunction(MaterialProperties const& mp,
double const I_1_squared = boost::math::pow<2>(s.I_1); double const I_1_squared = boost::math::pow<2>(s.I_1);
assert(s.J_2 != 0); assert(s.J_2 != 0);
return std::sqrt(s.J_2 * return std::sqrt(
std::pow(1 + s.J_2 *
mp.gamma * s.J_3 / std::pow(1 + mp.gamma * s.J_3 / (s.J_2 * std::sqrt(s.J_2)),
boost::math::pow<3>(std::sqrt(s.J_2)), mp.m) +
mp.m) + mp.alpha / 2. * I_1_squared +
mp.alpha / 2. * I_1_squared + boost::math::pow<2>(mp.delta) *
boost::math::pow<2>(mp.delta) * boost::math::pow<2>(I_1_squared)) +
boost::math::pow<2>(I_1_squared)) +
mp.beta * s.I_1 + mp.epsilon * I_1_squared - k; mp.beta * s.I_1 + mp.epsilon * I_1_squared - k;
} }
...@@ -227,7 +226,7 @@ calculatePlasticResidual( ...@@ -227,7 +226,7 @@ calculatePlasticResidual(
auto const& P_dev = Invariants::deviatoric_projection; auto const& P_dev = Invariants::deviatoric_projection;
auto const& identity2 = Invariants::identity2; auto const& identity2 = Invariants::identity2;
double const theta = s.J_3 / boost::math::pow<3>(std::sqrt(s.J_2)); double const theta = s.J_3 / (s.J_2 * std::sqrt(s.J_2));
typename SolidEhlers<DisplacementDim>::ResidualVectorType residual; typename SolidEhlers<DisplacementDim>::ResidualVectorType residual;
// calculate stress residual // calculate stress residual
...@@ -285,7 +284,7 @@ typename SolidEhlers<DisplacementDim>::JacobianMatrix calculatePlasticJacobian( ...@@ -285,7 +284,7 @@ typename SolidEhlers<DisplacementDim>::JacobianMatrix calculatePlasticJacobian(
auto const& P_dev = Invariants::deviatoric_projection; auto const& P_dev = Invariants::deviatoric_projection;
auto const& identity2 = Invariants::identity2; auto const& identity2 = Invariants::identity2;
double const theta = s.J_3 / boost::math::pow<3>(std::sqrt(s.J_2)); double const theta = s.J_3 / (s.J_2 * std::sqrt(s.J_2));
OnePlusGamma_pTheta const one_gt{mp.gamma_p, theta, mp.m_p}; OnePlusGamma_pTheta const one_gt{mp.gamma_p, theta, mp.m_p};
// inverse of deviatoric stress tensor // inverse of deviatoric stress tensor
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment