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 and Gitlab CI
- Fully compatible with Python 3.7 - 3.10, runs at least on Ubuntu and MacOS
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. 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 -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.
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:
Contributing
pySDC code was originally developed by Robert Speck (@pancetta),
and is now maintained and developed by a small community of scientists interested in SDC methods.
Checkout the Changelog to see pySDC's evolution since 2016.
Any contribution is dearly welcome ! If you want to take part of this, please take the time to read our Contribution Guidelines (and don't forget to take a peek at our nice Code of Conduct 😉).
Acknowledgements
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 (HiRSE_PS).
Metadata
Release files for pySDC 5.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pysdc-5.4.0.tar.gz | 17.6 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysdc-5.4.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 35.6 MB
Release files / pysdc-5.4.0.tar.gz
| Download URL | pysdc-5.4.0.tar.gz |
|---|---|
| Size | 17.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0402b459c3b1e4be8b3b5ab207e7c3bc61737e3c4fc9bb65645d08f82287390
|
|
BLAKE2b-256 checksum How to use checksums |
9870ea116a9c9a2de672860aed634c7c6f82161ab4682ce286e4941bdec057a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / pysdc-5.4.0-py2.py3-none-any.whl
| Download URL | pysdc-5.4.0-py2.py3-none-any.whl |
|---|---|
| Size | 18.0 MB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
5c55190c57f480ed62d47d95d9c3a27e29216763fafa5d87eb01e55b8feb970e
|
|
BLAKE2b-256 checksum How to use checksums |
2183e1709111d41c61e8596a5acf2c9fbd702a0b3fd962f8ac8695524905841a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Security for pySDC 5.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.