Discrete Particle Simulation Techniques For The Analysis Of Colliding And Flowing Particulate Media