This paper introduces DEM-Engine, a new submodule of Project Chrono, that is designed to carry out Discrete Element Method (DEM) simulations. Based on spherical primitive shapes, DEM-Engine can simulate polydisperse granular materials and handle complex shapes generated as assemblies of primitives, referred to as clumps. DEM-Engine has a multi-tier parallelized structure that is optimized to operate simultaneously on two GPUs. The code uses custom-defined data types to reduce memory footprint and increase bandwidth. A novel "delayed contact detection" algorithm allows the decoupling of the contact detection and force computation, thus splitting the workload into two asynchronous GPU streams. DEM-Engine uses just-in-time compilation to support user-defined contact force models. This paper discusses its C++ and Python interfaces and presents a variety of numerical tests, in which impact forces, complex-shaped particle flows, and a custom force model are validated considering well-known benchmark cases. Additionally, the full potential of the simulator is demonstrated for the investigation of extraterrestrial rover mobility on granular terrain. The chosen case study demonstrates that large-scale co-simulations (comprising 11 million elements) spanning 15 seconds, in conjunction with an external multi-body dynamics system, can be efficiently executed within a day. Lastly, a performance test suggests that DEM-Engine displays linear scaling up to 150 million elements on two NVIDIA A100 GPUs.
翻译:本文介绍了DEM-Engine,它是Project Chrono的一个新子模块,专门用于执行离散元法(DEM)模拟。基于球形基本形状,DEM-Engine能够模拟多分散颗粒材料,并处理由基本单元组装而成的复杂形状(称为团簇)。DEM-Engine采用多层次并行化结构,针对在两块GPU上同步运行进行了优化。代码使用自定义数据类型以减少内存占用并提高带宽。一种新颖的"延迟接触检测"算法将接触检测与力计算解耦,从而将工作负载分配到两个异步GPU流中。DEM-Engine利用即时编译技术支持用户自定义的接触力模型。本文讨论了其C++和Python接口,并展示了多种数值测试,其中针对冲击力、复杂形状颗粒流以及自定义力模型,结合已知基准案例进行了验证。此外,还在颗粒地形上的地外探测器移动性研究中展示了该模拟器的全部潜力。所选案例研究表明,结合外部多体动力学系统,跨越15秒的大规模协同模拟(包含1100万个单元)可在一天内高效完成。最后,性能测试表明,在两块NVIDIA A100 GPU上,DEM-Engine对高达1.5亿个单元表现出线性缩放能力。