Python Parareal is a simple code that is mostly useful to produce matrix formulations of Parareal for linear initial value problems that can then be used for theoretical analysis. The code is not parallelized, it is a tool for theory, not performance measurements.
You can freely use and reuse this code in line with its license. If you use it (or parts of it) for a publication, please cite
@article{Ruprecht2018,
author = {Ruprecht, Daniel},
doi = {10.1007/s00791-018-0296-z},
journal = {Computing and Visualization in Science},
pages = {1--17},
title = {Wave propagation characteristics of Parareal},
url = {https://doi.org/10.1007/s00791-018-0296-z},
volume = {19},
year = {2018}
}
The main functionality is found in the classes located in the
./src
folder. Scripts to produce various figures can be found in the
./scripts
folder and its subfolders. Tests are located in
./tests
and can be run by typing
pytest ./tests/
while in the base folder of the code.
The file
environment.yml
specifies the used Anaconda environment. If Anaconda is installed, the environment can be created by typing
conda env create -f environment.yml
However, to use all functionality, you will also need a working installation of the Dedalus software.
- Fig. 1 and Fig. 2 --> scripts/plot_svd_vs_dt.py
- Fig. 3 --> scripts/plot_dispersion.py with parameter nu=0.0 and nu=0.1
- Fig. 4 --> example/run.py
- Fig. 5 --> scripts/plot_ieuler_dispersion.py
- Fig. 6 --> scripts/plot_dispersion.py with stencil=2 (also set nu=0.0 and dx=1.0)
- Fig. 7 --> scripts/plot_dispersion.py with artificial_coarse=1 and artifical_coarse=2
- Fig. 8 --> example/run.py with artificial_coarse=2
- Fig. 9 --> scripts/plot_svd_vs_waveno_different_G.py
- Fig. 10 -> scripts/plot_dispersion.py with artifical_fine=1
- Fig. 11 -> example/run.py with artifical_fine=1
- Fig. 12 -> scripts/plot_dispersion.py with ncoarse=2
- Fig. 13 -> scripts/plot_dispersion.py with Tend=64 and Nsamples=120
- Fig. 14 -> scripts/plot_svd_vs_P.py
- Fig. 15 -> scripts/plot_conv_vs_waveno.py
- Fig. 16 -> scripts/plot_svd_vs_waveno.py
The code now also offers the possibility to compute the pseudo-spectrum and pseudo-spectral radius of the Parareal iteration matrix. You can also uses these parts in line with the in line with its license. If you do, please also cite the following paper in addition to the one stated above:
tba
tba
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) grants 16HPC048.
This code is written by Daniel Ruprecht.