A formalization of parallel data exchange algorithms used by numerical methods for solving partial differential equations - Samaniego, Cristóbal; Houzeaux, Guillaume (Theoretical computer science, 2025)
This paper introduces a formal framework for the data exchanges required to solve partial differential equations in a distributed memory parallel environment. Many physical phenomena can be described in terms of partial differential equations, and discretization methods are commonly used to solve this class of equations. Most of them require the definition of a mesh or grid in order to discretize the problem domain. In a parallel programming environment, the original mesh is partitioned into subdomains. Then, important data that has a direct relationship with the original mesh will be also divided based on the partition. As a consequence, data between subdomains has to be exchanged in order to obtain the correct solution to the problem in parallel. In this context, the main objective of this work is to describe the existing data exchange algorithms typically used in simulation codes by formal means. This objective is achieved by first describing the original and partitioned mesh in terms of set theory concepts and using them for writing the data exchange algorithms from the perspective of a typical implementation of three numerical methods: the finite element, finite difference, and cell-centered finite volume methods. Some attempts to create a description for these algorithms can be found in the literature. However, in the authors' opinion, a formal description is necessary in order to avoid any ambiguity. Implicit and explicit schemes are considered here. However, this study is primarily focused on implicit schemes where iterative methods are employed to solve the system of linear algebraic equations arising from the discretization of a partial differential equation in a parallel environment. These iterative methods serve as motivation for defining well-known data exchange algorithms necessary to solve the system of equations. To achieve this, we will first examine a simple one-dimensional problem, followed by a general problem description. We finally illustrate the concepts presented in the paper by examining the solution of a partial differential equation in parallel.