Skip to main content

Welcome to Dedalus

Dedalus is a flexible framework for solving partial differential equations using spectral methods. Developed by researchers in fluid dynamics, it provides a powerful Python interface for symbolic equation specification and efficient numerical solving.

Key Features

Symbolic Equations

Write PDEs using intuitive symbolic syntax with automatic vectorial operations

Multiple Geometries

Support for Cartesian, disk, annulus, sphere, spherical shell, and ball domains

Problem Types

Built-in support for IVP, EVP, LBVP, and NLBVP formulations

Parallel Computing

Automatic MPI parallelization for large-scale simulations

Quick Example

Here’s how to set up a simple PDE problem in Dedalus:
import dedalus.public as d3
import numpy as np

# Create coordinates and domain
coords = d3.CartesianCoordinates('x', 'y')
dist = d3.Distributor(coords, dtype=np.float64)
xbasis = d3.RealFourier(coords['x'], size=256, bounds=(0, 2*np.pi))
ybasis = d3.RealFourier(coords['y'], size=256, bounds=(0, 2*np.pi))

# Create fields
u = dist.Field(name='u', bases=(xbasis, ybasis))
v = dist.Field(name='v', bases=(xbasis, ybasis))

# Set up problem with symbolic equations
problem = d3.IVP([u, v], namespace=locals())
problem.add_equation("dt(u) - lap(u) = -u*dx(u) - v*dy(u)")
problem.add_equation("dt(v) - lap(v) = -u*dx(v) - v*dy(v)")

Get Started

Installation

Install Dedalus and its dependencies

Quickstart Tutorial

Build your first simulation in minutes

Core Concepts

Learn the fundamental concepts

Examples

Explore real-world example problems

Community & Resources

GitHub Repository

View source code and contribute

Mailing List

Join the Dedalus user community

Build docs developers (and LLMs) love