← Back to team overview

yade-dev team mailing list archive

[Bug 1301443] Re: Spheres/Box contact : spheres ori suddenly set to NaN.

 

We are looking at the right direction Bruno :
Spheres that doesn't disappear have a minimum value of angVel of about 1e-11
All spheres that disappear have an angVel value of about 1e-161.

To illustrate that, I wait for all spheres to deposit, and before the
first one disappears, I make this (the first three values are the walls)
:

for b in O.bodies:
    if(abs(b.state.angVel[2])<1e-20):
        print b.id,b.state.angVel[2]

0 0.0
1 0.0
2 0.0
5 9.26598693072e-161
12 -1.31771647554e-149
48 -2.83070071901e-159
116 -1.20280838825e-134
119 -1.42685193682e-153
192 -3.04156472344e-158
202 -9.57516159925e-161
277 -5.13686301693e-158

Then I wait for spheres to disappear for a while and I do :

for b in O.bodies:
    if(isnan(b.state.ori[0])):
        print b.id

5
12
48
116
119
192
202
277

The bug fix looks like a min threshold value ...

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

Title:
  Spheres/Box contact : spheres ori suddenly set to NaN.

Status in Yet Another Dynamic Engine:
  New

Bug description:
  Hi,

  Please see and launch the attached script.
  Some spheres are falling into a box because of gravity. The simulation starts well, but when all particles are almost steady, wait for a few seconds and you will see that some of them who are in contact with the bottom wall will disapear. I spent some time to investigate and that's my preliminary conclusions :
  - it is fully reproducible
  - particles don't really disappear : their orientation is suddenly turned to Quaternion(Nan,Nan,Nan,2*pi). It's not linked with a high torque on them. All other attributes remains okay, and the other particles still can interact with it. If you manually set the orientation to a correct value after it disappears, it will appear again at the right place.
  - you can reproduce this with one sphere (uncomment the last line of the script and comment the previous paragraph) : let it fall then apply to it a little angVel : "O.bodies[-1].state.angVel=(0.,0.,0.001)". It will disappear after a few timesteps.
  - it's independent on the timestep value.
  - it's dependant on the interpenetration of the contact : if you increase the gravity or decrease the young modulus, you will be able to avoid this behaviour.

  Does somebody have an idea ? I think it's a rotation calculation
  issue, in a very specific geometric case.

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


References