I³MS - Mortensen Seminar
Prof. Dr. Mikael Mortensen - Automating the Spectral Galerkin Method - High Performance Computing in Python
Department of Mathematics, University of Oslo, Norway
The spectral Galerkin method employs globally supported spectral basis functions (e.g., Fourier, Chebyshev, Legendre) in the Galerkin approximation. Due to its accuracy, the method is often favored in the study of fundamental physical phenomena in Cartesian domains, like turbulence and transitional flows. Until now there have been few tools available for solving PDEs with this method, at least not if one is aiming at high performance supercomputers. With the shenfun Python module (https://github.com/spectralDNS/shenfun) an effort is made towards automating the implementation of the spectral Galerkin method for simple (yet large in scale) tensor product domains. The user interface to shenfun is intentionally made very similar to FEniCS (https://fenicsproject.org). PDEs are represented through weak variational forms and solved using efficient, order optimal direct solvers, that are made possible by exploiting the structure of the operators (e.g., tri-/penta-diagonality and upper Hessenberg), that arise from clever choices of modified Chebyshev or Legendre bases. MPI decomposition is achieved through the recently released mpi4py-fft module (https://bitbucket.org/mpi4py/mpi4py-fft), and all developed solver may, with no additional effort, be run on supercomputers using thousands of processors. The shenfun package has, for example, been used to create Navier Stokes solvers for triply periodic domains as well as channels. This talk will give a demonstration of current capabilities and highlight Python as the powerful language it is for high performance scientific computing.