**1921 commits**| Last commit

**≈ 7 days ago**

pySDC is a Python implementation of the spectral deferred correction approach and its flavors, esp. the parallel-in-time extension PFASST. It is intended for rapid prototyping and educational purposes. New ideas can be tested and first toy problems can be easily implemented.

5

mentions

5

contributors

Get started

The pySDC project is a Python implementation of the spectral deferred correction (SDC) approach and its flavors, esp. the multilevel extension MLSDC and the parallel-in-time variant 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 FEniCS, mpi4py-fft and PETSc (through petsc4py)
- Continuous integration via GitHub Actions and Gitlab CI
- Fully compatible with Python 3.7 - 3.10, runs at least on Ubuntu and MacOS

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

While using `pip install pySDC`

will give you a core version of pySDC to work with, working with the developer version is most often the better choice. We thus recommend to checkout the code from GitHub and install the dependencies e.g. by using a conda environment.

For this, pySDC ships with environment files which can be found in the folder `etc/`

. Use these as e.g.

```
conda env create --yes -f etc/environment-base.yml
```

To check your installation, run

```
pytest pySDC/tests -m NAME
```

where `NAME`

corresponds to the environment you chose (`base`

in the example above).

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`

.

For many examples, `LaTeX`

is used for the plots, i.e. a decent installation of this is needed in order to run those examples.

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.

This project has received funding from the European High-Performance Computing Joint Undertaking (JU) under grant agreement No 955701 (TIME-X).

The JU receives support from the European Union’s Horizon 2020 research and innovation programme and Belgium, France, Germany, and Switzerland.

This project also received funding from the German Federal Ministry of Education and Research (BMBF) grant 16HPC047.

The project also received help from the Helmholtz Platform for Research Software Engineering - Preparatory Study.

Keywords

collocation

high-performance computing

Information

ordinary differential equations

parallel-in-time

partial differential equations

time integration

Programming languages

License

- BSD-2-Clause
- Open Access

</>Source code

Journal articles

4- 1.Algorithm 997Author(s): Robert SpeckPublished in ACM Transactions on Mathematical Software by Association for Computing Machinery (ACM) in 2019, page: 1-2310.1145/3310410
- 2.Asymptotic convergence of the parallel full approximation scheme in space and time for linear problemsAuthor(s): Matthias Bolten, Dieter Moser, Robert SpeckPublished in Numerical Linear Algebra with Applications by Wiley in 2018, page: e220810.1002/nla.2208
- 3.Parallelizing spectral deferred corrections across the methodAuthor(s): Robert SpeckPublished in Computing and Visualization in Science by Springer Science and Business Media LLC in 2018, page: 75-8310.1007/s00791-018-0298-x
- 4.Spectral Deferred Corrections with Fast-wave Slow-wave SplittingAuthor(s): Daniel Ruprecht, Robert SpeckPublished in SIAM Journal on Scientific Computing by Society for Industrial & Applied Mathematics (SIAM) in 2016, page: A2535-A255710.1137/16m1060078

RS

RS

Robert Speck

DR

Daniel Ruprecht

TU Hamburg-Harburg

LW

Lisa Wimmer

Bergische Universität Wuppertal

TL

Thibaut Lunet

TU Hamburg-Harburg

TB

Thomas Baumann

Forschungszentrum Jülich