Skip to content

Commit 0958a67

Browse files
authored
Merge branch 'Parallel-in-Time:master' into update_stage25
2 parents c7d3542 + 81495ee commit 0958a67

File tree

84 files changed

+8461
-1893
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+8461
-1893
lines changed

.github/workflows/ci_pipeline.yml

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
with:
2626
environment-file: ${{ env.YML }}
2727
create-args: >-
28-
python=3.12
28+
python=3.13
2929
- name: Code reformatting with black
3030
run: |
3131
black pySDC --check --diff --color
@@ -39,7 +39,7 @@ jobs:
3939
fail-fast: false
4040
matrix:
4141
env: ['base', 'fenics', 'mpi4py', 'petsc', 'pytorch']
42-
python: ['3.9', '3.10', '3.11', '3.12']
42+
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
4343
defaults:
4444
run:
4545
shell: bash -l {0}
@@ -70,7 +70,7 @@ jobs:
7070
mv .coverage coverage_${{ matrix.env }}.dat
7171
- name: Uploading artifacts
7272
uses: actions/upload-artifact@v4
73-
if: matrix.python == '3.12'
73+
if: matrix.python == '3.13'
7474
with:
7575
name: test-artifacts-cpu-${{ matrix.env }}
7676
path: |
@@ -98,7 +98,6 @@ jobs:
9898
- Second_orderSDC
9999
- soft_failure
100100
- TOMS
101-
python: ['3.9', '3.10', '3.11', '3.12']
102101
defaults:
103102
run:
104103
shell: bash -l {0}
@@ -109,8 +108,6 @@ jobs:
109108
uses: mamba-org/setup-micromamba@v1
110109
with:
111110
environment-file: "pySDC/projects/${{ matrix.env }}/environment.yml"
112-
create-args: >-
113-
python=${{ matrix.python }}
114111
- name: Install additional packages as needed
115112
run: |
116113
micromamba install -y --file etc/environment-tests.yml --freeze-installed
@@ -126,7 +123,6 @@ jobs:
126123
mv .coverage coverage_${{ matrix.env }}.dat
127124
- name: Uploading artifacts
128125
uses: actions/upload-artifact@v4
129-
if: matrix.python == '3.12'
130126
with:
131127
name: test-artifacts-project-${{ matrix.env }}
132128
path: |
@@ -173,14 +169,19 @@ jobs:
173169
user_firedrake_tests:
174170
runs-on: ubuntu-latest
175171
container:
176-
image: firedrakeproject/firedrake-vanilla:2025-01
172+
image: firedrakeproject/firedrake-vanilla-default:latest
177173
options: --user root
178174
volumes:
179175
- ${{ github.workspace }}:/repositories
180176
defaults:
181177
run:
182178
shell: bash -l {0}
183179
steps:
180+
- name: Fix HOME
181+
# For unknown reasons GitHub actions overwrite HOME to /github/home
182+
# which will break everything unless fixed
183+
# (https://github.com/actions/runner/issues/863)
184+
run: echo "HOME=/home/firedrake" >> "$GITHUB_ENV"
184185
- name: Checkout pySDC
185186
uses: actions/checkout@v4
186187
with:
@@ -190,25 +191,31 @@ jobs:
190191
with:
191192
repository: firedrakeproject/gusto
192193
path: ./gusto_repo
194+
- name: Create virtual environment
195+
# pass '--system-site-packages' so Firedrake can be found
196+
run: python3 -m venv --system-site-packages venv-pySDC
197+
193198
- name: Install pySDC
194199
run: |
195-
. /home/firedrake/firedrake/bin/activate
196-
python -m pip install --no-deps -e /repositories/pySDC
197-
python -m pip install qmat
200+
. venv-pySDC/bin/activate
201+
pip install -e /repositories/pySDC
202+
# test installation
203+
python -c "import pySDC; print(f'pySDC module: {pySDC}')"
198204
- name: Install gusto
199205
run: |
200-
. /home/firedrake/firedrake/bin/activate
201-
python -m pip install -e /repositories/gusto_repo
206+
. venv-pySDC/bin/activate
207+
pip install -e /repositories/gusto_repo
208+
# test installation
209+
python -c "import gusto; print(f'gusto module: {gusto}')"
202210
- name: run pytest
203211
run: |
204-
. /home/firedrake/firedrake/bin/activate
212+
. venv-pySDC/bin/activate
205213
firedrake-clean
206214
cd ./pySDC
207-
coverage run -m pytest --continue-on-collection-errors -v --durations=0 /repositories/pySDC/pySDC/tests -m firedrake
208-
timeout-minutes: 120
215+
python -m coverage run -m pytest --continue-on-collection-errors -v --durations=0 /repositories/pySDC/pySDC/tests -m firedrake
216+
timeout-minutes: 45
209217
- name: Make coverage report
210218
run: |
211-
. /home/firedrake/firedrake/bin/activate
212219
213220
cd ./pySDC
214221
mv data ../data_firedrake

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ step_*.png
1111
*_data.json
1212
!_dataRef.json
1313
*.pysdc
14+
*.vtr
1415

1516
# Created by https://www.gitignore.io
1617

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
:arrow_left: [Back to main page](./README.md)
44

