Skip to main content

Shenfun -- Automated Spectral-Galerkin framework

Project description

Try it in a jupyter hub using Binder



Shenfun is a high performance computing platform for solving partial differential equations (PDEs) by the spectral Galerkin method. The user interface to shenfun is very similar to FEniCS, but applications are limited to multidimensional tensor product grids. The code is parallelized with MPI through the mpi4py-fft package.

Shenfun enables fast development of efficient and accurate PDE solvers (spectral order and accuracy), in the comfortable high-level Python language. The spectral accuracy is ensured by using high-order global orthogonal basis functions (Fourier, Legendre, Chebyshev, Laguerre, Hermite and Jacobi), as opposed to finite element codes that are using low-order local basis functions. Efficiency is ensured through vectorization (Numpy), parallelization (mpi4py) and by moving critical routines to Cython or Numba. Shenfun has been used to run turbulence simulations (Direct Numerical Simulations) on thousands of processors on high-performance supercomputers, see the spectralDNS repository.

The demo folder contains several examples for the Poisson, Helmholtz and Biharmonic equations. For extended documentation and installation instructions see ReadTheDocs or this paper. Note that, since the publication of that paper, shenfun has been further developed with the possibility to use two non-periodic directions (see biharmonic demo). Furthermore, equations may be solved coupled and implicit (see


Shenfun can be installed using either pip or conda, see installation chapter on readthedocs.



For comments, issues, bug-reports and requests, please use the issue tracker of the current repository, or see How to contribute? at readthedocs. Otherwise the principal author can be reached at:

Mikael Mortensen
mikaem at
Department of Mathematics
University of Oslo

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for shenfun, version 2.1.1
Filename, size File type Python version Upload date Hashes
Filename, size shenfun-2.1.1.tar.gz (132.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page