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