← Back to team overview

yade-dev team mailing list archive

Re: SPOLY3D

 


2. The repulsive force of both polyhedra depends on penetration of their bounding spheres, do I read it right? (dist=normOf(distance_Edge3d_Edge3d(...)); delta=R1+R2-dist; if(delta>0){ f=n*(Kn*delta) }). I am wondering how that could give correct results, especially for complex shapes like the jumping cow you sent.
The idea is to allow multiple contacts between each pair of interacting bodies. The contact interactions are given by well defined equations, that you can found in this paper.
Multiple contacts beween one pair of bodies are not possible in yade; adding it would be far-reaching and will not (as I see it) happen.
  BTW: what does means "aabb"? esys refers to esys_Particle?
Oh, sorry. Axis-aligned bounding box. esys=ESyS-Particle, yes (really nice piece of code; you probably know it as you are at uq.edu.au)
As far as I know YADE detect collision by enclosing particles in a box and checking whether the boxes overlap. for complex shapes I dont think there is a large difference
between this and grid-based (link cell) collision-detection.
Yes, yade uses aabb-based collision detection, which is O(n log(n)). Given that the grid algorithms are O(n), if yade development continues, I would consider grid-based algorithm at the top of the list.
As you say, the most important
is to break the particle into features, and then perform neighbor identification between their features (in my case the features are vertices ,edges and faces). This is something I did in 2D and that i have to do in 3D in order to speed up the simulations. But for the moment the contact detection of YADE is enough for me
This is misunderstanding. Yade doesn't decompose bodies into features. You build the bounding AABB for the whole body and then your geometry algorithms are given just 2 bodies to check their collision. If you break them in features internally, that is fine; but the bounding box will be very large, creating large number of spurious bounding volumes overlaps, which can have severe performance impact.
You are right, SPOLY3D is not intended to be sophisticated, but it is a simple algorithm to handle collision with arbitrary shaped particles. My interest is to merge SPOLY3D with the contact detection algorithm and graphical interface of YADE. I really think YADE is one of the best option, and i hope I will became one of the YADE's supporters for the future.
Hm... then why not using gts for the polyhedra intersections instead of simple (therefore probably inefficient) algorithms? Currently you can create arbitrary meshed surface by clumping the facets in one body (which has collision detection per-facet, but moves as rigid whole). What you don't get is mutual interactions of these two meshed surfaces -- maybe that is what spoly3d can be good for; however, that would mean bunch of work to define poly-poly, poly-sphere, poly-facet interactions.

Graphical interface: the only graphics you might get is the opengl rendering of the polyhedron (if you write the code).

Regards, Vaclav



Follow ups

References