/dedalus

A flexible framework for solving PDEs with modern spectral methods.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Dedalus Project

Repo status Read the Docs PyPI - Python Version PyPI Conda Version PyPI - License

Dedalus is a flexible framework for solving partial differential equations using modern spectral methods. The code is open-source and developed by a team of researchers studying astrophysical, geophysical, and biological fluid dynamics.

Dedalus is written primarily in Python and features an easy-to-use interface with symbolic vectorial equation specification. For example, to simulate incompressible hydrodynamics in a ball, you can symbolically enter the equations, including gauge conditions and boundary conditions enforced with the tau method, as:

problem.add_equation("div(u) + tau_p = 0")
problem.add_equation("dt(u) - nu*lap(u) + grad(p) + lift(tau_u) = - u@grad(u)")
problem.add_equation("u(r=1) = 0")
problem.add_equation("integ(p) = 0")

Our numerical algorithms produce sparse and spectrally accurate discretizations of PDEs on simple domains, including Cartesian domains of any dimension, disks, annuli, spheres, spherical shells, and balls:

KdV-Burgers equation (1D IVP) Rayleigh-Benard convection (2D IVP) Periodic shear flow (2D IVP) Poisson equation (2D LBVP)
Librational instability (disk IVP) Spherical shallow water (sphere IVP) Spherical shell convection (shell IVP) Internally heated convection (ball IVP)

The resulting systems are efficiently solved using compiled libraries and are automatically parallelized using MPI. See the documentation for tutorials and additional examples.

Links

Developers