A Python implementation of spectral deferred correction methods and the likes
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: virtual parallel or MPI-based parallel, classical of multigrid perspective
- 8 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 , FEniCS and mpi4py-fft
- Continuous integration via Travis-CI
- Fully compatible with 3.6 (or higher)
pip install pySDC
to get the latest stable release including the core dependencies. Note that this will omit some of the more complex packages not required for the core functionality of pySDC, e.g. mpi4py, fenics and petsc4py (see below). All requirements are listed in the files requirements.txt . To work with the source files, checkout the code from Github and install the dependencies e.g. by using a conda environment and
conda install -c conda-forge --file requirements.txt
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 mpi4py, fenics and petsc4py, make sure they use the same MPI installation (e.g. MPICH3). You can achieve this e.g. by
conda install -c conda-forge mpich petsc4py mpi4py fenics
For many examples, LaTeX is used for the plots, i.e. a decent installation of this is needed in order to run the tests. When using fenics or petsc4py, a C++ compiler is required (although installation may go through at first).
For more details on pySDC, check out http://www.parallel-in-time.org/pySDC.
How to cite
If you use pySDC or parts of it for your work, great! Let us know if we can help you with this. Also, we would greatly appreciate a citation using this paper:
Robert Speck, Algorithm 997: pySDC - Prototyping Spectral Deferred Corrections, ACM Transactions on Mathematical Software (TOMS), Volume 45 Issue 3, August 2019, https://doi.org/10.1145/3310410
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size pySDC-4.0-py3-none-any.whl (3.8 MB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size pySDC-4.0.tar.gz (3.3 MB)||File type Source||Python version None||Upload date||Hashes View|