From 659fca198395bf2f07dde01cf311a34f93db5be4 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Wed, 6 Nov 2024 19:06:01 +0000 Subject: [PATCH] #20 Add conda variants for cells example --- .github/workflows/test-cells-conda.yml | 22 +++++++++--------- .github/workflows/test-cells-ubuntu.yml | 2 +- examples/cells/conda-recipe/build.sh | 3 --- examples/cells/conda/recipe/build.sh | 8 +++++++ .../{conda-recipe => conda/recipe}/meta.yaml | 14 ++++------- examples/cells/conda/variants/python3.10.yaml | 2 ++ examples/cells/conda/variants/python3.11.yaml | 2 ++ examples/cells/conda/variants/python3.12.yaml | 2 ++ examples/cells/conda/variants/python3.13.yaml | 2 ++ examples/cells/conda/variants/python3.8.yaml | 2 ++ examples/cells/conda/variants/python3.9.yaml | 2 ++ examples/cells/requirements.txt | 2 +- examples/cells/src/cpp/utils/PetscUtils.cpp | 23 +++++++++++++------ 13 files changed, 53 insertions(+), 33 deletions(-) delete mode 100644 examples/cells/conda-recipe/build.sh create mode 100644 examples/cells/conda/recipe/build.sh rename examples/cells/{conda-recipe => conda/recipe}/meta.yaml (73%) create mode 100644 examples/cells/conda/variants/python3.10.yaml create mode 100644 examples/cells/conda/variants/python3.11.yaml create mode 100644 examples/cells/conda/variants/python3.12.yaml create mode 100644 examples/cells/conda/variants/python3.13.yaml create mode 100644 examples/cells/conda/variants/python3.8.yaml create mode 100644 examples/cells/conda/variants/python3.9.yaml diff --git a/.github/workflows/test-cells-conda.yml b/.github/workflows/test-cells-conda.yml index ec34de4..3047c8c 100644 --- a/.github/workflows/test-cells-conda.yml +++ b/.github/workflows/test-cells-conda.yml @@ -1,4 +1,4 @@ -name: test-cells +name: test-cells-conda on: workflow_dispatch: @@ -7,7 +7,7 @@ on: - "**" jobs: - test-cells: + test-cells-conda: runs-on: ubuntu-latest strategy: @@ -16,7 +16,7 @@ jobs: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] concurrency: - group: test-cells-${{ github.ref }}-${{ matrix.python-version }} + group: test-cells-conda-${{ github.ref }}-${{ matrix.python-version }} cancel-in-progress: true defaults: @@ -39,7 +39,6 @@ jobs: use-mamba: true miniforge-version: latest python-version: ${{ matrix.python-version }} - activate-environment: test_cells channels: conda-forge - name: Install cppwg @@ -48,8 +47,7 @@ jobs: python -m pip install . - name: Install requirements - run: | - mamba install --yes --file requirements.txt + run: mamba install --yes --file requirements.txt working-directory: examples/cells - name: Set config paths @@ -78,14 +76,16 @@ jobs: grep "Unknown class" build/cppwg.log working-directory: examples/cells + - name: Install conda-build tools + run: mamba install boa conda-build conda-verify + - name: Build - run: conda build conda-recipe - working-directory: examples/cells + run: conda mambabuild recipe -m variants/python${{ matrix.python-version }}.yaml + working-directory: examples/cells/conda - name: Install - run: conda install --use-local pycells - working-directory: examples/cells + run: mamba install --use-local pycells - name: Test - run: python -m unittest discover -s tests + run: python -m unittest discover tests working-directory: examples/cells diff --git a/.github/workflows/test-cells-ubuntu.yml b/.github/workflows/test-cells-ubuntu.yml index 6adde86..5b36558 100644 --- a/.github/workflows/test-cells-ubuntu.yml +++ b/.github/workflows/test-cells-ubuntu.yml @@ -64,5 +64,5 @@ jobs: working-directory: examples/cells - name: Test - run: python -m unittest discover -s tests + run: python -m unittest discover tests working-directory: examples/cells diff --git a/examples/cells/conda-recipe/build.sh b/examples/cells/conda-recipe/build.sh deleted file mode 100644 index a1c55e8..0000000 --- a/examples/cells/conda-recipe/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -ex - -$PYTHON -m pip install . diff --git a/examples/cells/conda/recipe/build.sh b/examples/cells/conda/recipe/build.sh new file mode 100644 index 0000000..7dd38b3 --- /dev/null +++ b/examples/cells/conda/recipe/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash -ex + +export CMAKE_PREFIX_PATH="$PREFIX;$CMAKE_PREFIX_PATH" +export PETSC_DIR="$PREFIX" +export PETSC_ARCH= +export VTK_DIR="$PREFIX" + +$PYTHON -m pip install -v --no-build-isolation . diff --git a/examples/cells/conda-recipe/meta.yaml b/examples/cells/conda/recipe/meta.yaml similarity index 73% rename from examples/cells/conda-recipe/meta.yaml rename to examples/cells/conda/recipe/meta.yaml index d686744..0e982f6 100644 --- a/examples/cells/conda-recipe/meta.yaml +++ b/examples/cells/conda/recipe/meta.yaml @@ -6,26 +6,20 @@ package: version: {{ version }} source: - path: .. + path: ../.. build: number: {{ build }} requirements: - build: - - cmake - - ninja - - pip - - python - - scikit-build - - setuptools - host: - mpi4py - - mpich + - openmpi - petsc - petsc4py + - pip - python + - scikit-build-core - vtk test: diff --git a/examples/cells/conda/variants/python3.10.yaml b/examples/cells/conda/variants/python3.10.yaml new file mode 100644 index 0000000..49527e1 --- /dev/null +++ b/examples/cells/conda/variants/python3.10.yaml @@ -0,0 +1,2 @@ +python: + - 3.10.* diff --git a/examples/cells/conda/variants/python3.11.yaml b/examples/cells/conda/variants/python3.11.yaml new file mode 100644 index 0000000..b2289ba --- /dev/null +++ b/examples/cells/conda/variants/python3.11.yaml @@ -0,0 +1,2 @@ +python: + - 3.11.* diff --git a/examples/cells/conda/variants/python3.12.yaml b/examples/cells/conda/variants/python3.12.yaml new file mode 100644 index 0000000..1df82ad --- /dev/null +++ b/examples/cells/conda/variants/python3.12.yaml @@ -0,0 +1,2 @@ +python: + - 3.12.* diff --git a/examples/cells/conda/variants/python3.13.yaml b/examples/cells/conda/variants/python3.13.yaml new file mode 100644 index 0000000..13edda7 --- /dev/null +++ b/examples/cells/conda/variants/python3.13.yaml @@ -0,0 +1,2 @@ +python: + - 3.13.* diff --git a/examples/cells/conda/variants/python3.8.yaml b/examples/cells/conda/variants/python3.8.yaml new file mode 100644 index 0000000..b34e9cc --- /dev/null +++ b/examples/cells/conda/variants/python3.8.yaml @@ -0,0 +1,2 @@ +python: + - 3.8.* diff --git a/examples/cells/conda/variants/python3.9.yaml b/examples/cells/conda/variants/python3.9.yaml new file mode 100644 index 0000000..f305cf2 --- /dev/null +++ b/examples/cells/conda/variants/python3.9.yaml @@ -0,0 +1,2 @@ +python: + - 3.9.* diff --git a/examples/cells/requirements.txt b/examples/cells/requirements.txt index 70c676a..6f5e733 100644 --- a/examples/cells/requirements.txt +++ b/examples/cells/requirements.txt @@ -1,4 +1,4 @@ -mpich +openmpi mpi4py petsc petsc4py diff --git a/examples/cells/src/cpp/utils/PetscUtils.cpp b/examples/cells/src/cpp/utils/PetscUtils.cpp index 4caf0e5..eb16b08 100644 --- a/examples/cells/src/cpp/utils/PetscUtils.cpp +++ b/examples/cells/src/cpp/utils/PetscUtils.cpp @@ -12,7 +12,11 @@ void PetscUtils::Initialise() { if (!PetscUtils::IsInitialised()) { +#if PETSC_VERSION_GE(3, 19, 0) + PetscInitialize(PETSC_NULLPTR, PETSC_NULLPTR, PETSC_NULLPTR, PETSC_NULLPTR); +#else PetscInitialize(PETSC_NULL, PETSC_NULL, PETSC_NULL, PETSC_NULL); +#endif } } @@ -27,7 +31,7 @@ int PetscUtils::GetSize() { if (!PetscUtils::IsInitialised()) { - return -1; + PetscUtils::Initialise(); } PetscInt size; @@ -39,7 +43,7 @@ int PetscUtils::GetRank() { if (!PetscUtils::IsInitialised()) { - return -1; + PetscUtils::Initialise(); } PetscInt rank; @@ -49,9 +53,14 @@ int PetscUtils::GetRank() Vec PetscUtils::CreateVec(int size) { - Vec vec; - VecCreate(PETSC_COMM_WORLD, &vec); - VecSetSizes(vec, PETSC_DECIDE, size); - VecSetType(vec, VECMPI); - return vec; + if (!PetscUtils::IsInitialised()) + { + PetscUtils::Initialise(); + } + + Vec v; + VecCreate(PETSC_COMM_WORLD, &v); + VecSetSizes(v, PETSC_DECIDE, size); + VecSetFromOptions(v); + return v; }