EarthJet - DEM Software

Here is a little something about my adventures in writing the DEM software - EarthJet.
Firstly, DEM stands for Discrete Element Method. It's defined by Cundall as:

Comprise a family of related mathematical tools for determining the kinematic behavior of finite-sized particles. Discrete element methods allow: 

1. finite displacement, rotation and separation of elements, and
2. new particle contacts are recognized algorithmically as the simulation proceeds.

When I discovered that it would be of great interest to companies, for determining how material flows, and that it was such a scarce resource, DEM software that is, I became very interested in creating such software myself. I already had experience in computer graphics programming, and knew exactly how to approach this task. I was in for a surprise. What I know about collision detection, vectors, matrices, and so on did not really put together a DEM program. There was something missing in the way particles interact. I looked at various thesis papers written by PhD students on the subject and was pretty overwhelmed by the various formulas. It took me some months to get something going. I figured out that "force" was the key to determining the behavior of particles and that a particular overlap of two particles in contact would determine the amount of force exerted on each other. That was the key to getting a start. Then I ran into some crude 2d code written by Carl R. Wassgren, Jr., School of Mechanical Engineering, Purdue University. He finally made sense of the various formulas written by other students. Here I could see how far away mathematical formulas actually were from code. Mathematicians really do live in another world. Anyway, once I understood the missing link between the significant world of mathematics and reality I could get to work and get my DEM software working properly. After many further bug fixes and hardship it came together as an application. It was the most enjoyable software experience I ever had. Graphics programming has always been my favorite subject, along with discovering new ways of computing.

By Frank Neubecker