From fef2150bfba2c421c20d3afe9e633d932ed42920 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Fri, 23 Feb 2024 13:29:18 -0700 Subject: [PATCH] Fixing rare precision error in Tsuji damping --- src/GRANULAR/gran_sub_mod_damping.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/GRANULAR/gran_sub_mod_damping.cpp b/src/GRANULAR/gran_sub_mod_damping.cpp index 7d6a02b8f0..c635d90265 100644 --- a/src/GRANULAR/gran_sub_mod_damping.cpp +++ b/src/GRANULAR/gran_sub_mod_damping.cpp @@ -130,6 +130,8 @@ void GranSubModDampingTsuji::init() double GranSubModDampingTsuji::calculate_forces() { - damp_prefactor = damp * sqrt(gm->meff * gm->Fnormal / gm->delta); + // in case argument < 0 due to precision issues + double sqrt1 = MAX(0, gm->meff * gm->Fnormal / gm->delta); + damp_prefactor = damp * sqrt(sqrt1); return -damp_prefactor * gm->vnnr; }