Skip to main content

Welcome to pySDC!

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.

Features

  • 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 FEniCS, mpi4py-fft and PETSc (through petsc4py)

  • Continuous integration via Github Actions

  • Fully compatible with Python 3.6 - 3.9

Getting started

The code is hosted on GitHub, see https://github.com/Parallel-in-Time/pySDC, and PyPI, see https://pypi.python.org/pypi/pySDC. Use

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

pytest pySDC/tests

You may need to update your PYTHONPATH by running

export PYTHONPATH=$PYTHONPATH:/path/to/pySDC/root/folder

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

Most of the code is tested automatically using Github Actions, so a working version of the installation process can always be found in the ci_pipeline.yml file. This workflow can be run locally using act by

act --env CONDA=/usr/share/miniconda -j ci

See also this page for details on how to run workflows depending on miniconda locally.

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 of 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

The current software release can be cited using Zenodo: zenodo

Release files for pySDC 4.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pySDC 4.2.3
File Size Uploaded
pySDC-4.2.3.tar.gz 3.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pySDC 4.2.3
File Interpreter ABI Platform
pySDC-4.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 6.8 MB

Release files / pySDC-4.2.3.tar.gz

Download URL pySDC-4.2.3.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
34cfa0f67a7f5ed0f64fe1bc0d0505576d694b61c1bc08e09a118bf98fa21099
BLAKE2b-256 checksum
How to use checksums
1b49c3083b636fcda0247007c320be62f32dbfa4b811708a67f3f73a9a0cc3a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.10

Release files / pySDC-4.2.3-py3-none-any.whl

Download URL pySDC-4.2.3-py3-none-any.whl
Size 3.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d734fe5ffdf8f625af0185a82e58ef83ea71d25e5faaaede2b9953ff48d22688
BLAKE2b-256 checksum
How to use checksums
3662bd5cf30c34ee6c06bf1a44db0cdd15312d158362e8f06d2a9266adb2aa6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.10

Release history Release notifications | RSS feed

5.8

2 release files

5.7

2 release files

5.5.2

2 release files

5.5.1

2 release files

5.5.0

2 release files

5.4.2

2 release files

5.4.1

2 release files

5.4.0

2 release files

5.3.0

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

This release

4.2.3 This release

2 release files

4.2.1

2 release files

4.2

2 release files

4.1.1

2 release files

4.1

2 release files

4.0

2 release files

3.1

2 release files

3.0

3 release files

2.4.1

2 release files

2.4

1 release file

2.3.1

1 release file

2.3

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2

1 release file

2.1.6

1 release file

2.1.5.1

1 release file

2.1.4

1 release file

2.1

1 release file

2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page