From 9f15f3e31442c7956e4c52808649503424ff036a Mon Sep 17 00:00:00 2001 From: labourasse <labourassee@gmail.com> Date: Thu, 25 May 2023 18:42:33 +0200 Subject: [PATCH] Add an epsilon to avoid collapsing stress tensor issue --- src/scheme/HypoelasticSolver.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/scheme/HypoelasticSolver.cpp b/src/scheme/HypoelasticSolver.cpp index f41632e76..c4076e353 100644 --- a/src/scheme/HypoelasticSolver.cpp +++ b/src/scheme/HypoelasticSolver.cpp @@ -491,10 +491,11 @@ class HypoelasticSolverHandler::HypoelasticSolver final : public HypoelasticSolv momentum_fluxes += Fjr(j, R); energy_fluxes += dot(Fjr(j, R), ur[r]); } + const double eps = 1.e-16; const Rdxd I = identity; const double norms = l2Norm(sigmad[j]); - const double yieldf = norms - std::sqrt(2 / 3) * yieldy[j]; - const Rdxd N = 1. / norms * sigmad[j]; + const double yieldf = norms - std::sqrt(2. / 3.) * yieldy[j]; + const Rdxd N = 1. / (norms + eps) * sigmad[j]; const Rdxd D = 0.5 * (gradv + transpose(gradv)); const Rdxd Dd = D - 1 / 3 * trace(D) * I; const Rdxd Dp = chi(yieldf) * scalarProduct(N, D) * N; -- GitLab