Package: pySDC
Welcome to pySDC!ThepySDCproject 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.FeaturesVariants of SDC: explicit, implicit, IMEX, multi-implicit, Verlet,
multi-level, diagonal, multi-stepVariants of PFASST: virtual parallel or MPI-based parallel,
classical of multigrid perspective8 tutorials: from setting up a first collocation problem to SDC,
PFASST and advanced topicsProjects: many documented projects with defined and tested outcomesMany different examples, collocation types, data types already
implementedWorks withFEniCS,mpi4py-fftandPETSc(throughpetsc4py)Continuous integration viaGitHub
ActionsandGitlab CIFully compatible with Python 3.7 - 3.10, runs at least on Ubuntu and
MacOSGetting startedThe code is hosted on GitHub, seehttps://github.com/Parallel-in-Time/pySDC, and PyPI, seehttps://pypi.python.org/pypi/pySDC. While usingpip install pySDCwill give you a core version ofpySDCto 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 acondaenvironment. For this,pySDCships with environment files
which can be found in the folderetc/. Use these as e.g.condaenvcreate-fetc/environment-base.ymlTo check your installation, runpytestpySDC/tests-mNAMEwhereNAMEcorresponds to the environment you chose (basein the
example above). You may need to update yourPYTHONPATHby runningexportPYTHONPATH=$PYTHONPATH:/path/to/pySDC/root/folderin particular if you want to run any of the playgrounds, projects or
tutorials. Allimportstatements there assume that thepySDC's base directory is part ofPYTHONPATH.For many examples,LaTeXis used for the plots, i.e. a
decent installation of this is needed in order to run those examples.
When usingfenicsorpetsc4py, a C++
compiler is required (although installation may go through at first).For more details onpySDC, check outhttp://www.parallel-in-time.org/pySDC.How to citeIf 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 ofthis 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/3310410The current software release can be cited using Zenodo:ContributingpySDCcode was originally developed byRobert Speck (@pancetta),
and is now maintained and developed by a small community of scientists interested in SDC methods.
Checkout theChangelogto 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 ourContribution Guidelines(and don't forget to take a peek at our niceCode of Conduct:wink:).AcknowledgementsThis project has received funding from theEuropean 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 theGerman Federal Ministry of
Education and Research(BMBF) grant 16HPC047. The project also received help from theHelmholtz Platform for Research Software Engineering - Preparatory
Study (HiRSE_PS).