pysdc

pySDC is a Python implementation of the spectral deferred correction (SDC) approach and its flavors, esp. the multilevel extension MLSDC and PFASST.

https://github.com/parallel-in-time/pysdc

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    10 of 31 committers (32.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

collocation-method hacktoberfest iterative-methods multigrid ordinary-differential-equations parallel-computing parallel-in-time partial-differential-equations pfasst python spectral-deferred-corrections
Last synced: 4 months ago · JSON representation ·

Repository

pySDC is a Python implementation of the spectral deferred correction (SDC) approach and its flavors, esp. the multilevel extension MLSDC and PFASST.

Basic Info
Statistics
  • Stars: 38
  • Watchers: 10
  • Forks: 36
  • Open Issues: 27
  • Releases: 28
Topics
collocation-method hacktoberfest iterative-methods multigrid ordinary-differential-equations parallel-computing parallel-in-time partial-differential-equations pfasst python spectral-deferred-corrections
Created about 11 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

badge-ga badge-ossf badge-cc zenodo fair-software.eu SQAaaS badge shields.io PyPI - Downloads HiRSE Code Promo Badge

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: virtually parallel or MPI-based parallel, classical or 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 (through the GitHub2Gitlab Action)
  • Fully compatible with Python 3.9 - 3.12, runs at least on Ubuntu

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 micromamba. For this, pySDC ships with environment files which can be found in the folder etc/ or within the projects. Use these as e.g.

bash micromamba create -f etc/environment-base.yml

If you want to install the developer version using pip directly from the GitHub repository, use this:

```

optionally use venv

python3 -m venv nameofpySDCenv . ./nameofpySDCenv/bin/activate

drop @5.5.0 if you want to install the develop version

pip install git+https://github.com/Parallel-in-Time/pySDC@5.5.0 ```

To check your installation, run

bash 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

bash 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: 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. It has a software management plan (SWP), too, see here.

Any contribution is dearly welcome! If you want to contribute, please take the time to read our Contribution Guidelines (and don't forget to take a peek at our nice Code of Conduct :wink:).

Acknowledgements

This project has received funding from the European High-Performance Computing Joint Undertaking (JU) under grant agreement No 955701 (TIME-X) and grant agreement No 101118139. 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) grants 16HPC047 and 16ME0679K. Supported by the European Union - NextGenerationEU. The project also received help from the Joint Lab "Helmholtz Information - Research Software Engineering" (HiRSE).

                 

Owner

  • Name: Parallel-in-Time (PinT) Algorithms
  • Login: Parallel-in-Time
  • Kind: organization

Parallel-in-Time Algorithms

Citation (CITATION.cff)

abstract: "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."
authors: 
  - family-names: Speck
    given-names: Robert
    orcid: https://orcid.org/0000-0002-3879-1210
    affiliation: "Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, 52425 Jülich, Germany"
  - family-names: Lunet
    given-names: Thibaut
    orcid: https://orcid.org/0000-0003-1745-0780
    affiliation: "Hamburg University of Technology, Institute of Mathematics, 21073 Hamburg, Germany"
  - family-names: Baumann
    given-names: Thomas
    orcid: https://orcid.org/0000-0002-4676-7659
    affiliation: "Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, 52425 Jülich, Germany"
  - family-names: Wimmer
    given-names: Lisa
    orcid: https://orcid.org/0000-0001-8829-0978
    affiliation: "University of Wuppertal, School of Mathematics and Natural Science, 42119 Wuppertal, Germany"
  - family-names: Akramov
    given-names: Ikrom
    orcid: https://orcid.org/0000-0002-8869-0784
    affiliation: "Hamburg University of Technology, Institute of Mathematics, 21073 Hamburg, Germany"
  - family-names: Rosilho de Souza
    given-names: Giacomo
    orcid: https://orcid.org/0000-0002-0176-8455
    affiliation: "Università della Svizzera italiana, Via la Santa 1, 6962 Lugano-Viganello, Switzerland"
  - family-names: Fritz
    given-names: Jakob
    orcid: https://orcid.org/0000-0001-6280-8396
    affiliation: "Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, 52425 Jülich, Germany"
  - family-names: Shipton
    given-names: Jemma
    orcid: https://orcid.org/0000-0002-8635-0831
    affiliation: "Department of Mathematics and Statistics, University of Exeter, Exeter, UK"


version: 5.6
doi: 10.5281/zenodo.594191
date-released: 2025-04-11
keywords: 
  - "parallel-in-time"
  - "spectral deferred corrections"
  - "parallel full approximation scheme in space and time"
  - multigrid
  - collocation
license: BSD-2-Clause
message: "If you use this software, please cite it using these metadata."
repository-code: https://github.com/Parallel-in-Time/pySDC
title: "Parallel-in-Time/pySDC"
cff-version: 1.2.0

GitHub Events

Total
  • Create event: 12
  • Release event: 2
  • Issues event: 17
  • Watch event: 6
  • Delete event: 13
  • Issue comment event: 130
  • Push event: 170
  • Pull request review comment event: 93
  • Pull request review event: 96
  • Pull request event: 125
  • Fork event: 4
Last Year
  • Create event: 12
  • Release event: 2
  • Issues event: 17
  • Watch event: 6
  • Delete event: 13
  • Issue comment event: 130
  • Push event: 170
  • Pull request review comment event: 93
  • Pull request review event: 96
  • Pull request event: 125
  • Fork event: 4

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 2,930
  • Total Committers: 31
  • Avg Commits per committer: 94.516
  • Development Distribution Score (DDS): 0.496
Past Year
  • Commits: 126
  • Committers: 9
  • Avg Commits per committer: 14.0
  • Development Distribution Score (DDS): 0.659
Top Committers
Name Email Commits
Robert Speck r****k@f****e 1,478
Thomas Baumann t****n@f****e 452
Robert Speck p****a 219
lisawim w****r@u****e 164
Thibaut Lunet t****t@t****e 143
Daniel Ruprecht d****t@l****k 111
Daniel Ruprecht d****t@u****h 90
Thomas Baumann 3****n 58
Timo Lenz t****z@f****e 57
Lisa Wimmer 6****m 30
Kyrill Ho u****n@s****u 28
Ikrom Akramov i****v@t****e 26
jakob-fritz 3****z 14
Thibaut Lunet t****t@u****h 11
Timo Lenz l****3@j****f 7
Jakob Fritz j****z@f****e 7
Pancetta2 1****2 7
Robert Speck s****1@j****a 4
Timo Lenz l****3@j****f 4
Ikrom Akramov 9****t 4
Robert Speck r****t@z****e 3
Torbjörn Klatt o****e@t****e 2
Timo Lenz l****3@j****f 2
Robert Speck c****0@j****a 2
Benjamin Rodenberg b****g@c****e 1
Giacomo Rosilho de Souza j****o@g****m 1
dependabot-preview[bot] 2****] 1
Daniel Ruprecht d****u 1
Robert Speck s****1@j****a 1
Torbjörn Klatt t****t@f****e 1
and 1 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 33
  • Total pull requests: 207
  • Average time to close issues: 9 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 7
  • Total pull request authors: 10
  • Average comments per issue: 2.85
  • Average comments per pull request: 2.6
  • Merged pull requests: 172
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 9
  • Pull requests: 63
  • Average time to close issues: about 22 hours
  • Average time to close pull requests: 3 days
  • Issue authors: 4
  • Pull request authors: 5
  • Average comments per issue: 0.89
  • Average comments per pull request: 1.14
  • Merged pull requests: 41
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tlunet (12)
  • brownbaerchen (9)
  • pancetta (6)
  • jakob-fritz (3)
  • lisawim (2)
  • danielru (1)
  • zhyxue0 (1)
Pull Request Authors
  • brownbaerchen (176)
  • lisawim (46)
  • jakob-fritz (36)
  • tlunet (21)
  • ikrom96git (10)
  • pancetta (6)
  • BenjaminRodenberg (2)
  • grosilho (2)
  • sansriti-ranjan (2)
  • danielru (1)
Top Labels
Issue Labels
help wanted (6) question (5) enhancement (5) bug (5) good first issue (4) invalid (1)
Pull Request Labels
gitlab-mirror (26) girl scout rule (18) fix (15)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 100 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 31
  • Total maintainers: 1
pypi.org: pysdc

A Python implementation of spectral deferred correction methods and the likes

  • Versions: 31
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 100 Last month
Rankings
Dependent packages count: 10.1%
Average: 19.0%
Dependent repos count: 21.6%
Downloads: 25.2%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/ci_pipeline.yml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v1 composite
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • jakob-fritz/github2lab_action main composite
  • mamba-org/provision-with-micromamba main composite