Skip to content

A flexible framework for solving PDEs with modern spectral methods.

License

Notifications You must be signed in to change notification settings

johnryantaylor/dedalus

 
 

Repository files navigation

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

About

A flexible framework for solving PDEs with modern spectral methods.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.6%
  • Cython 4.4%