interaction not detected in a VERY specific (body size = period size) case

Bug #1112763 reported by Bruno Chareyre
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Yade
Confirmed
Low
Bruno Chareyre

Bug Description

Details and script here, thanks Julia:
https://answers.launchpad.net/yade/+question/220785

Changed in yade:
status: New → Confirmed
importance: Undecided → Low
assignee: nobody → Bruno Chareyre (bruno-chareyre)
Revision history for this message
Giulia Macaro (giulia-macaro) wrote :

If I define the dimensions of the periodic cell first, and then the radius of the big sphere as a multiple of the width of the periodic cell (which makes more sense, as I want the big body to be bigger than the periodic cell), I get something that I don't understand.

Using the script in the previous link with following lines to define the geometry:

# Periodic cell
cell0 = 1
cell1 = 10
cell2 = 10
# Spheres
DbigSphere = cell0*1.
radius_bigSphere= DbigSphere/2.
radius_sph = 1./10.

and varying " DbigSphere = cell0*NUMBER"
if NUMBER = 1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 3, 3.1 to 3.7 the interaction is not detected
if NUMBER = 1.8, 1.9, 2, 2.1 to 2.9, 3.8, 3.9, 4., 4.1 the interaction is detected
I am totally lost now. Plus, geometries different from this one give different values for which the interaction is or is not detected. So the value that works for one simulation, does not necessarily work for a different one.

This is a problem when I save and then reload my simulation with the body bigger than the period, where the big body is already in contact with some of the small bodies.
In that case some interactions are not detected (probably because their bounding boxes were exactly touching each other at the step I reloaded the test), and I cannot predict it. There are too many variables (such as width of the period, dimension of the big body, relative position of the big body with the small ones) that change and I do not have a clear understanding of how they are related to this bug.

Revision history for this message
Jérôme Duriez (jduriez) wrote :

See also https://answers.launchpad.net/yade/+question/246392 : another example of buggy situation related with this ?

Revision history for this message
Jérôme Duriez (jduriez) wrote :

Hi

I'm attaching a new version of InsertionSortCollider that could solve this bug.

At least, it solves https://answers.launchpad.net/yade/+question/246392 (I have now 9 sphere-box interactions in any case !!!). I think that the problem was caused by the "wrap" of bound extents inside cells. I disabled this wrapping for big bodies, in case "allowBiggerThanPeriod"

Since it is a quite central piece of code, and because I did not get 100% of InsertionSortCollider, I do not commit it directly, to avoid stress to anyone. But, as I said, it solves my problem, so it might be useful.

(In the end, the detail of extent-threshold is still to be discussed, I used 0.99, as in l.500, but l.534 speaks about a "half" of the period.)

Jérôme

Revision history for this message
Bruno Chareyre (bruno-chareyre) wrote :

Thank you Jerôme! You did the deep diving. I will check it.

Revision history for this message
Jérôme Duriez (jduriez) wrote :

Maybe the previous fix is incomplete : efficient for initial situation, but not for contacts created during simulation ? (see l.513-514). Will try to investigate more

Revision history for this message
Janek Kozicki (cosurgi) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.