← Back to team overview

yade-users team mailing list archive

Critical bugfix for periodic boundaries (part 2)

 

Dear all,
Another closely related bug has been fixed [1].
In short, it was possible to get different results in terms of overlaps for the same pair due to round-off errors. Some parts of the code were saying "yes" (the sorting phase based on wrapped coordinates) while others were saying "no" (spatialOverlapPeri() based on absolute coordinates), hence breaking the detection logic. It was happening after billions of particle*iteration, with particles traveling away by 1000+ times the period size (definitely increasing the round-off errors). A tolerance is introduced in [1] to avoid this situation.
Again an update is suggested for people using periodic BCs.
Regards
Bruno

[1] https://github.com/yade/trunk/commit/9a255743de1dbdad80de265b79aa21950a3decc7

On 04/14/2017 12:53 PM, Bruno Chareyre wrote:
(forwarded to the intended recipient yade-users)


-------- Forwarded Message --------
Subject: 	Critical bugfix for periodic boundaries
Date: 	Fri, 14 Apr 2017 12:28:55 +0200
From: 	Bruno Chareyre <bruno.chareyre@xxxxxxxxxxxxxxx>
To: 	yade-dev <yade-dev@xxxxxxxxxxxxxxxxxxx>
: 	



Hello all,
A recent commit [1] fixed a critical bug of contact detection in
periodic boundary conditions. All simulations with periodic conditions
are potentially affected.
I strongly suggest an update for everyone using periodic boundaries.

I know personally at least four users who suffered from this bug over
the last six years, I imagine many more have had the same problem
without understanding it.
Typically, a periodic simulation would crash in a (seemingly)
non-deterministic way, after hours or days of simulations. It was
actually the consequence of having one or more particle inside another,
because the contact between them was missed (hence if you have
unexplained crashes, stop the simulation right before it and check if
you find particles overlapping too much).

The logic of periodic sorting is so involved (I'm glad Vaçlav invented
it) that I don't dare trying to explain the problem in details. The
short story: in contrast with the non-periodic case sorting elements of
a periodic ring can't be done in N steps (at least with our algorithm, N
being the number of elements). As it was the case before the fix the
list of positions was left partially un-ordered.

Cheers.

Bruno

[1]
https://github.com/yade/trunk/commit/c7c8e6f62d452c81a31415f05a12587a6cc8c452



--

_______________
Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
Lab. 3SR
BP 53
38041 Grenoble cedex 9
Tél : +33 4 56 52 86 21
Fax : +33 4 76 82 70 43
________________

Email too brief?
Here's why!http://emailcharter.org


--
_______________
Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
Lab. 3SR
BP 53
38041 Grenoble cedex 9
Tél : +33 4 56 52 86 21
Fax : +33 4 76 82 70 43
________________

Email too brief?
Here's why! http://emailcharter.org


References