Skip to content
Snippets Groups Projects
Commit d263ca51 authored by Alexandre Gangloff's avatar Alexandre Gangloff
Browse files

Fix bug: aT2 and aL2 were not in the same mesh

parent 464abaa1
Branches
No related tags found
No related merge requests found
...@@ -1026,19 +1026,18 @@ class LocalDtHyperelasticSolverHandler::LocalDtHyperelasticSolver final ...@@ -1026,19 +1026,18 @@ class LocalDtHyperelasticSolverHandler::LocalDtHyperelasticSolver final
const DiscreteScalarFunction& eps = E_d - 0.5 * dot(u_d, u_d); const DiscreteScalarFunction& eps = E_d - 0.5 * dot(u_d, u_d);
const DiscreteTensorFunction& CG_d = new_CG2->get<DiscreteTensorFunction>(); const DiscreteTensorFunction& CG_d = new_CG2->get<DiscreteTensorFunction>();
const DiscreteScalarFunction& p = fluid * (gamma - 1) * rho_d * eps; const DiscreteScalarFunction& p = fluid * (gamma - 1) * rho_d * eps;
const DiscreteTensorFunction& sigma_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;
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);
aL_d = sqrt((lambda + 2 * mu) / rho_d + gamma * p / rho_d); const DiscreteScalarFunction& new_aT_d = sqrt(mu / rho_d);
aT_d = sqrt(mu / rho_d);
const std::shared_ptr<const DiscreteFunctionVariant>& new_sigma2 = const std::shared_ptr<const DiscreteFunctionVariant>& new_sigma2 =
std::make_shared<const DiscreteFunctionVariant>(sigma_d); std::make_shared<const DiscreteFunctionVariant>(sigma_d);
const std::shared_ptr<const DiscreteFunctionVariant>& new_c = 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 = 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 = 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); dt2 = 0.4 * hyperelastic_dt(new_c);
if(sum_dt + dt2 > dt1){ if(sum_dt + dt2 > dt1){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment