Massively Parallel Location and Exchange Tools for Unstructured Meshes
Yvan Fournier · International journal of computational fluid dynamics · 2020
Computational fluid dynamics (CFD) computations often require coupling of some values on one computational domain or portion thereof to another. This is the case both for multi-physics couplings, and for the implementation of various features, such as restarting on a different mesh, boundary condition couplings, and others. This usually involves locating points or elements relative to other elements, without a priori knowledge of neighbourhood or connectivity information. For highly refined meshes on parallel distributed memory systems, using programming paradigms such as MPI, it is practical to build mappings in situ, as a part of the computation. In this article, we describe different algorithms used in the context of the code_saturne CFD tool, and the associated Parallel Location and Exchange (PLE) library, based on their design goals, performance, ease of use and API stability. We also provide some elements on actual observed performance, and paths for improvements with increasingly massive parallelism.