From 093f981719a24a25c0aa2a8184c287741b38c615 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 23 May 2020 23:52:00 -0500 Subject: [PATCH] Improved the way body inertia moments are checked if they are zero when updating body quaterions in fix rigid/nve --- src/math_extra.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/math_extra.cpp b/src/math_extra.cpp index 797d210d0e..0fe04b6d43 100644 --- a/src/math_extra.cpp +++ b/src/math_extra.cpp @@ -258,8 +258,8 @@ void no_squish_rotate(int k, double *p, double *q, double *inertia, // obtain phi, cosines and sines phi = p[0]*kq[0] + p[1]*kq[1] + p[2]*kq[2] + p[3]*kq[3]; - if (fabs(inertia[k-1]) < 1e-6) phi *= 0.0; - else phi /= 4.0 * inertia[k-1]; + phi /= (4.0 * inertia[k-1]); + if (!std::isfinite(phi)) phi = 0.0; c_phi = cos(dt * phi); s_phi = sin(dt * phi);