------------------------------------------------------------
revno: 3954
committer: Anton Gladky <[email protected]>
timestamp: Fri 2014-05-16 11:46:02 +0200
message:
  Do not use getTorqueUnsynced and forces.getForceUnsynced in clumps
  
  It seems both of these commands are unsafe. It causes NaN velocities
  in a very specific cases. From my point of view it is OK, because
  addForceTorqueFromMembers does not modify data itself.
modified:
  pkg/dem/NewtonIntegrator.cpp


--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to 
https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/dem/NewtonIntegrator.cpp'
--- pkg/dem/NewtonIntegrator.cpp	2014-05-15 14:47:33 +0000
+++ pkg/dem/NewtonIntegrator.cpp	2014-05-16 09:46:02 +0000
@@ -146,14 +146,8 @@
 			// clumps forces
 			if(b->isClump()) {
 				b->shape->cast<Clump>().addForceTorqueFromMembers(state,scene,f,m);
-				#ifdef YADE_OPENMP
-				//it is safe here, since only one thread will read/write
-				scene->forces.getTorqueUnsynced(id)+=m;
-				scene->forces.getForceUnsynced(id)+=f;
-				#else
 				scene->forces.addTorque(id,m);
 				scene->forces.addForce(id,f);
-				#endif
 			}
 			//in most cases, the initial force on clumps will be zero and next line is not changing f and m, but make sure we don't miss something (e.g. user defined forces on clumps)
 			f=scene->forces.getForce(id); m=scene->forces.getTorque(id);

_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to