-
Notifications
You must be signed in to change notification settings - Fork 161
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into pbrubeck/restricted-mixed
- Loading branch information
Showing
516 changed files
with
48,115 additions
and
715 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,9 @@ | ||
# Set default behaviour, in case users don't have core.autocrlf set. | ||
* text=auto | ||
|
||
# Whitespace | ||
* whitespace=tab-in-indent,space-before-tab,trailing-space,tabwidth=2 | ||
*.{py,pyx,pxd,pxi} whitespace=tab-in-indent,space-before-tab,trailing-space,tabwidth=4 | ||
Makefile whitespace=space-before-tab,trailing-space,tabwidth=2 | ||
pyop2/_version.py export-subst | ||
firedrake/_version.py export-subst |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -96,15 +96,15 @@ jobs: | |
. ../firedrake_venv/bin/activate | ||
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" | ||
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" | ||
python -m pytest -v tests/test_0init.py | ||
python -m pytest -v tests/firedrake/test_0init.py | ||
python -m pytest \ | ||
--durations=200 \ | ||
--timeout=1800 \ | ||
--timeout-method=thread \ | ||
-o faulthandler_timeout=1860 \ | ||
-n 12 --dist worksteal \ | ||
--junit-xml=firedrake.xml \ | ||
-sv tests | ||
-sv tests/firedrake | ||
timeout-minutes: 120 | ||
- name: Publish Test Report | ||
uses: mikepenz/[email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
name: Pip install Firedrake | ||
|
||
on: | ||
# Push to master or PR | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
|
||
concurrency: | ||
# Cancels jobs running if new commits are pushed | ||
group: > | ||
${{ github.workflow }}- | ||
${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
build: | ||
name: "Build Firedrake using pip" | ||
runs-on: ubuntu-latest | ||
container: | ||
image: firedrakeproject/firedrake-env:latest | ||
options: --user root | ||
defaults: | ||
run: | ||
shell: bash | ||
working-directory: /home/firedrake | ||
strategy: | ||
# Don't immediately kill real if complex fails and vice versa. | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- scalar-type: real | ||
petsc_arch: default | ||
- scalar-type: complex | ||
petsc_arch: complex | ||
env: | ||
# PETSC_DIR, HDF5_DIR and MPICH_DIR are set inside the docker image | ||
FIREDRAKE_CI_TESTS: 1 | ||
PYOP2_CI_TESTS: 1 | ||
PETSC_ARCH: ${{ matrix.petsc_arch }} | ||
OMP_NUM_THREADS: 1 | ||
OPENBLAS_NUM_THREADS: 1 | ||
RDMAV_FORK_SAFE: 1 | ||
steps: | ||
- name: Cleanup | ||
if: ${{ always() }} | ||
run: rm -rf pip_venv | ||
|
||
- name: Create a venv | ||
run: | | ||
python3 -m venv pip_venv | ||
ln -s /__w/firedrake/firedrake/src pip_venv/ | ||
- uses: actions/checkout@v4 | ||
with: | ||
path: src/firedrake | ||
|
||
- name: Install libsupermesh | ||
run: | | ||
source pip_venv/bin/activate | ||
python -m pip install 'rtree>=1.2' | ||
cd pip_venv/src | ||
git clone https://github.com/firedrakeproject/libsupermesh.git | ||
mkdir -p libsupermesh/build | ||
cd libsupermesh/build | ||
cmake .. \ | ||
-DBUILD_SHARED_LIBS=ON \ | ||
-DCMAKE_INSTALL_PREFIX="$VIRTUAL_ENV" \ | ||
-DMPI_C_COMPILER="$MPICH_DIR/mpicc" \ | ||
-DMPI_CXX_COMPILER="$MPICH_DIR/mpicxx" \ | ||
-DMPI_Fortran_COMPILER="$MPICH_DIR/mpif90" \ | ||
-DCMAKE_Fortran_COMPILER="$MPICH_DIR/mpif90" \ | ||
-DMPIEXEC_EXECUTABLE="$MPICH_DIR/mpiexec" | ||
make | ||
make install | ||
- name: Pip install | ||
run: | | ||
source pip_venv/bin/activate | ||
cd pip_venv/src | ||
export CC="$MPICH_DIR/mpicc" | ||
export CXX="$MPICH_DIR/mpicxx" | ||
export MPICC="$MPICH_DIR/mpicc" | ||
export MPI_HOME="$PETSC_DIR/packages" | ||
pip install \ | ||
--log=firedrake-install.log \ | ||
--no-binary mpi4py,h5py \ | ||
-v -e './firedrake[test]' | ||
- name: Add mpiexec to the venv and install timeout | ||
run: | | ||
source pip_venv/bin/activate | ||
cat << EOF > "$VIRTUAL_ENV/bin/mpiexec" | ||
#!/bin/bash | ||
"$MPICH_DIR"/mpiexec "\$@" | ||
EOF | ||
chmod +x "$VIRTUAL_ENV"/bin/mpiexec | ||
pip install -U pytest-timeout | ||
- name: Run Firedrake smoke tests | ||
run: | | ||
source pip_venv/bin/activate | ||
cd pip_venv/src/firedrake | ||
pytest -v tests/firedrake/test_0init.py | ||
pytest \ | ||
--durations=200 \ | ||
--timeout=1800 \ | ||
--timeout-method=thread \ | ||
-o faulthandler_timeout=1860 \ | ||
-n 12 --dist worksteal \ | ||
--junit-xml=firedrake.xml \ | ||
-sv tests/firedrake/regression -k "poisson_strong or stokes_mini or dg_advection" | ||
timeout-minutes: 120 | ||
|
||
- name: Publish Test Report | ||
uses: mikepenz/[email protected] | ||
if: ${{ always() && ( github.ref != 'refs/heads/master') }} | ||
with: | ||
report_paths: '/home/firedrake/pip_venv/src/firedrake/firedrake.xml' | ||
comment: true | ||
check_name: "Firedrake ${{ matrix.scalar-type }}" | ||
updateComment: true | ||
flaky_summary: true | ||
|
||
- name: Cleanup | ||
# Belt and braces: clean up before and after the run. | ||
if: ${{ always() }} | ||
run: rm -rf pip_venv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
name: PyOP2 | ||
|
||
# Trigger the workflow on push or pull request, | ||
# but only for the master branch | ||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
# Don't immediately kill all if one Python version fails | ||
fail-fast: false | ||
matrix: | ||
python-version: ['3.10', '3.11', '3.12', '3.13'] | ||
env: | ||
CC: mpicc | ||
PETSC_DIR: ${{ github.workspace }}/petsc | ||
PETSC_ARCH: default | ||
RDMAV_FORK_SAFE: 1 | ||
PYOP2_CI_TESTS: 1 | ||
timeout-minutes: 60 | ||
|
||
steps: | ||
- name: Install system dependencies | ||
shell: bash | ||
run: | | ||
sudo apt update | ||
sudo apt install build-essential mpich libmpich-dev \ | ||
libblas-dev liblapack-dev gfortran libhwloc-dev libfabric-dev | ||
- name: Set correct Python version | ||
uses: actions/setup-python@v5 | ||
id: setup-python | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
# By default setup-python pollutes the environment in such a way that virtual | ||
# environments cannot be used. This prevents us from building libsupermesh because | ||
# it relies on having rtree installed into a venv. | ||
# https://github.com/actions/setup-python/issues/851 | ||
# https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#using-update-environment-flag | ||
update-environment: false | ||
|
||
- name: Create virtual environment | ||
shell: bash | ||
run: | | ||
${{ steps.setup-python.outputs.python-path }} -m venv venv | ||
- name: Clone PETSc | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: firedrakeproject/petsc | ||
path: ${{ env.PETSC_DIR }} | ||
|
||
- name: Build and install PETSc | ||
shell: bash | ||
working-directory: ${{ env.PETSC_DIR }} | ||
run: | | ||
./configure \ | ||
--download-hdf5 \ | ||
--with-debugging=1 \ | ||
--with-shared-libraries=1 \ | ||
--with-c2html=0 \ | ||
--with-fortran-bindings=0 | ||
make | ||
- name: Install libsupermesh | ||
shell: bash | ||
run: | | ||
source venv/bin/activate | ||
python -m pip install 'rtree>=1.2' | ||
git clone https://github.com/firedrakeproject/libsupermesh.git | ||
mkdir -p libsupermesh/build | ||
cd libsupermesh/build | ||
cmake .. \ | ||
-DBUILD_SHARED_LIBS=ON \ | ||
-DCMAKE_INSTALL_PREFIX="$VIRTUAL_ENV" \ | ||
-DMPI_C_COMPILER=mpicc \ | ||
-DMPI_CXX_COMPILER=mpicxx \ | ||
-DMPI_Fortran_COMPILER=mpif90 \ | ||
-DCMAKE_Fortran_COMPILER=mpif90 \ | ||
-DMPIEXEC_EXECUTABLE=mpiexec | ||
make | ||
make install | ||
- name: Checkout PyOP2 | ||
uses: actions/checkout@v4 | ||
with: | ||
path: PyOP2 | ||
|
||
- name: Install PyOP2 dependencies | ||
shell: bash | ||
working-directory: PyOP2 | ||
run: | | ||
source ../venv/bin/activate | ||
python -m pip install -U pip | ||
python -m pip install -U pytest-timeout | ||
- name: Install PyOP2 | ||
shell: bash | ||
working-directory: PyOP2 | ||
run: | | ||
source ../venv/bin/activate | ||
python -m pip install -v ".[test]" | ||
- name: Run tests | ||
shell: bash | ||
working-directory: PyOP2 | ||
run: | | ||
source ../venv/bin/activate | ||
# Running parallel test cases separately works around a bug in pytest-mpi | ||
pytest -k "not parallel" --tb=native --timeout=480 --timeout-method=thread -o faulthandler_timeout=540 -v tests/pyop2 | ||
mpiexec -n 3 pytest -k "parallel[3]" --tb=native --timeout=480 --timeout-method=thread -o faulthandler_timeout=540 -v tests/pyop2 | ||
timeout-minutes: 10 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,5 @@ | ||
include versioneer.py | ||
include firedrake/_version.py | ||
recursive-include pyop2 *.c | ||
include pyop2/_version.py | ||
|
Oops, something went wrong.