Table of Contents
Fetching ...

Manapy: MPI-Based framework for solving partial differential equations using finite-volume on unstructured-grid

Imad Kissami, Ahmed Ratnani

TL;DR

Manapy presents a MPI-enabled, Python-based finite-volume framework for solving PDEs on unstructured grids, addressing convective-diffusive and Poisson equations with scalable parallel operators. It integrates convective flux discretization via upwind schemes with MUSCL and Barth-Jespersen limiting, diffusive flux via the diamond scheme, and a third-order Runge-Kutta time integration, while offering parallel assembly and solver options through MUMPS and PETSc. The paper demonstrates strong scaling and performance on a high-performance cluster, including a 3D streamer discharge model that couples fluid and electrostatic fields, validating the framework's capability to handle large, multi-physics problems. It emphasizes ease of use and extensibility through Pyccel-generated C/Fortran code, with future directions aimed at parallel adaptive mesh refinement and more sophisticated preconditioning to tackle even larger simulations.

Abstract

Manapy is a parallel, unstructured, finite-volume based solver for the solution of partial differential equations (PDE). The framework is written using Python, it is object-oriented, and is organized in such a way that it is easy to understand and modify. In this paper, we present the parallel implementation and scalability of the differential operators used on a general case of PDE. The performance of massively parallel direct and iterative methods for solving large sparse systems of linear equations in plasma physics is evaluated on a latest high performance computing system, and 3D test cases for plasma physics are presented.

Manapy: MPI-Based framework for solving partial differential equations using finite-volume on unstructured-grid

TL;DR

Manapy presents a MPI-enabled, Python-based finite-volume framework for solving PDEs on unstructured grids, addressing convective-diffusive and Poisson equations with scalable parallel operators. It integrates convective flux discretization via upwind schemes with MUSCL and Barth-Jespersen limiting, diffusive flux via the diamond scheme, and a third-order Runge-Kutta time integration, while offering parallel assembly and solver options through MUMPS and PETSc. The paper demonstrates strong scaling and performance on a high-performance cluster, including a 3D streamer discharge model that couples fluid and electrostatic fields, validating the framework's capability to handle large, multi-physics problems. It emphasizes ease of use and extensibility through Pyccel-generated C/Fortran code, with future directions aimed at parallel adaptive mesh refinement and more sophisticated preconditioning to tackle even larger simulations.

Abstract

Manapy is a parallel, unstructured, finite-volume based solver for the solution of partial differential equations (PDE). The framework is written using Python, it is object-oriented, and is organized in such a way that it is easy to understand and modify. In this paper, we present the parallel implementation and scalability of the differential operators used on a general case of PDE. The performance of massively parallel direct and iterative methods for solving large sparse systems of linear equations in plasma physics is evaluated on a latest high performance computing system, and 3D test cases for plasma physics are presented.
Paper Structure (23 sections, 17 equations, 14 figures, 11 tables, 2 algorithms)

This paper contains 23 sections, 17 equations, 14 figures, 11 tables, 2 algorithms.

Figures (14)

  • Figure 1: Compute the gradient $\nabla u$ ($(u)_x$, $(u)_y$, $(u)_z$) on cell $T_i$
  • Figure 2: An example of a 3D (projected in 2D) mesh (left) and a mesh decomposition into four subdomains (right).
  • Figure 3: General representation of Diamond cell in 3D.
  • Figure 4: Least square interpolation (value on node A)
  • Figure 5: Strong Speedup for the FV operators using grid G1.
  • ...and 9 more figures