Laplacian of nullspace of trace in Q for internal dof functionals TNT quadrilateral #1538
Workflow file for this run
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
name: macOS build | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- "main" | |
tags: | |
- "v*" | |
merge_group: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
fenicsx-refs: | |
uses: ./.github/workflows/fenicsx-refs.yml | |
mac-os-build: | |
name: macOS Homebrew install and test | |
runs-on: macos-14 | |
needs: fenicsx-refs | |
env: | |
PETSC_ARCH: arch-darwin-c-opt | |
PETSC_DIR: ${{ github.workspace }}/petsc | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install Homebrew dependencies | |
run: | | |
brew install adios2 boost cmake hdf5-mpi make ninja open-mpi pkgconf pugixml spdlog # FEniCS | |
brew install bison flex gfortran # PETSc | |
- name: Install Python dependencies (petsc4py) | |
run: | | |
python -m pip install mpi4py numpy | |
python -m pip install cython setuptools wheel | |
- name: Install minimal PETSc and petsc4py | |
run: | | |
export PATH="$(brew --prefix gfortran)/bin:$(brew --prefix bison)/bin:$PATH" | |
git clone -b release https://gitlab.com/petsc/petsc.git petsc | |
cd petsc | |
python ./configure \ | |
--with-64-bit-indices=no \ | |
--with-debugging=no \ | |
--with-fortran-bindings=no \ | |
--with-scalar-type=real \ | |
--with-shared-libraries \ | |
--with-scalar-type=real \ | |
--download-metis \ | |
--download-parmetis \ | |
--download-ptscotch \ | |
--download-scalapack \ | |
--download-mumps \ | |
--download-mumps-avoid-mpi-in-place | |
make all | |
cd src/binding/petsc4py | |
arch -arm64 python -m pip -v install --no-build-isolation --no-cache-dir . | |
- name: Install FEniCSx dependencies | |
run: | | |
python -m pip install git+https://github.com/fenics/ufl.git@${{ needs.fenicsx-refs.outputs.ufl_ref }} | |
python -m pip install git+https://github.com/fenics/basix.git@${{ needs.fenicsx-refs.outputs.basix_ref }} | |
python -m pip install git+https://github.com/fenics/ffcx.git@${{ needs.fenicsx-refs.outputs.ffcx_ref }} | |
- uses: actions/checkout@v4 | |
with: | |
path: dolfinx | |
- name: Build and install DOLFINx C++ library | |
working-directory: dolfinx | |
run: | | |
cmake -G Ninja -B build -S cpp/ | |
cmake --build build | |
sudo cmake --install build | |
- name: Build C++ unit tests | |
working-directory: dolfinx | |
run: | | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build/test/ -S cpp/test/ | |
cmake --build build/test --parallel 3 | |
- name: Run C++ unit tests (serial) | |
working-directory: dolfinx | |
run: | | |
cd build/test | |
mpiexec -np 1 ctest -V --output-on-failure -R unittests | |
- name: Run C++ unit tests (MPI) | |
working-directory: dolfinx | |
run: | | |
cd build/test | |
mpiexec -np 3 ctest -V --output-on-failure -R unittests | |
- name: Build and install DOLFINx Python interface | |
working-directory: dolfinx | |
run: | | |
python -m pip install -r python/build-requirements.txt | |
python -m pip install --check-build-dependencies --no-build-isolation 'python/[test]' | |
- name: Basic test | |
run: | | |
mpiexec -np 1 python -c "import dolfinx; from mpi4py import MPI; dolfinx.mesh.create_rectangle(comm=MPI.COMM_WORLD, points=((0, 0), (2, 1)), n=(32, 16))" | |
mpiexec -np 2 python -c "import dolfinx; from mpi4py import MPI; dolfinx.mesh.create_rectangle(comm=MPI.COMM_WORLD, points=((0, 0), (2, 1)), n=(32, 16))" | |
- name: Run Python unit tests (serial) | |
working-directory: dolfinx | |
run: | | |
python -m pip install pytest-xdist | |
mpiexec -np 1 python3 -m pytest -n=auto --durations=50 python/test/unit/ | |
- name: Run Python unit tests (MPI, np=3) | |
working-directory: dolfinx | |
run: | | |
mpiexec -np 3 python3 -m pytest python/test/unit/ |