From d263ca5195defe6ddc006216329237b4773e6bdd Mon Sep 17 00:00:00 2001
From: Compte local pour Alexandre GANGLOFF <alexandre.gangloff@cea.fr>
Date: Fri, 3 May 2024 10:41:03 +0200
Subject: [PATCH] Fix bug: aT2 and aL2 were not in the same mesh

---
 src/scheme/LocalDtHyperelasticSolver.cpp | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/scheme/LocalDtHyperelasticSolver.cpp b/src/scheme/LocalDtHyperelasticSolver.cpp
index a69082fba..f5ec4f12a 100644
--- a/src/scheme/LocalDtHyperelasticSolver.cpp
+++ b/src/scheme/LocalDtHyperelasticSolver.cpp
@@ -1026,19 +1026,18 @@ class LocalDtHyperelasticSolverHandler::LocalDtHyperelasticSolver final
       const DiscreteScalarFunction& eps   = E_d - 0.5 * dot(u_d, u_d);
       const DiscreteTensorFunction& CG_d  = new_CG2->get<DiscreteTensorFunction>();
       const DiscreteScalarFunction& p = fluid * (gamma - 1) * rho_d * eps;
-      const DiscreteTensorFunction& sigma_d =
-        mu / sqrt(det(CG_d)) * (CG_d - I) + lambda / sqrt(det(CG_d)) * log(sqrt(det(CG_d))) * I - p * I;
-      aL_d = sqrt((lambda + 2 * mu) / rho_d + gamma * p / rho_d);
-      aT_d = sqrt(mu / rho_d);
+      const DiscreteTensorFunction& sigma_d = mu / sqrt(det(CG_d)) * (CG_d - I) + lambda / sqrt(det(CG_d)) * log(sqrt(det(CG_d))) * I - p * I;
+      const DiscreteScalarFunction& new_aL_d = sqrt((lambda + 2 * mu) / rho_d + gamma * p / rho_d);
+      const DiscreteScalarFunction& new_aT_d = sqrt(mu / rho_d);
 
       const std::shared_ptr<const DiscreteFunctionVariant>& new_sigma2 =
         std::make_shared<const DiscreteFunctionVariant>(sigma_d);
         const std::shared_ptr<const DiscreteFunctionVariant>& new_c =
-        std::make_shared<const DiscreteFunctionVariant>(aL_d + aT_d);
+        std::make_shared<const DiscreteFunctionVariant>(new_aL_d + new_aT_d);
       const std::shared_ptr<const DiscreteFunctionVariant>& new_aL2 =
-        std::make_shared<const DiscreteFunctionVariant>(aL_d);
+        std::make_shared<const DiscreteFunctionVariant>(new_aL_d);
       const std::shared_ptr<const DiscreteFunctionVariant>& new_aT2 =
-        std::make_shared<const DiscreteFunctionVariant>(aT_d);
+        std::make_shared<const DiscreteFunctionVariant>(new_aT_d);
 
       dt2 = 0.4 * hyperelastic_dt(new_c);
       if(sum_dt + dt2 > dt1){
-- 
GitLab