You are here

Implementing flexible and scalable particle-in-cell methods for massively parallel numerical models

Research Group: 
Rene Gassmoeller
Thursday, September 14, 2017 - 11:00

Particle-in-cell methods have a long history in modelling of mantle convection, lithospheric deformation and crustal dynamics. They are primarily used to track material information, the strain a material has undergone, the pressure-temperature history of a certain material, or the amount of volatiles or partial melt present in a region. However, their efficient parallel implementation - in particular combined with adaptive meshes - is complicated due to the complex communication and frequent reassignment of particles to cells. Consequently, many scientific software packages accomplish this efficiency by designing particle methods for a single purpose, like the advection of scalar properties that do not evolve over time (e.g. chemical heterogeneities). Design choices for particle advection, data storage, and parallel communication are then optimized for this single purpose, making the code rigid to changing requirements. Here, I present the implementation of a flexible, scalable and efficient particle-in-cell method for massively parallel finite-element codes with adaptively changing meshes. A modular plugin structure allows for maximum flexibility of the generation of particles, the carried particle properties, the advection and output algorithms, and the projection of properties to the finite-element mesh. I discuss the complexity of the implemented algorithms and present scaling tests ranging up to tens of thousands of cores and tens of billions of particles. Additionally, I discuss load-balancing strategies like balanced repartitioning for particles in adaptive meshes with their strengths and weaknesses, and quantify sources of errors for the advection of particles. Finally, I show whole mantle convection models as application cases, compare our implementation to a modern advection-field approach, and demonstrate under which conditions which method is more efficient. I implemented the presented methods in ASPECT (, a freely available open-source community code for geodynamic simulations. 

Sign in