Merge pull request #2105 from ndtrung81/rigid-nve-norot

Fixed an issue with fix rigid/nve for bodies with very small values of inertia moments
This commit is contained in:
Axel Kohlmeyer
2020-05-30 19:49:08 -04:00
committed by GitHub

View File

@ -258,7 +258,7 @@ 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;
if (inertia[k-1] == 0.0) phi = 0.0;
else phi /= 4.0 * inertia[k-1];
c_phi = cos(dt * phi);
s_phi = sin(dt * phi);