PSYDAC: a parallel finite element library with automatic code generation

ORAL

Abstract

PSYDAC is a Python~3 library for the solution of partial differential equations, with a focus on isogeometric analysis using B-spline finite elements. Support for multi-patch geometries and finite element exterior calculus is under development. In order to use PSYDAC~[1], the user defines the geometry and the model equations in an abstract form using SymPDE~[2], an extension of Sympy~[3] that provides the mathematical expressions and checks their semantic validity. Once a finite element discretization has been chosen, PSYDAC maps the abstract concepts to concrete objects, the basic building blocks being MPI-distributed vectors and matrices. Python code is generated for the all the computationally intensive operations (matrix and vector assembly, matrix-vector products, etc.), and it is accelerated using either Numba~[4] or Pyccel~[5]. We illustrate the library's capabilities with some plasma physics examples. \newline \newline \textbf{References (open source software)} \newline [1] PSYDAC: https://github.com/pyccel/psydac \newline [2] SymPDE: https://github.com/pyccel/sympde \newline [3] Sympy: https://www.sympy.org \newline [4] Numba: https://numba.pydata.org \newline [5] Pyccel: https://github.com/pyccel/pyccel

Authors

  • Yaman G\"{u}\c{c}l\"{u}

    Max Planck Institute for Plasma Physics, Garching b.~M\"{u}nchen, Germany

  • Said Hadjout

    Max Planck Institute for Plasma Physics \& Technical University of Munich, Garching b.~M\"{u}nchen, Germany

  • Ahmed Ratnani

    Mohammed VI Polytechnic University, Benguerir, Morocco