Welcome to ask.woodem.org. You may post when you login through your GitHub account.

Possible unusual behaviour when dropping spheres onto facets

0 votes
asked Jul 21, 2015 by GeekEqualsGood42 (1,030 points)

Hi Vaclav,


In some of the tests I am running (which use predominantly IceMats, but still a linear contact model), I need to drop spheres onto meshed (multi-faceted) triangles that have been imported via importSTL. I noticed a discrepancy between two of the tests that I ran.

The first of these tests involved dropping a group of spheres onto a single, large facet under gravity, and then waiting for 10000 timesteps to see what happened to them. During this time, a few of the spheres got unbalanced, rolled around, and eventually fell off the edges of the facet.

I then ran another test where I dropped the exact same group of spheres (same initial locations) onto a meshed facet, imported from importSTL, containing about 9000 triangles. This mesh had exactly the same vertex coordinates as the single large facet did. I waited for 10000 timesteps, just like in the other one. This time, the spheres rolled in different directions than they did for the single facet. A few spheres fell off again, but the ones that fell off this time were different from those that fell off the single facet.

Why would this be? The mesh and the large triangle were in exactly the same locations.


Christopher Stanbridge

1 Answer

0 votes
answered Jul 22, 2015 by eudoxos (49,070 points)
selected Jul 22, 2015 by GeekEqualsGood42
Best answer

Hi Chris,

you are touching an intersting and problematic topic of triangualted surfaces. In DEM, usually particles have only 2-contacts, and don't know about topology of other particles; plus, particles deformations are modeled as small overlaps. Now imagine a sphere which is lightly overlapping with triangulated surfaces rolling over the edge between two facets: it will suddenly be pushed upwards by 2 contacts (instead of one) and the edge will push it also sideways (very slightly).

I wrote a script to demonstrate that: the trace is scaled vertically 10000x (the overlaps are really very small) and you see that there are 2 contacts around the common edges, and that's where the center moves upwards, then falling again and so on. Let's see if embedded videos works:

OK, they do, but youtube only plays this with 360px quality, horrible; this is an image of that:

Now, is there a way around that? You bet there is, but it is not implemented (though I though about it a lot, and some products, like PFC, have an optional feature called "smooth surfaces" which AFAICT does just that). It incurs some performance penalty, as contacts are not independent on each other (in each step, you have to solve all contacts of one particle first, then somehow decide how to put them together and so on; that implies worse parallelism results), and corner cases are really hard to do: common edge is easy, but now what you do when a sphere rolls on the edge, and comes to a vertex common to e.g. 6 facets which are not co-planar? Smoothness of the solution (no abrupt change of normal, or of force between consecutive steps)  is a requirement here.

What you see is a result of that. The usual practice is just to think, ok, we know it is not perfect, but it has only a small effect on the global result. If you need more (e.g. discretization-independent contact with the surface), you have hard things to solve ahead of you.

HTH, Václav



commented Jul 22, 2015 by eudoxos (49,070 points)

I see the embedded image was converted to JPG :| this is the same one uploaded externally as PNG (right-click and select "View image" to see it hi-res): facet-edge