Skip to main content

A Python implementation of spectral deferred correction methods and the likes

Project description

The pySDC project is a Python implementation of the spectral deferred correction (SDC) approach and its flavors, esp. the multilevel extension MLSDC and PFASST. It is intended for rapid prototyping and educational purposes. New ideas like e.g. sweepers or predictors can be tested and first toy problems can be easily implemented.


  • Variants of SDC: explicit, implicit, IMEX, multi-implicit, Verlet, multi-level, diagonal, multi-step
  • Variants of PFASST: classic (libpfasst-style) and multigrid, virtual parallel or MPI-based parallel
  • 7 tutorials: from setting up a first collocation problem to SDC, PFASST and advanced topics
  • Projects: many documented projects with defined and tested outcomes
  • Many different examples, collocation types, data types already implemented
  • Works with PETSc through petsc4py and FEniCS
  • Continuous integration via Travis-CI
  • Fully compatible with Python 2.7 and 3.6 (or higher)

Getting started

The code is hosted on GitHub, see, and PyPI, see Either use pip install pySDC to get the latest stable release including the core dependencies or check out the code on Github. All package requirements are listed in the files requirements.txt (for the core dependencies) and requirements-optional.txt for the more advanced features.

To check your installation, run

nosetests -v pySDC/tests

You may need to update your PYTHONPATH by running


in particular if you want to run any of the playgrounds, projects or tutorials. All import statements there assume that the pySDC’s base directory is part of PYTHONPATH.

Note: When installing both mpi4py and petsc4py, make sure they use the same MPI installation (e.g. MPICH3). You can achieve this e.g. by using the Anaconda distribution of Python and then run

conda install -c conda-forge petsc4py mpi4py

Most of the code is tested automatically using Travis-CI, so a working version of the installation process can always be found in the install-block of the .travis.yml file.

For more details on pySDC, check out

Project details

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
pySDC-2.4.1-py3-none-any.whl (10.8 MB) Copy SHA256 hash SHA256 Wheel py3
pySDC-2.4.1.tar.gz (2.0 MB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page