Dedalus: A Python-Based Spectral PDE Solver
Authors: Keaton J. Burns, University of California Berkeley; Jeffrey S. Oishi, American Museum of Natural History; Geoffrey M. Vasil, University of California Berkeley; Daniel Lecoanet, University of California Berkeley; Eliot Quataert, University of California Berkeley
Dedalus is an open-source pseudospectral fluid dynamics code written in Python. The first version of the code includes incompressible and Boussinesq magnetohydrodynamics in two and three dimensions with periodic boundary conditions. The explicit time integration routines are optimized using Cython, the transforms are handled through custom Python bindings to the C-based FFTW library, and execution is parallelized using mpi4py. The first version of Dedalus has been used to study the magnetorotational instability in astrophysical discs and three-mode coupling in stratified atmospheres.
We are currently in the process of broadly generalizing the code into a framework for solving a wide variety of partial differential equations. Short-term development goals include transitioning to split implicit-explicit time integrators using the Tau spectral method and implementing additional spectral bases to model a range of geometries. In the future, we hope to construct the underlying numerical systems by parsing equations written in LaTeX or SymPy form by the user.
The codebase is available at https://bitbucket.org/jsoishi/dedalus/overview