An efficient and robust GPGPU-parallelized contact algorithm for the combined finite-discrete element method