← Back to team overview

yade-dev team mailing list archive

[Bug 923929] Re: OMP force container fails to reset forces on clump members

 

addForce() is thread-safe because each thread is computing its own partial sum of forces. The total is sync'ed only once a step by NewtonIntegrator. 
getForceUnsynced(id)+= is not thread safe, OTOH, all threads would access the same value. It should not be used except in a few exceptions.

-- 
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
https://bugs.launchpad.net/bugs/923929

Title:
  OMP force container fails to reset forces on clump members

Status in Yet Another Dynamic Engine:
  Incomplete

Bug description:
  When clumps are used and no gravity engine is present, force containers are not reseting the forces on clump members. Junk values are accumulated over time and the clump itself soon disappears.
  A workaround is to addForce(0,0,0) once at startup on all bodies, this is done in Newton::action() currently.
  This is most probably (still to check) because containers sizes are checked vs. body Id only in addForce, which is never applied on clump members before they are in contact with something. Not clear is why the same problem does not appear also on standalone bodies.
  The crashing example was obtained from a series of personal scripts from Klaus Thoeni, not disclosed here.

To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/923929/+subscriptions


References