yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #10673
[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