GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Collision

The Collision library groups all the classes that allow to detect collision within a simulation. Detecting collision efficiently is quite a complex. So, this library needs some explanation. GranOO deals with detection collision using 3 main steps :

  1. The BroadPhase allows to make a pre-selection of contacting pairs
  2. The NarrowPhase allows to really detect contacts
  3. The CallBack allows to define a contact law (but it can be used to do other things) The main idea of this library is allowing for user to plug any BroadPhase method with any NarrowPhase and CallBack. It is quite complicated, but this really powerfull.

GranOO implements the Lcm, AABBTree and Raw methods as BroadPhase method. Note that, in the case of simulation with spherical discrete elements, GranOO takes advantage of this simple configuration by skipping the NarrowPhase (this feature is only available with the Lcm method).

GranOO also implements two kind of NarrowPhase called WithAnyShape and WithSpere. Again, if you use spherical discrete elements, you can use WithSphere method because it is faster that the WithAnyShape. On the other hand, the WithAnyShape is the most versatile (the collision is detected with any kind of shapes) but it requires more computational time than the WithSpere method.

Concerning the CallBack, GranOO implements for now Standard2 and HertzMindlin contact laws. These contact laws are implement up-to-date and state-of-art models. Here, you can manage linear and angular friction with rolling limit and rolling resistance.