generalized discrete element method