Skip to content

Commit 91444df

Browse files
committed
Merge branch 'master' into pbrubeck/zany-point-evaluation
2 parents 652afed + f5564bf commit 91444df

File tree

27 files changed

+389
-213
lines changed

27 files changed

+389
-213
lines changed

.github/workflows/build.yml

+47-22
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
FIREDRAKE_CI: 1
4040
PYOP2_CI_TESTS: 1
4141
PYOP2_SPMD_STRICT: 1
42-
EXTRA_PYTEST_ARGS: --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660 firedrake-repo/tests/firedrake
42+
EXTRA_PYTEST_ARGS: --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660
4343
PYTEST_MPI_MAX_NPROCS: 8
4444
steps:
4545
- name: Fix HOME
@@ -72,8 +72,11 @@ jobs:
7272
xargs -L1 ./configure --with-make-np=8 --download-slepc
7373
make PETSC_DIR=/__w/firedrake/firedrake/petsc PETSC_ARCH=arch-firedrake-${{ matrix.arch }}
7474
make check
75-
echo "PETSC_DIR=/__w/firedrake/firedrake/petsc" >> "$GITHUB_ENV"
76-
echo "PETSC_ARCH=arch-firedrake-${{ matrix.arch }}" >> "$GITHUB_ENV"
75+
{
76+
echo "PETSC_DIR=/__w/firedrake/firedrake/petsc"
77+
echo "PETSC_ARCH=arch-firedrake-${{ matrix.arch }}"
78+
echo "SLEPC_DIR=/__w/firedrake/firedrake/petsc/arch-firedrake-${{ matrix.arch }}"
79+
} >> "$GITHUB_ENV"
7780
7881
- name: Install Firedrake
7982
id: install
@@ -98,63 +101,85 @@ jobs:
98101
firedrake-check
99102
timeout-minutes: 5
100103

101-
- name: Run tests (nprocs = 1)
104+
- name: Run TSFC tests
102105
# Run even if earlier tests failed
103-
if: ${{ success() || steps.install.conclusion == 'success' }}
106+
if: success() || steps.install.conclusion == 'success'
104107
run: |
105108
. venv/bin/activate
106109
: # Use pytest-xdist here so we can have a single collated output (not possible
107110
: # for parallel tests)
108-
firedrake-run-split-tests 1 1 "-n 8 $EXTRA_PYTEST_ARGS"
111+
firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/tsfc
112+
timeout-minutes: 60
113+
114+
- name: Run PyOP2 tests
115+
if: success() || steps.install.conclusion == 'success'
116+
run: |
117+
. venv/bin/activate
118+
: # Use pytest-xdist here so we can have a single collated output (not possible
119+
: # for parallel tests)
120+
firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
121+
firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
122+
firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
123+
firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
124+
timeout-minutes: 15
125+
126+
127+
- name: Run Firedrake tests (nprocs = 1)
128+
if: success() || steps.install.conclusion == 'success'
129+
run: |
130+
. venv/bin/activate
131+
: # Use pytest-xdist here so we can have a single collated output (not possible
132+
: # for parallel tests)
133+
firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
109134
timeout-minutes: 60
110135

111136
- name: Run tests (nprocs = 2)
112-
if: ${{ success() || steps.install.conclusion == 'success' }}
137+
if: success() || steps.install.conclusion == 'success'
113138
run: |
114139
. venv/bin/activate
115-
firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS"
140+
firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
116141
timeout-minutes: 30
117142

118143
- name: Run tests (nprocs = 3)
119-
if: ${{ success() || steps.install.conclusion == 'success' }}
144+
if: success() || steps.install.conclusion == 'success'
120145
run: |
121146
. venv/bin/activate
122-
firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS"
147+
firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
123148
timeout-minutes: 60
124149

125150
- name: Run tests (nprocs = 4)
126-
if: ${{ success() || steps.install.conclusion == 'success' }}
151+
if: success() || steps.install.conclusion == 'success'
127152
run: |
128153
. venv/bin/activate
129-
firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS"
154+
firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
130155
timeout-minutes: 15
131156

132157
- name: Run tests (nprocs = 5)
133-
if: ${{ success() || steps.install.conclusion == 'success' }}
158+
if: success() || steps.install.conclusion == 'success'
134159
run: |
135160
. venv/bin/activate
136-
firedrake-run-split-tests 5 1 "$EXTRA_PYTEST_ARGS"
161+
firedrake-run-split-tests 5 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
137162
timeout-minutes: 15
138163

139164
- name: Run tests (nprocs = 6)
140-
if: ${{ success() || steps.install.conclusion == 'success' }}
165+
if: success() || steps.install.conclusion == 'success'
141166
run: |
142167
. venv/bin/activate
143-
firedrake-run-split-tests 6 1 "$EXTRA_PYTEST_ARGS"
168+
firedrake-run-split-tests 6 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
144169
timeout-minutes: 15
145170

