Simon Kerler

Projects - Partsival

Partsival: Collision-based Particle Simulations on GPUs

In cooperation with the German Aerospace Center, I created the discrete element simulation toolkit partsival for simulating soil for rover wheel optimizations. By leveraging GPU computing, simulations are sped up significantly compared to CPU-bound solutions.

In addition to the thesis itself, a paper was published on the IMSD 2018 conference.

C++OpenGL 4.3

Abstract

As part of the Institute of System Dynamics and Control (SR) of the German Aerospace Center (DLR), the Department of Space System Dynamics (SR-RFS) is involved in developing locomotion systems of planetary exploration missions. To reduce development time and costs, virtual prototypes are simulated to verify new designs and concepts e.g. for rover wheels before first physical prototypes are constructed.

A common way of modeling soil in these simulations is the discrete element method (DEM) where the soil volume is discretized into particles. Pasimodo, the engine currently used at DLR, uses the message passing interface (MPI) to distribute force computations to multiple CPU cores or computers. The DEM however could be parallelized even further to profit from the highly concurrent execution on graphics processing units (GPUs).

This thesis therefore presents a particle engine capable of DEM to simulate soil and granular material solely on GPU with the CPU acting as coordinator only. The engine is provided as NodeKit for the OpenSceneGraph (OSG) library to ensure interoperability with existing software, e.g. the visualization tool DLR SimViz. Built upon the abstraction layer of OSG, OpenGL 4.3 and its compute shaders are the foundation for GPU computing performed by the engine.

The simulation loop is defined by object-oriented simulation steps. These are added to a particle system which also provides an API to define and manage particle attributes. Besides the basic classes, the software package ships with built-in particle-particle and particle-mesh contact models for simulations of soil and granular matter. An effcient render component visualizes the current state during a simulation. Additionally, serializers can output the state in human-readable form or via the H5Part format for post-processing.

Three example applications have been implemented, qualitatively and quantitatively verifying that the engine and its built-in contact models are correct and that it can be applied to the problem domains at DLR. Benchmarks showed furthermore that, for up to 10000 (Nvidia GTX 970) and 22000 (Nvidia GTX 1080), the proposed engine is faster than Pasimodo on an Intel Xeon E5-1620 and E5-2697 CPU. Detailed profiling revealed that the brute force contact detection with O(n^2) is the main bottleneck and that an optimized algorithm will increase the speed-up compared to Pasimodo also for larger number of particles.

© 2014 - 2025 Simon Kerler. This website was published under the Creative Commons Attribution-ShareAlike 3.0 Unported License and was created with astro and tailwindcss .