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