146171
- name: Run tests (nprocs = 7)
147-
if: ${{ success() || steps.install.conclusion == 'success' }}
172+
if: success() || steps.install.conclusion == 'success'
148173
run: |
149174
. venv/bin/activate
150-
firedrake-run-split-tests 7 1 "$EXTRA_PYTEST_ARGS"
175+
firedrake-run-split-tests 7 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
151176
timeout-minutes: 15
152177

153178
- name: Run tests (nprocs = 8)
154-
if: ${{ success() || steps.install.conclusion == 'success' }}
179+
if: success() || steps.install.conclusion == 'success'
155180
run: |
156181
. venv/bin/activate
157-
firedrake-run-split-tests 8 1 "$EXTRA_PYTEST_ARGS"
182+
firedrake-run-split-tests 8 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
158183
timeout-minutes: 15
159184

160185
- name: Run Gusto smoke tests
@@ -260,7 +285,7 @@ jobs:
260285
- name: Setup Python
261286
uses: actions/setup-python@v5
262287
with:
263-
python-version: '3.12'
288+
python-version: "3.12"
264289
- name: Install deps
265290
run: pip install requests packaging
266291
- name: Zenodo API canary
@@ -269,5 +294,5 @@ jobs:
269294
uses: actions/upload-artifact@v4
270295
if: failure()
271296
with:
272-
name: "zenodo-canary"
297+
name: zenodo-canary
273298
path: firedrake-install.log

demos/eigenvalues_QG_basinmodes/qgbasinmodes.py.rst

+2-4
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ dissipative forces. Unlike the other demo that integrated the equations forward
1818
in time, in this problem it is necessary to compute the eigenvalues and
1919
eigenfunctions for a particular differential operator.
2020

21-
This demo requires SLEPc and slepc4py to be installed. This is most easily
22-
achieved by providing the optional `--slepc` flag to either `firedrake-install`
23-
(for a new installation), or `firedrake-update` (to add SLEPc to an existing
24-
installation).
21+
This demo requires SLEPc and slepc4py to be installed. For instructions on how
22+
to install them please follow `these instructions <https://www.firedrakeproject.org/install#slepc>`_.
2523

2624

2725
Governing PDE

demos/netgen/netgen_mesh.py.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Finally we will show how to use mesh refinement features included in Netgen to c
1111

1212
Installing Netgen
1313
------------------
14-
This demo requires the NGSolve/Netgen suite to be installed. This is most easily achieved by providing the optional `--netgen` flag to either `firedrake-install` (for a new installation), or `firedrake-update` (to add the NGSolve/Netgen suite to an existing installation). ::
14+
This demo requires the NGSolve/Netgen suite to be installed. This can be done by running ``pip install ngsPETSc``. ::
1515

1616
from firedrake import *
1717
try:

docs/source/aims_25.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
:orphan: true
22

3-
.. title:: Finite Element Course at AIMS Rwanda
3+
.. title:: Finite Element Course at AIMS Research and Innovation Centre Rwanda
44

55
Finite Element Course at AIMS Rwanda
66
------------------------------------
@@ -50,7 +50,7 @@ reading is available on the links above.
5050
- Firedrake practical 2: `Dirichlet boundary conditions <https://colab.research.google.com/github/firedrakeproject/notebooks/blob/aims/02-poisson.ipynb>`__
5151
- Firedrake practical 4: `mixed Poisson <https://colab.research.google.com/github/firedrakeproject/notebooks/blob/aims/05-mixed-poisson.ipynb>`__
5252
- Firedrake practical 6: `solvers <https://colab.research.google.com/github/firedrakeproject/notebooks/blob/aims/08-composable-solvers.ipynb>`__
53-
- Adjoint practical 1: Burgers again
53+
- Adjoint practical 1: `Burgers again <https://colab.research.google.com/github/firedrakeproject/notebooks/blob/aims/13_adjoint_calculations.ipynb#scrollTo=e7b5808f-f0ae-4e40-bcca-eff67f251fc9>`__
5454
- `Scientific machine learning <https://github.com/NBoulle/physics-driven-ml/raw/main/tutorials/sciml_intro.pdf>`__, `practical <https://colab.research.google.com/github/NBoulle/physics-driven-ml/blob/main/tutorials/Tutorial_2_ex.ipynb>`__
5555

5656

docs/source/checkpointing.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -617,9 +617,9 @@ Firedrake uses the PETSc_ HDF5 Viewer_ object to write and read state.
617617
As such, writing data is collective across processes. h5py_ is used
618618
for attribute manipulation. To this end, h5py_ *must* be linked
619619
against the same version of the HDF5 library that PETSc was built
620-
with. The ``firedrake-install`` script automates this, however, if
621-
you build PETSc manually, you will need to ensure that h5py_ is linked
622-
correctly following the instructions for custom installation here_.
620+
with. If you have a custom installation of Firedrake then it may be
621+
necessary to manually ensure that h5py is linked correctly.
622+
Instructions for how to do this can be found here_.
623623

624624
.. warning::
625625

0 commit comments

Comments
 (0)