← Back to team overview

yade-users team mailing list archive

Re: tetrahedra simluation


Vaclav SMILAUER said:     (by the date of Thu, 05 Oct 2006 11:46:33 +0200)

> Hello,
> I looked quickly at the 4hedra elements of which implementation is 
> incomplete (some instability as seen in the video from the website). 
> However, I could not find that incomplete code neither in the release 
> nor in the SVN. Can I get some pointers on that (contact to the author 
> etc.)? (Other questions will follow later). Thanks,

examine classes TetrahedronsTest, SwiftPolyhedronProximityModeler,
Box2PolyhedralSweptSphere, Tetrahedron2PolyhedralSweptSphere, etc...

you can find them in directory yade-packages/yade-package-dem,

you can run the example by chosing in yade menu: 

Generator Name: TetrahedronsTest
nbTetrahedrons: 2,3,2
click "Generate"

When you load a run the simulation, click 'Fixed' time step, and make it
smaller, so the tetrahedrons will not instantly explode.

In "Display" tab you can click "drawInteractingGeometry", then "Apply".

just make sure that you have files ../data/tetra1.tri and tetra2.tri
(from yade-examples)

It was all written by Olivier, you can contact him if you wish. However
this tetrahedron code uses swift libary which has license incompatibile
with Debian Free Software Guidelines (so basically swiftpp is not free
to use). This is a big problem from legal point of view. I have two
options to fix that:

- cmpletely separate tetrahedron code from yade. Then license problems
  will be moved somewhere else (and legal problems will not be my
  responsibility), and tetrahedrons would still use swiftpp.

- stop using qhull and swiftpp because they are not working correctly
  anyway (as shown on the webiste's video). And instead write a new
  function that detects interactions between tetrahedrons (using sphere
  tree, intersections of triangles, or whatever else comes to mind). This
  solution I prefer: tetrahedrons will be still a working part of yade,
  and qhull and swiftpp libraries will be removed.

Regardless of chosen solution, yade will end up without qhull and
swiftpp. Legal problems solved. The question is only what happens to
tetrahedrons during that transition ;)

If you want to work on tetrahedrons you can start thinking about
collision detection right now. You have two tetrahedrons (their node's
coordinates and stiffnesses), and how to detect if they overlap, and how
to calculate a repulsive and shear force. :) Olivier was building a
PolyhedralSweptSphere on top of tetrahedron (visible when you enable
drawInteractingGeometry), you can build sphere tree, or simply use the
triangles of the tetrahedron.

maybe this will be useful for you: triangle-triangle intersections



Janek Kozicki                                                         |
Yade-users mailing list