From f3b002a1c992f7e318fa95fadb47009390c7fa62 Mon Sep 17 00:00:00 2001 From: Chris Maffeo <cmaffeo2@illinois.edu> Date: Wed, 27 Jan 2016 20:05:52 -0600 Subject: [PATCH] corrected bugs: torque in RB integrator and RB linear interpolation --- RigidBody.cu | 4 ++-- RigidBodyGrid.cu | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/RigidBody.cu b/RigidBody.cu index 04acb90..ef4d9c6 100644 --- a/RigidBody.cu +++ b/RigidBody.cu @@ -99,11 +99,11 @@ void RigidBody::integrate(int startFinishAll) { if (startFinishAll == 0 || startFinishAll == 1) { // propogate momenta by half step momentum += 0.5 * timestep * force * impulse_to_momentum; - angularMomentum += 0.5 * timestep * torque * impulse_to_momentum; + angularMomentum += 0.5 * timestep * orientation.transpose()*torque * impulse_to_momentum; } else { // propogate momenta by a full timestep momentum += timestep * force * impulse_to_momentum; - angularMomentum += timestep * torque * impulse_to_momentum; + angularMomentum += timestep * orientation.transpose()*torque * impulse_to_momentum; } DebugM(3, " position before: " << position << "\n" << endi); diff --git a/RigidBodyGrid.cu b/RigidBodyGrid.cu index d346732..5c63cf8 100644 --- a/RigidBodyGrid.cu +++ b/RigidBodyGrid.cu @@ -323,7 +323,7 @@ DEVICE ForceEnergy RigidBodyGrid::interpolateForceDLinearly(const Vector3& l) co } // Mix along y. g3[0][iz] = wy * (g2[0][1] - g2[0][0]) + g2[0][0]; - g3[1][iz] = (g2[1][1] - g2[1][0]) + g2[1][0]; + g3[1][iz] = (g2[1][1] - g2[1][0]); g3[2][iz] = wy * (g2[1][1] - g2[1][0]) + g2[1][0]; } // Mix along z. -- GitLab