From 312b9d2f226748ddf2f1f11e24a24c5e2ba1a6e8 Mon Sep 17 00:00:00 2001 From: Chris Maffeo <cmaffeo2@illinois.edu> Date: Fri, 22 Feb 2019 18:36:26 -0600 Subject: [PATCH] Clearing forces on GPU, fixing bug in previous commit --- src/RigidBodyController.cu | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/RigidBodyController.cu b/src/RigidBodyController.cu index 274c15a..1a4b2ae 100644 --- a/src/RigidBodyController.cu +++ b/src/RigidBodyController.cu @@ -322,7 +322,6 @@ void RigidBodyController::updateForces(Vector3* pos_d, Vector3* force_d, int s) /* gpuErrchk(cudaStreamSynchronize( s )); */ /* } */ gpuErrchk(cudaDeviceSynchronize()); - for (int i=0; i < forcePairs.size(); i++) if (forcePairs[i].isOverlapping()) forcePairs[i].processGPUForces(); @@ -584,6 +583,10 @@ void RigidBodyForcePair::processGPUForces() { Vector3 o2 = getOrigin2(i); tmpT = tmpT - (rb1->getPosition() - o2).cross( tmpF ); + // clear forces on GPU + gpuErrchk(cudaMemset((void*)(forces_d[i]),0,nb*sizeof(Vector3))); + gpuErrchk(cudaMemset((void*)(torques_d[i]),0,nb*sizeof(Vector3))); + // sum forces and torques f = f + tmpF; t = t + tmpT; -- GitLab