{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,5]],"date-time":"2026-08-05T22:43:18Z","timestamp":1785969798872,"version":"3.56.0"},"reference-count":60,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2019,8,8]],"date-time":"2019-08-08T00:00:00Z","timestamp":1565222400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"IKT 2020-Forschung f\u00fcr Innovationen","award":["01IH15005A"],"award-info":[{"award-number":["01IH15005A"]}]},{"name":"German Federal Ministry of Education and Research"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2019,9,30]]},"abstract":"<jats:p>In this article, we present the Python framework pySDC for solving collocation problems with spectral deferred correction (SDC) methods and their time-parallel variant PFASST, the parallel full approximation scheme in space and time. pySDC features many implementations of SDC and PFASST, from simple implicit timestepping to high-order implicit-explicit or multi-implicit splitting and multilevel SDCs. The software package comes with many different, preimplemented examples and has seven tutorials to help new users with their first steps. Time parallelism is implemented either in an emulated way for debugging and prototyping or using MPI for benchmarking. The code is fully documented and tested using continuous integration, including most results of previous publications. Here, we describe the structure of the code by taking two different perspectives: those of the user and those of the developer. The first sheds light on the front-end, the examples, and the tutorials, and the second is used to describe the underlying implementation and the data structures. We show three different examples to highlight various aspects of the implementation, the capabilities, and the usage of pySDC. In addition, couplings to the FEniCS framework and PETSc, the latter including spatial parallelism with MPI, are described.<\/jats:p>","DOI":"10.1145\/3310410","type":"journal-article","created":{"date-parts":[[2019,8,8]],"date-time":"2019-08-08T12:30:31Z","timestamp":1565267431000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":13,"title":["Algorithm 997"],"prefix":"10.1145","volume":"45","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-3879-1210","authenticated-orcid":false,"given":"Robert","family":"Speck","sequence":"first","affiliation":[{"name":"Forschungszentrum J\u00fclich; GmbH"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2019,8,8]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"Technical Report ANL-95\/11\u2014Revision 3.9. Argonne National Laboratory","author":"Balay Satish","year":"2018","unstructured":"Satish Balay , Shrirang Abhyankar , Mark F. Adams , Jed Brown , Peter Brune , Kris Buschelman , Lisandro Dalcin , 2018 . PETSc Users Manual . Technical Report ANL-95\/11\u2014Revision 3.9. Argonne National Laboratory . http:\/\/www.mcs.anl.gov\/petsc. Satish Balay, Shrirang Abhyankar, Mark F. Adams, Jed Brown, Peter Brune, Kris Buschelman, Lisandro Dalcin, et al. 2018. PETSc Users Manual. Technical Report ANL-95\/11\u2014Revision 3.9. Argonne National Laboratory. http:\/\/www.mcs.anl.gov\/petsc."},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1002\/nla.2110"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1002\/nla.2208"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0021-9991(03)00251-1"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2010.02.006"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1018997130884"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/1958598.1958618"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.advwatres.2011.04.013"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1088\/0951-7715\/10\/2\/013"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1022338906936"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2132876.2132883"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.2140\/camcos.2012.7.105"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1137\/130928662"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1137\/110856137"},{"key":"e_1_2_2_15_1","volume-title":"Multiple Shooting and Time Domain Decomposition","author":"Gander Martin J.","unstructured":"Martin J. Gander . 2015. 50 years of time parallel time integration . In Multiple Shooting and Time Domain Decomposition . Springer . Martin J. Gander. 2015. 50 years of time parallel time integration. In Multiple Shooting and Time Domain Decomposition. Springer."},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1093\/imanum\/drs043"},{"key":"e_1_2_2_17_1","volume-title":"Domain Decomposition Methods in Science and Engineering XVIII","author":"Gr\u00e4ser Carsten","unstructured":"Carsten Gr\u00e4ser , Uli Sack , and Oliver Sander . 2009. Truncated nonsmooth Newton multigrid methods for convex minimization problems . In Domain Decomposition Methods in Science and Engineering XVIII , M. Bercovier, M. J. Gander, R. Kornhuber, and O. Widlund (Eds.). Springer , Berlin, Germany , 129--136. Carsten Gr\u00e4ser, Uli Sack, and Oliver Sander. 2009. Truncated nonsmooth Newton multigrid methods for convex minimization problems. In Domain Decomposition Methods in Science and Engineering XVIII, M. Bercovier, M. J. Gander, R. Kornhuber, and O. Widlund (Eds.). Springer, Berlin, Germany, 129--136."},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1016\/0009-2509(83)80132-8"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2005.10.004"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2007.55"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1175\/MWR-D-12-00048.1"},{"key":"e_1_2_2_22_1","volume-title":"Retrieved","author":"Jones Eric","year":"2018","unstructured":"Eric Jones , Travis Oliphant , Pearu Peterson , 2018 . SciPy Home Page . Retrieved January 30, 2018 from http:\/\/www.scipy.org\/. Eric Jones, Travis Oliphant, Pearu Peterson, et al. 2018. SciPy Home Page. Retrieved January 30, 2018 from http:\/\/www.scipy.org\/."},{"key":"e_1_2_2_23_1","article-title":"JURECA: General-purpose supercomputer at J\u00fclich supercomputing centre","volume":"2","author":"Centre J\u00fclich Supercomputing","year":"2016","unstructured":"J\u00fclich Supercomputing Centre . 2016 . JURECA: General-purpose supercomputer at J\u00fclich supercomputing centre . Journal of Large-Scale Research Facilities 2 , A62 (2016). J\u00fclich Supercomputing Centre. 2016. JURECA: General-purpose supercomputer at J\u00fclich supercomputing centre. Journal of Large-Scale Research Facilities 2, A62 (2016).","journal-title":"Journal of Large-Scale Research Facilities"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1137\/110856976"},{"key":"e_1_2_2_25_1","volume-title":"Academic Publishing: Players, Agents and Agendas","author":"Kluyver Thomas","year":"2016","unstructured":"Thomas Kluyver , Benjamin Ragan-Kelley , Fernando P\u00e9rez , Brian Granger , Matthias Bussonnier , Jonathan Frederic , Kyle Kelley , 2016 . Jupyter notebooks\u2014A publishing format for reproducible computational workflows. In Positioning and Power in Academic Publishing: Players, Agents and Agendas , F. Loizides and B. Schmidt (Eds.). IOS Press , 87--90. Thomas Kluyver, Benjamin Ragan-Kelley, Fernando P\u00e9rez, Brian Granger, Matthias Bussonnier, Jonathan Frederic, Kyle Kelley, et al. 2016. Jupyter notebooks\u2014A publishing format for reproducible computational workflows. In Positioning and Power in Academic Publishing: Players, Agents and Agendas, F. Loizides and B. Schmidt (Eds.). IOS Press, 87--90."},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2003.09.010"},{"key":"e_1_2_2_27_1","doi-asserted-by":"crossref","unstructured":"J.-L. Lions Y. Maday and G. Turinici. 2001. A \u201cParareal\u201d in time discretization of PDE\u2019s. Comptes Rendus de l\u2019Acad\u00e9mie des Sciences\u2014Series I\u2014Mathematics 332 (2001) 661--668.  J.-L. Lions Y. Maday and G. Turinici. 2001. A \u201cParareal\u201d in time discretization of PDE\u2019s. Comptes Rendus de l\u2019Acad\u00e9mie des Sciences\u2014Series I\u2014Mathematics 332 (2001) 661--668.","DOI":"10.1016\/S0764-4442(00)01793-6"},{"key":"e_1_2_2_28_1","volume-title":"Retrieved","author":"LLBL.","year":"2018","unstructured":"LLBL. 2018 . PFASST Codes . Retrieved July 30, 2018 from https:\/\/pfasst.lbl.gov\/codes. LLBL. 2018. PFASST Codes. Retrieved July 30, 2018 from https:\/\/pfasst.lbl.gov\/codes."},{"key":"e_1_2_2_29_1","volume-title":"Retrieved","author":"LLNL.","year":"2018","unstructured":"LLNL. 2018 . XBraid . Retrieved July 30, 2018 from https:\/\/www.llnl.gov\/casc\/xbraid. LLNL. 2018. XBraid. Retrieved July 30, 2018 from https:\/\/www.llnl.gov\/casc\/xbraid."},{"key":"e_1_2_2_30_1","volume-title":"Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book","author":"Logg Anders","unstructured":"Anders Logg , Kent-Andre Mardal , and Garth Wells . 2012. Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book . Springer , Berlin, Germany . Anders Logg, Kent-Andre Mardal, and Garth Wells. 2012. Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book. Springer, Berlin, Germany."},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1731022.1731030"},{"key":"e_1_2_2_32_1","volume-title":"Parallel Computing: On the Road to Exascale. Advances in Parallel Computing","author":"L\u00fchrs Sebastian","unstructured":"Sebastian L\u00fchrs , Daniel Rohe , Alexander Schnurpfeil , Kay Thust , and Wolfgang Frings . 2016. Flexible and generic workflow management . In Parallel Computing: On the Road to Exascale. Advances in Parallel Computing , Vol. 27 . IOS Press , Amsterdam, Netherlands , 431--438. Sebastian L\u00fchrs, Daniel Rohe, Alexander Schnurpfeil, Kay Thust, and Wolfgang Frings. 2016. Flexible and generic workflow management. In Parallel Computing: On the Road to Exascale. Advances in Parallel Computing, Vol. 27. IOS Press, Amsterdam, Netherlands, 431--438."},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.4310\/CMS.2003.v1.n3.a6"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.apnum.2003.11.005"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.2140\/camcos.2010.5.265"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1137\/14097536X"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00466-018-1540-6"},{"key":"e_1_2_2_38_1","volume-title":"Retrieved","author":"O\u2019Brien Tim","year":"2019","unstructured":"Tim O\u2019Brien . 2019 . Python 3 Statement . Retrieved February 14, 2019 from https:\/\/python3statement.org\/. Tim O\u2019Brien. 2019. Python 3 Statement. Retrieved February 14, 2019 from https:\/\/python3statement.org\/."},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2964377"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2998441"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1137\/16M1060078"},{"key":"e_1_2_2_42_1","volume-title":"Retrieved","author":"Schreiber Martin","year":"2018","unstructured":"Martin Schreiber . 2018 . SWEET Home Page . Retrieved July 30, 2018 from https:\/\/schreiberx.github.io\/sweetsite\/. Martin Schreiber. 2018. SWEET Home Page. Retrieved July 30, 2018 from https:\/\/schreiberx.github.io\/sweetsite\/."},{"key":"e_1_2_2_43_1","volume-title":"Retrieved","author":"Speck Robert","year":"2018","unstructured":"Robert Speck . 2018 a. Github repository for pySDC . Retrieved February 14, 2019 from https:\/\/github.com\/Parallel-in-Time\/pySDC. Robert Speck. 2018a. Github repository for pySDC. Retrieved February 14, 2019 from https:\/\/github.com\/Parallel-in-Time\/pySDC."},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00791-018-0298-x"},{"key":"e_1_2_2_45_1","volume-title":"Retrieved","author":"Speck Robert","year":"2018","unstructured":"Robert Speck . 2018 c. PyPI site for pySDC . Retrieved February 14, 2019 from https:\/\/pypi.python.org\/pypi\/pySDC. Robert Speck. 2018c. PyPI site for pySDC. Retrieved February 14, 2019 from https:\/\/pypi.python.org\/pypi\/pySDC."},{"key":"e_1_2_2_46_1","volume-title":"Retrieved","author":"Speck Robert","year":"2019","unstructured":"Robert Speck . 2019 . Parallel-in-Time\/pySDC: The 3.0 Release . Retrieved July 10, 2019 from https:\/\/zenodo.org\/record\/2565062#.XSXsZOtJEyU. Robert Speck. 2019. Parallel-in-Time\/pySDC: The 3.0 Release. Retrieved July 10, 2019 from https:\/\/zenodo.org\/record\/2565062#.XSXsZOtJEyU."},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2016.12.001"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10543-014-0517-x"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.5555\/2388996.2389121"},{"key":"e_1_2_2_50_1","doi-asserted-by":"crossref","unstructured":"Robert Speck Daniel Ruprecht Michael Minion Matthew Emmett and Rolf Krause. 2016. Inexact spectral deferred corrections. In Domain Decomposition Methods in Science and Engineering XXII T. Dickopf M. J. Gander L. Halpern R. Krause and L. F. Pavarino (Eds.). 389--396.  Robert Speck Daniel Ruprecht Michael Minion Matthew Emmett and Rolf Krause. 2016. Inexact spectral deferred corrections. In Domain Decomposition Methods in Science and Engineering XXII T. Dickopf M. J. Gander L. Halpern R. Krause and L. F. Pavarino (Eds.). 389--396.","DOI":"10.1007\/978-3-319-18827-0_39"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10915-012-9657-9"},{"key":"e_1_2_2_52_1","volume-title":"Retrieved","author":"Travis CI","year":"2018","unstructured":"Travis CI GmbH. 2018 . Travis CI: Test and Deploy with Confidence . Retrieved February 14, 2019 from https:\/\/travis-ci.org. Travis CI GmbH. 2018. Travis CI: Test and Deploy with Confidence. Retrieved February 14, 2019 from https:\/\/travis-ci.org."},{"key":"e_1_2_2_53_1","unstructured":"Ulrich Trottenberg Cornelius W. Oosterlee and Anton Schuller. 2000. Multigrid. Academic Press.   Ulrich Trottenberg Cornelius W. Oosterlee and Anton Schuller. 2000. Multigrid. Academic Press."},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1016\/0377-0427(90)90200-J"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2011.37"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10543-014-0540-y"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.2140\/camcos.2018.13.53"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2015.04.022"},{"key":"e_1_2_2_59_1","volume-title":"Efficient time discretization for local discontinuous Galerkin methods. Discrete and Continuous Dynamical Systems\u2014Series B 8, 3","author":"Xia Yinhua","year":"2007","unstructured":"Yinhua Xia , Yan Xu , and Chi-Wang Shu . 2007. Efficient time discretization for local discontinuous Galerkin methods. Discrete and Continuous Dynamical Systems\u2014Series B 8, 3 ( 2007 ), 677--693. Yinhua Xia, Yan Xu, and Chi-Wang Shu. 2007. Efficient time discretization for local discontinuous Galerkin methods. Discrete and Continuous Dynamical Systems\u2014Series B 8, 3 (2007), 677--693."},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1137\/080738398"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3310410","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3310410","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:53:37Z","timestamp":1750204417000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3310410"}},"subtitle":["pySDC\u2014Prototyping Spectral Deferred Corrections"],"short-title":[],"issued":{"date-parts":[[2019,8,8]]},"references-count":60,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2019,9,30]]}},"alternative-id":["10.1145\/3310410"],"URL":"https:\/\/doi.org\/10.1145\/3310410","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,8,8]]},"assertion":[{"value":"2018-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-02-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-08-08","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}