5+
- April 11, 2025: Version 5.6 adds a framework for MPI-parallel I/O, developed by [\@tlunet](https://github.com/tlunet), making it easier to visualize the data obtained with pySDC on HPC machines in software such as ParaView.
6+
Also, pySDC is now compatible with the finite element library [Firedrake](https://github.com/firedrakeproject/firedrake) and the geophysical fluid dynamics library
7+
[Gusto](https://github.com/firedrakeproject/gusto), thanks to [\@jshipton](https://github.com/jshipton) and [\@brownbaerchen](https://github.com/brownbaerchen).
8+
The former allows to setup PDEs with finite element discretizations in pySDC and then solve in time with SDC and PFASST, while the latter allows to setup a geophysical fluid dynamics problem and then use pySDC with any SDC setup as a timestepper in Gusto.
59
- June 24, 2024: Major summer cleanup with Version 5.5. [\@tlunet](https://github.com/tlunet) extracted all quadrature-related stuff into his new standalone code
610
[qmat](https://github.com/Parallel-in-Time/qmat), which makes pySDC much more focussed and both parts easier to maintain.
711
[\@lisawim](https://github.com/lisawim) worked a lot on the DAE sweepers (including an MPI-parallel version), while [\@brownbaerchen](https://github.com/brownbaerchen) has fun with GPUs.

CITATION.cff

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,15 @@ authors:
2828
given-names: Jakob
2929
orcid: https://orcid.org/0000-0001-6280-8396
3030
affiliation: "Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, 52425 Jülich, Germany"
31+
- family-names: Shipton
32+
given-names: Jemma
33+
orcid: https://orcid.org/0000-0002-8635-0831
34+
affiliation: "Department of Mathematics and Statistics, University of Exeter, Exeter, UK"
3135

3236

33-
version: 5.5.2
37+
version: 5.6
3438
doi: 10.5281/zenodo.594191
35-
date-released: 2024-09-23
39+
date-released: 2025-04-11
3640
keywords:
3741
- "parallel-in-time"
3842
- "spectral deferred corrections"

README.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ implemented.
1919

2020
- Variants of SDC: explicit, implicit, IMEX, multi-implicit, Verlet,
2121
multi-level, diagonal, multi-step
22-
- Variants of PFASST: virtual parallel or MPI-based parallel,
23-
classical of multigrid perspective
22+
- Variants of PFASST: virtually parallel or MPI-based parallel,
23+
classical or multigrid perspective
2424
- 8 tutorials: from setting up a first collocation problem to SDC,
2525
PFASST and advanced topics
2626
- Projects: many documented projects with defined and tested outcomes
@@ -43,12 +43,11 @@ The code is hosted on GitHub, see
4343
will give you a core version of `pySDC` to work with,
4444
working with the developer version is most often the better choice. We
4545
thus recommend to checkout the code from GitHub and install the
46-
dependencies e.g. by using a [conda](https://conda.io/en/latest/)
47-
environment. For this, `pySDC` ships with environment files
48-
which can be found in the folder `etc/`. Use these as e.g.
46+
dependencies e.g. by using [micromamba](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html). For this, `pySDC` ships with environment files
47+
which can be found in the folder `etc/` or within the projects. Use these as e.g.
4948

5049
``` bash
51-
conda env create -f etc/environment-base.yml
50+
micromamba create -f etc/environment-base.yml
5251
```
5352

5453
If you want to install the developer version using `pip` directly from the GitHub repository, use this:
@@ -113,13 +112,13 @@ Any contribution is dearly welcome! If you want to contribute, please take the t
113112
This project has received funding from the [European High-Performance
114113
Computing Joint Undertaking](https://eurohpc-ju.europa.eu/) (JU) under
115114
grant agreement No 955701 ([TIME-X](https://www.time-x-eurohpc.eu/))
116-
and grant agreement No 101118139.
115+
and grant agreement No 101118139.
117116
The JU receives support from the European Union's Horizon 2020 research
118117
and innovation programme and Belgium, France, Germany, and Switzerland.
119118
This project also received funding from the [German Federal Ministry of
120119
Education and Research](https://www.bmbf.de/bmbf/en/home/home_node.html)
121120
(BMBF) grants 16HPC047 and 16ME0679K. Supported by the European Union - NextGenerationEU.
122-
The project also received help from the [Helmholtz Platform for Research Software Engineering - Preparatory Study (HiRSE_PS)](https://www.helmholtz-hirse.de/).
121+
The project also received help from the [Joint Lab "Helmholtz Information - Research Software Engineering" (HiRSE)](https://www.helmholtz-hirse.de/).
123122

124123
<p align="center">
125124
<img src="./docs/img/EuroHPC.jpg" height="105"/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

docs/source/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@
7070
# built documents.
7171
#
7272
# The short X.Y version.
73-
version = '5.5'
73+
version = '5.6'
7474
# The full version, including alpha/beta/rc tags.
75-
release = '5.5.2'
75+
release = '5.6'
7676

7777
# The language for content autogenerated by Sphinx. Refer to documentation
7878
# for a list of supported languages.

etc/environment-base.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ dependencies:
1010
- sympy>=1.0
1111
- numba>=0.35
1212
- dill>=0.2.6
13+
- vtk
1314
- pip
1415
- pip:
1516
- qmat>=0.1.8

etc/environment-fenics.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencies:
99
- matplotlib>=3.0
1010
- dill>=0.2.6
1111
- fenics>=2019.1.0
12-
- mpi4py<=3.1.4
12+
- mpi4py
1313
- pip
1414
- pip:
1515
- qmat>=0.1.8

etc/environment-mpi4py.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ dependencies:
1414
- pip
1515
- pip:
1616
- qmat>=0.1.8
17+
- pytest-isolate-mpi

etc/environment-petsc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencies:
99
- matplotlib>=3.0
1010
- dill>=0.2.6
1111
- mpich
12-
- petsc4py
12+
- petsc4py<3.22
1313
- mpi4py>=3.0.0
1414
- pip
1515
- pip:

0 commit comments

Comments
 (0)