diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index d19f0ff4cc4..1dadd1ccd68 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -256,7 +256,6 @@ jobs: script_args+=(--enable-hypre "${{ inputs.ENABLE_HYPRE }}") fi - # Hypredrive is off by default so the TPL image host-config cannot enable it. ENABLE_HYPREDRV=${{ inputs.ENABLE_HYPREDRV }} if [ ! -z "${{ inputs.ENABLE_HYPREDRV }}" ]; then script_args+=(--enable-hypredrv "${{ inputs.ENABLE_HYPREDRV }}") @@ -265,7 +264,7 @@ jobs: # Trilinos ENABLE_TRILINOS=${{ inputs.ENABLE_TRILINOS }} docker_args+=(-e ENABLE_HYPRE=${ENABLE_HYPRE:-OFF}) - docker_args+=(-e ENABLE_HYPREDRV=${ENABLE_HYPREDRV:-OFF}) + docker_args+=(-e ENABLE_HYPREDRV=${ENABLE_HYPREDRV:-ON}) docker_args+=(-e ENABLE_HYPRE_DEVICE=${ENABLE_HYPRE_DEVICE:-CPU}) docker_args+=(-e ENABLE_TRILINOS=${ENABLE_TRILINOS:-ON}) docker_args+=(-e GEOS_BUILD_SHARED_LIBS=${{ inputs.BUILD_SHARED_LIBS }}) diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index 7ab583d9683..589fd802e00 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -27,11 +27,17 @@ jobs: steps: - name: Check that the PR is not a draft (cancel rest of jobs otherwise) id: extract_pr_info + env: + GITHUB_TOKEN: ${{ github.token }} run: | set -euo pipefail if [[ "${{ github.event_name }}" == "pull_request" ]]; then - draft_status="${{ github.event.pull_request.draft }}" + PR_JSON=$(curl --fail --silent --show-error \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${GITHUB_TOKEN}" \ + https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.number }}) + draft_status=$(jq -r '.draft' <<< "${PR_JSON}") echo "Draft status of PR is ${draft_status}." if [[ "${draft_status}" == "true" ]]; then diff --git a/host-configs/LBL/anag-gcc.cmake b/host-configs/LBL/anag-gcc.cmake deleted file mode 100644 index 749362dc46f..00000000000 --- a/host-configs/LBL/anag-gcc.cmake +++ /dev/null @@ -1,13 +0,0 @@ - -site_name(HOST_NAME) - -set(CMAKE_C_COMPILER "gcc" CACHE PATH "" FORCE) -set(CMAKE_CXX_COMPILER "g++" CACHE PATH "" FORCE) -set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) - -set(ENABLE_MPI ON CACHE PATH "" FORCE) -set(MPI_C_COMPILER "mpicc" CACHE PATH "" FORCE) -set(MPI_CXX_COMPILER "mpic++" CACHE PATH "" FORCE) -set(MPIEXEC "mpirun" CACHE PATH "" FORCE) - -set( ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) diff --git a/host-configs/LBL/cori-gcc@8.1.0.cmake b/host-configs/LBL/cori-gcc@8.1.0.cmake deleted file mode 100644 index b0a50872aa3..00000000000 --- a/host-configs/LBL/cori-gcc@8.1.0.cmake +++ /dev/null @@ -1,55 +0,0 @@ -################################## -# cori - KNL build -# Run scripts/cori-setup-environment.sh before building -################################## -set(CMAKE_CXX_COMPILER "/opt/gcc/8.1.0/bin/g++" CACHE PATH "" FORCE) -set(CMAKE_C_COMPILER "/opt/gcc/8.1.0/bin/gcc" CACHE PATH "" FORCE) -set(CMAKE_Fortran_COMPILER "/opt/gcc/8.1.0/bin/gfortran" CACHE PATH "" FORCE) - -# These flags should be set for the TPL build but they break some of our numerically sensative code. -# This needs to be fixed. -set(CMAKE_C_FLAGS "-march=knl -mtune=knl -Wl,-rpath=/opt/gcc/8.1.0/snos/lib64/" CACHE STRING "") -set(CMAKE_CXX_FLAGS "-march=knl -mtune=knl -Wl,-rpath=/opt/gcc/8.1.0/snos/lib64/" CACHE STRING "") -set(CMAKE_Fortran_FLAGS "-march=knl -mtune=knl -Wl,-rpath=/opt/gcc/8.1.0/snos/lib64/" CACHE STRING "") -# set(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath=/opt/gcc/8.1.0/snos/lib64/" CACHE STRING "") - -set(ENABLE_FORTRAN OFF CACHE BOOL "") - -set(ENABLE_MPI ON CACHE BOOL "") -set(MPI_HOME /global/common/software/m3169/cori/openmpi/4.0.2/gnu/ CACHE PATH "") -set(MPI_C_COMPILER ${MPI_HOME}/bin/mpicc CACHE PATH "") -set(MPI_CXX_COMPILER ${MPI_HOME}/bin/mpicxx CACHE PATH "") -set(MPI_Fortran_COMPILER ${MPI_HOME}/bin/mpifort CACHE PATH "") - -set(MPIEXEC /usr/bin/srun CACHE PATH "") -set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "") - -set(GEOS_TPL_DIR "/global/project/projectdirs/m1411/GEOSX/tpls/install-cori-gcc\@8.1.0-release-24-07-20" CACHE PATH "" ) - -set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") -set(ENABLE_UNCRUSTIFY OFF CACHE BOOL "") -set(ENABLE_DOXYGEN OFF CACHE BOOL "") - -set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "") - -set(ENABLE_PVTPackage ON CACHE BOOL "") - -set(ENABLE_CALIPER ON CACHE BOOL "") -set(ENABLE_ADIAK ON CACHE BOOL "") -set(ENABLE_PAPI ON CACHE BOOL "") -set(PAPI_PREFIX "/opt/cray/pe/papi/5.7.0.1" CACHE PATH "" FORCE) - -set(ENABLE_OPENMP ON CACHE BOOL "") -set(ENABLE_CUDA OFF CACHE BOOL "") - -set(ENABLE_TOTALVIEW_OUTPUT OFF CACHE BOOL "Enables Totalview custom view" FORCE) -set(ENABLE_PETSC OFF CACHE BOOL "") - -set(ENABLE_MKL ON CACHE BOOL "") -set(MKL_ROOT /opt/intel/compilers_and_libraries_2019.3.199/linux/mkl) -set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") -set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so - ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so - ${MKL_ROOT}/lib/intel64/libmkl_core.so - CACHE STRING "") - diff --git a/host-configs/LBL/cori-intel.cmake b/host-configs/LBL/cori-intel.cmake deleted file mode 100644 index f9ff8ec447c..00000000000 --- a/host-configs/LBL/cori-intel.cmake +++ /dev/null @@ -1,56 +0,0 @@ -################################## -# cori - KNL build -# Run scripts/cori-setup-environment.sh before building -################################## - -set( ENABLE_WARNINGS_AS_ERRORS "OFF" CACHE BOOL "" FORCE) - -set(CMAKE_CXX_COMPILER "CC" CACHE PATH "" FORCE) -set(CMAKE_C_COMPILER "cc" CACHE PATH "" FORCE) -set(CMAKE_Fortran_COMPILER "ftn" CACHE PATH "" FORCE) - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -axMIC-AVX512,AVX -qoverride-limits" CACHE STRING "" FORCE) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -axMIC-AVX512,AVX -qoverride-limits" CACHE STRING "" FORCE) -set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -axMIC-AVX512,AVX" CACHE STRING "" FORCE) - -# NERSC recommends no optimization flags for intel or cray compilers. -set(CMAKE_CXX_FLAGS_DEBUG "-g -O0" CACHE STRING "" FORCE) -set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG" CACHE STRING "" FORCE) - -set(ENABLE_MPI ON CACHE BOOL "" FORCE) -set(MPI_CXX_COMPILER "${CC}" CACHE PATH "") -set(MPI_C_COMPILER "${cc}" CACHE PATH "") -set(MPI_Fortran_COMPILER "ftn" CACHE PATH "" FORCE) -set(MPIEXEC "/usr/bin/srun" CACHE PATH "") -set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "") - -set(GEOS_TPL_DIR "/global/project/projectdirs/m1411/GEOSX/tpls/install-cori-intel-release-22-07-20" CACHE PATH "" ) - -set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") -set(ENABLE_UNCRUSTIFY OFF CACHE BOOL "") -set(ENABLE_DOXYGEN OFF CACHE BOOL "") -set(ENABLE_XML_UPDATES OFF CACHE BOOL "") - -set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "") - -set(ENABLE_PVTPackage ON CACHE BOOL "") - -set(ENABLE_CALIPER ON CACHE BOOL "") -set(ENABLE_ADIAK ON CACHE BOOL "") -set(ENABLE_PAPI ON CACHE BOOL "") -set(PAPI_PREFIX "/opt/cray/pe/papi/5.7.0.1" CACHE PATH "" FORCE) - -set(ENABLE_OPENMP ON CACHE BOOL "") -set(ENABLE_CUDA OFF CACHE BOOL "") - -set(ENABLE_TOTALVIEW_OUTPUT OFF CACHE BOOL "Enables Totalview custom view" FORCE) - -set(ENABLE_MKL ON CACHE BOOL "") -set(MKL_ROOT /opt/intel/compilers_and_libraries_2019.3.199/linux/mkl) -set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") -set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so - ${MKL_ROOT}/lib/intel64/libmkl_intel_thread.so - ${MKL_ROOT}/lib/intel64/libmkl_core.so - CACHE STRING "") - -set(ENABLE_PETSC OFF CACHE BOOL "") diff --git a/host-configs/LBL/corigpu-gcc.cmake b/host-configs/LBL/corigpu-gcc.cmake deleted file mode 100644 index 9e0f9066f8b..00000000000 --- a/host-configs/LBL/corigpu-gcc.cmake +++ /dev/null @@ -1,21 +0,0 @@ -include(${CMAKE_CURRENT_LIST_DIR}/../src/coreComponents/LvArray/host-configs/corigpu-gcc.cmake) - -# asmjit doesn't work on PowerPC -set(ENABLE_MATHPRESSO OFF CACHE BOOL "") - -# Silo configure script doesn't recognize systype -#set(SILO_BUILD_TYPE powerpc64-unknown-linux-gnu CACHE STRING "") - -set(ENABLE_PVTPackage ON CACHE BOOL "") - -set(ENABLE_CALIPER ON CACHE BOOL "") -set(ENABLE_PAPI OFF CACHE BOOL "") - -set(ENABLE_MKL ON CACHE BOOL "") -set(MKL_ROOT /opt/intel/mkl CACHE PATH "" ) -set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") -set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so - ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so - ${MKL_ROOT}/lib/intel64/libmkl_core.so - CACHE STRING "") - diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake index a55f5975d3c..e11124c891e 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake @@ -125,7 +125,7 @@ set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-gcc-12_tpls/gcc-12.1. set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-gcc-12_tpls/gcc-12.1.1/hypre-git.9fbaf60dc9435e71ff5af984f1e12e2bf8be6ad8_master-l3nuajfedgl7ova5u2fheltf6euxupvq" CACHE PATH "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-gcc-12_tpls/gcc-12.1.1/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-6fr7ry746mawo3hg35sap7j43nfijbzi" CACHE PATH "") diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake index 392691e4226..5027070a0bc 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake @@ -125,7 +125,7 @@ set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-gcc-13_tpls/gcc-13.3. set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-gcc-13_tpls/gcc-13.3.1/hypre-git.9fbaf60dc9435e71ff5af984f1e12e2bf8be6ad8_master-obgrfae6tjeywyz5xufz77nm44qexv55" CACHE PATH "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-gcc-13_tpls/gcc-13.3.1/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-s75vosid4wxvttywirk75zdaqxdb5zw7" CACHE PATH "") diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake index 2f4ed180578..488d394c668 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake @@ -125,7 +125,7 @@ set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-llvm-14_tpls/llvm-14. set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-llvm-14_tpls/llvm-14.0.6/hypre-git.9fbaf60dc9435e71ff5af984f1e12e2bf8be6ad8_master-fiuodd3ym2fwfict7krpl3law4lvwfht" CACHE PATH "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-llvm-14_tpls/llvm-14.0.6/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-bamxtt67tqifn6kkbkqis7m3qq3ul4on" CACHE PATH "") diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake index 8be580eab3b..eb93739106d 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake @@ -125,7 +125,7 @@ set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-llvm-19_tpls/llvm-19. set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-llvm-19_tpls/llvm-19.1.3/hypre-git.9fbaf60dc9435e71ff5af984f1e12e2bf8be6ad8_master-ggcgviv6w5o72uguflziyhkfjclijbnq" CACHE PATH "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/dane-llvm-19_tpls/llvm-19.1.3/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-e2nxbaosj6yo46uxk64mdy3fhy4f2ebt" CACHE PATH "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake index 40d7f4daa7e..e54448a562e 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake @@ -141,7 +141,7 @@ set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-gcc-12-cuda-12.6_tpls/ set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-wwxdf7tyzd3nfvvijymtd3fzmrbf6ngs" CACHE PATH "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake index a3a9ae90364..23054b3c0ea 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake @@ -141,7 +141,7 @@ set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-gcc-13-cuda-12.9_tpls/ set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-dkkq24wpwi457ars3gne3wkpa62s3wxi" CACHE PATH "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake index 0aa70ebbb96..e31e052f496 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake @@ -141,7 +141,7 @@ set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-llvm-14-cuda-12.6_tpls set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-cccwwkyyauh5ma5pq7ibwt6hhlsauw2c" CACHE PATH "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake index cb892bd792b..a6d8f2a15be 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake @@ -141,7 +141,7 @@ set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-llvm-19-cuda-12.9_tpls set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-4cshncaancog3oyenmrqiaxxajvngwsv" CACHE PATH "") diff --git a/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake index d895ed7af4a..9622763efef 100644 --- a/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake +++ b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake @@ -135,7 +135,7 @@ set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/tuolumne-cce-20-rocm-6.4.3_tp set(ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-b4cizv3pkm255dru3juyk4vpne4lzr2h" CACHE PATH "") diff --git a/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake index f44f2418205..c91fa5b66a3 100644 --- a/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake +++ b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake @@ -135,7 +135,7 @@ set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/tuolumne-llvm-amdgpu-6.4.3_tp set(ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "") -set(ENABLE_HYPREDRV OFF CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(HYPREDRV_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-08-12/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/hypredrive-git.4eb4f1b126332844feaaf941e32ae5dc125e5bdc_master-6vvzj7xbvkl6imlstcj5n2wlw2uatzqj" CACHE PATH "") diff --git a/host-configs/ORNL/ascent-gcc@8.1.1.cmake b/host-configs/ORNL/ascent-gcc@8.1.1.cmake deleted file mode 100644 index dcbdf329c40..00000000000 --- a/host-configs/ORNL/ascent-gcc@8.1.1.cmake +++ /dev/null @@ -1,29 +0,0 @@ -include(${CMAKE_CURRENT_LIST_DIR}/../../src/coreComponents/LvArray/host-configs/ORNL/ascent-gcc@8.1.1.cmake) - -# asmjit doesn't work on PowerPC -set(ENABLE_MATHPRESSO OFF CACHE BOOL "") - -# Silo configure script doesn't recognize systype -set(SILO_BUILD_TYPE powerpc64-unknown-linux-gnu CACHE STRING "") - -set(ENABLE_PVTPackage ON CACHE BOOL "") - -set(ENABLE_PETSC OFF CACHE BOOL "" FORCE) - -set(ENABLE_CALIPER ON CACHE BOOL "") -set(ENABLE_PAPI OFF CACHE BOOL "") - -set(ENABLE_ESSL ON CACHE BOOL "") -set(ESSL_INCLUDE_DIRS /sw/ascent/essl/6.2.0-20190419/essl/6.2/include CACHE STRING "") -set(ESSL_LIBRARIES /sw/ascent/essl/6.2.0-20190419/essl/6.2/lib64/libesslsmpcuda.so - /sw/ascent/xl/16.1.1-3/lib/libxlsmp.so.1 - /sw/ascent/xl/16.1.1-3/lib/libxlfmath.so.1 - /sw/ascent/xl/16.1.1-3/lib/libxlf90_r.so.1 - ${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcublas.so - ${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcudart.so - ${GEOS_TPL_ROOT_DIR}/liblapackforessl.a - /sw/ascent/xl/16.1.1-3/xlC/16.1.1/lib/libxl.a - CACHE PATH "") - -#set(PETSC_OMP_DIR /ccsopen/home/klevtsov/thirdPartyLibs/omp-links-for-petsc CACHE STRING "") - diff --git a/host-configs/ORNL/frontier-base.cmake b/host-configs/ORNL/frontier-base.cmake index 7337dbf387b..bd9d712ac27 100644 --- a/host-configs/ORNL/frontier-base.cmake +++ b/host-configs/ORNL/frontier-base.cmake @@ -11,6 +11,7 @@ set( ENABLE_PAPI OFF CACHE BOOL "" ) set( ENABLE_ESSL OFF CACHE BOOL "" ) set( ENABLE_TRILINOS OFF CACHE BOOL "" ) +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) set( CAMP_STANDALONE TRUE CACHE BOOL "" ) diff --git a/host-configs/ORNL/frontier-cce@15.0.0.cmake b/host-configs/ORNL/frontier-cce@15.0.0.cmake index f72fce7c636..515fe4acb3e 100644 --- a/host-configs/ORNL/frontier-cce@15.0.0.cmake +++ b/host-configs/ORNL/frontier-cce@15.0.0.cmake @@ -18,6 +18,7 @@ set( SUITESPARSE_DIR "${GEOS_TPL_DIR}/suite-sparse-5.10.1" CACHE PATH "" ) # HYPRE options set( ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "" ) set( ENABLE_HYPRE_MIXINT TRUE CACHE STRING "" ) +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) set( HYPRE_DIR "/lustre/orion/geo127/world-shared/hypre/hypre_v2.27.0-218-ge2806c33d_cce-15.0.0_rocm-5.4.3_mixint_umpire-2022.03.0_caliper-2.8.0_rel/" CACHE PATH "" ) diff --git a/host-configs/Stanford/sherlock-gcc10-cuda12-sm70.cmake b/host-configs/Stanford/sherlock-gcc10-cuda12-sm70.cmake index 153a177e37c..c8a841c359a 100644 --- a/host-configs/Stanford/sherlock-gcc10-cuda12-sm70.cmake +++ b/host-configs/Stanford/sherlock-gcc10-cuda12-sm70.cmake @@ -24,5 +24,6 @@ set(ENABLE_OPENMP OFF CACHE BOOL "" FORCE) set(GEOS_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "" FORCE) +set(ENABLE_HYPREDRV ON CACHE BOOL "") set(ENABLE_PETSC OFF CACHE BOOL "" FORCE) set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) diff --git a/host-configs/Stanford/sherlock-gcc10.cmake b/host-configs/Stanford/sherlock-gcc10.cmake index b1590980f04..03f0047c522 100644 --- a/host-configs/Stanford/sherlock-gcc10.cmake +++ b/host-configs/Stanford/sherlock-gcc10.cmake @@ -38,6 +38,7 @@ set(LAPACK_LIBRARIES "${OPENBLAS_ROOT}/lib/libopenblas.so" CACHE STRING "") set(ENABLE_VALGRIND OFF CACHE BOOL "") set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_HYPREDRV ON CACHE BOOL "") if (DEFINED ENV{GEOSX_TPL_DIR}) set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) diff --git a/host-configs/TOTAL/maple-common.cmake b/host-configs/TOTAL/maple-common.cmake index 81c7c012c53..b5dc4ac3225 100755 --- a/host-configs/TOTAL/maple-common.cmake +++ b/host-configs/TOTAL/maple-common.cmake @@ -112,6 +112,8 @@ set( ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) # Enale caliper instrumentation set( ENABLE_CALIPER ON CACHE BOOL "" ) +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) + # Disable doxygen. No valid libiconv available set( ENABLE_DOXYGEN OFF CACHE BOOL "" FORCE ) diff --git a/host-configs/TOTAL/maple-gcc12.2.0-cuda12.4.131-openmpi5.0.5-openblas0.3.21.cmake b/host-configs/TOTAL/maple-gcc12.2.0-cuda12.4.131-openmpi5.0.5-openblas0.3.21.cmake index d10c1b9488e..f0493b7dbfe 100755 --- a/host-configs/TOTAL/maple-gcc12.2.0-cuda12.4.131-openmpi5.0.5-openblas0.3.21.cmake +++ b/host-configs/TOTAL/maple-gcc12.2.0-cuda12.4.131-openmpi5.0.5-openblas0.3.21.cmake @@ -36,6 +36,7 @@ set( ENABLE_CUDA ON CACHE BOOL "" ) ######################################################################### # Set HYPRE to use CUDA set( ENABLE_HYPRE_DEVICE "CUDA" CACHE PATH "" FORCE ) +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) add_third_party_libraries() diff --git a/host-configs/TOTAL/maple-gcc12.2.0-openmpi5.0.5-openblas0.3.21.cmake b/host-configs/TOTAL/maple-gcc12.2.0-openmpi5.0.5-openblas0.3.21.cmake index 5ed14ed6662..6a9af049500 100755 --- a/host-configs/TOTAL/maple-gcc12.2.0-openmpi5.0.5-openblas0.3.21.cmake +++ b/host-configs/TOTAL/maple-gcc12.2.0-openmpi5.0.5-openblas0.3.21.cmake @@ -53,4 +53,5 @@ set( MPIEXEC_EXECUTABLE mpiexec CACHE PATH "" FORCE ) ######################################################################### # OTHER OPTIONS ######################################################################### +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) add_third_party_libraries() diff --git a/host-configs/TOTAL/maple-llvm17.0.4-cuda12.4.131-openmpi5.0.3-openblas0.3.21.cmake b/host-configs/TOTAL/maple-llvm17.0.4-cuda12.4.131-openmpi5.0.3-openblas0.3.21.cmake index 27247458a64..580bf68a959 100755 --- a/host-configs/TOTAL/maple-llvm17.0.4-cuda12.4.131-openmpi5.0.3-openblas0.3.21.cmake +++ b/host-configs/TOTAL/maple-llvm17.0.4-cuda12.4.131-openmpi5.0.3-openblas0.3.21.cmake @@ -36,6 +36,7 @@ set( ENABLE_CUDA ON CACHE BOOL "" ) ######################################################################### # Set HYPRE to use CUDA set( ENABLE_HYPRE_DEVICE "CUDA" CACHE PATH "" FORCE ) +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) add_third_party_libraries() diff --git a/host-configs/TOTAL/maple-llvm17.0.4-openmpi5.0.3-openblas0.3.21.cmake b/host-configs/TOTAL/maple-llvm17.0.4-openmpi5.0.3-openblas0.3.21.cmake index 9cd819f901a..cd64cfdf77a 100755 --- a/host-configs/TOTAL/maple-llvm17.0.4-openmpi5.0.3-openblas0.3.21.cmake +++ b/host-configs/TOTAL/maple-llvm17.0.4-openmpi5.0.3-openblas0.3.21.cmake @@ -54,4 +54,5 @@ set( ENABLE_OPENMP ON CACHE PATH "" FORCE ) ######################################################################### # OTHER OPTIONS ######################################################################### +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) add_third_party_libraries() diff --git a/host-configs/apple/macOS_arm.cmake b/host-configs/apple/macOS_arm.cmake index 0d08fd44453..0de18e4d1a8 100644 --- a/host-configs/apple/macOS_arm.cmake +++ b/host-configs/apple/macOS_arm.cmake @@ -2,3 +2,4 @@ set( HOMEBREW_DIR "/opt/homebrew" ) set( CONFIG_NAME "macOS_arm" ) include(${CMAKE_CURRENT_LIST_DIR}/macOS_base.cmake) +set(ENABLE_HYPREDRV ON CACHE BOOL "") diff --git a/host-configs/apple/macOS_base.cmake b/host-configs/apple/macOS_base.cmake index 6d56f70755c..969152c599c 100644 --- a/host-configs/apple/macOS_base.cmake +++ b/host-configs/apple/macOS_base.cmake @@ -20,6 +20,8 @@ set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) set(ENABLE_CUDA "OFF" CACHE PATH "" FORCE) set(ENABLE_OPENMP "OFF" CACHE PATH "" FORCE) +set(ENABLE_HYPREDRV ON CACHE BOOL "") + set(ENABLE_CALIPER "OFF" CACHE PATH "" FORCE ) set( BLAS_LIBRARIES ${HOMEBREW_DIR}/opt/lapack/lib/libblas.dylib CACHE PATH "" FORCE ) diff --git a/host-configs/apple/macOS_x86.cmake b/host-configs/apple/macOS_x86.cmake index 7cd85b2e5e9..568296a9e88 100644 --- a/host-configs/apple/macOS_x86.cmake +++ b/host-configs/apple/macOS_x86.cmake @@ -2,3 +2,4 @@ set( HOMEBREW_DIR "/usr/local" ) set( CONFIG_NAME "macOS_x86" ) include(${CMAKE_CURRENT_LIST_DIR}/macOS_base.cmake) +set(ENABLE_HYPREDRV ON CACHE BOOL "") diff --git a/host-configs/environment.cmake b/host-configs/environment.cmake index 9ed45931cb3..5f72a9197a6 100644 --- a/host-configs/environment.cmake +++ b/host-configs/environment.cmake @@ -24,6 +24,12 @@ else() set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) endif() +if(NOT DEFINED ENABLE_HYPREDRV) + if(DEFINED ENV{ENABLE_HYPREDRV} AND NOT "$ENV{ENABLE_HYPREDRV}" STREQUAL "") + set(ENABLE_HYPREDRV "$ENV{ENABLE_HYPREDRV}" CACHE BOOL "" FORCE) + endif() +endif() + # Same pattern if(NOT DEFINED ENABLE_TRILINOS) set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) diff --git a/host-configs/quick-start-template.cmake b/host-configs/quick-start-template.cmake index 239f52e202f..ae14a83460c 100644 --- a/host-configs/quick-start-template.cmake +++ b/host-configs/quick-start-template.cmake @@ -21,6 +21,7 @@ set( ENABLE_OPENMP OFF CACHE PATH "" FORCE ) # TPLs set( ENABLE_TRILINOS OFF CACHE PATH "" FORCE ) +set( ENABLE_HYPREDRV ON CACHE BOOL "" ) set( ENABLE_CALIPER OFF CACHE PATH "" FORCE ) set( ENABLE_DOXYGEN OFF CACHE BOOL "" FORCE) set( ENABLE_MATHPRESSO OFF CACHE BOOL "" FORCE ) diff --git a/host-configs/tpls.cmake b/host-configs/tpls.cmake index 1a4ab1701e6..f5232879b24 100644 --- a/host-configs/tpls.cmake +++ b/host-configs/tpls.cmake @@ -84,6 +84,11 @@ if(EXISTS ${GEOS_TPL_DIR}/hypre) set(HYPRE_DIR ${GEOS_TPL_DIR}/hypre CACHE PATH "" FORCE) endif() +if(EXISTS ${GEOS_TPL_DIR}/hypredrive) + set(HYPREDRV_DIR ${GEOS_TPL_DIR}/hypredrive CACHE PATH "" FORCE) + set(ENABLE_HYPREDRV ON CACHE BOOL "" FORCE) +endif() + if(EXISTS ${GEOS_TPL_DIR}/scotch) set(SCOTCH_DIR ${GEOS_TPL_DIR}/scotch CACHE PATH "" FORCE) endif() diff --git a/scripts/ci_build_and_test_in_container.sh b/scripts/ci_build_and_test_in_container.sh index 9fa8ac1086d..d1136071eee 100755 --- a/scripts/ci_build_and_test_in_container.sh +++ b/scripts/ci_build_and_test_in_container.sh @@ -165,8 +165,8 @@ Usage: $0 --enable-hypre One of ON or OFF (default is ON). Build geos with hypre. --enable-hypredrv - One of ON or OFF (default is OFF). Build geos with hypredrive. - Overrides the TPL image host-config, which may set ENABLE_HYPREDRV ON. + One of ON or OFF (default is ON). Build geos with hypredrive. + This flag overrides the TPL image host-config. --enable-hypre-device One of CPU, CUDA, or HIP (default is CPU). Build geos with hypre GPU support. --enable-trilinos @@ -216,7 +216,7 @@ BUILD_GENERATOR="" GEOS_INSTALL_SCHEMA=true HOST_CONFIG="host-configs/environment.cmake" ENABLE_HYPRE=ON -ENABLE_HYPREDRV=OFF +ENABLE_HYPREDRV=ON ENABLE_HYPRE_DEVICE=CPU GEOS_LA_INTERFACE=Hypre RUN_UNIT_TESTS=true diff --git a/src/cmake/GeosxOptions.cmake b/src/cmake/GeosxOptions.cmake index 353e8697c59..3e41db757d2 100644 --- a/src/cmake/GeosxOptions.cmake +++ b/src/cmake/GeosxOptions.cmake @@ -56,7 +56,14 @@ option( ENABLE_TOTALVIEW_OUTPUT "Enables Totalview custom view" OFF ) option( ENABLE_SUPERLU_DIST "Enables SUPERLU_DIST" ON ) option( ENABLE_TRILINOS "Enables TRILINOS" ON ) option( ENABLE_HYPRE "Enables HYPRE" ON ) -option( ENABLE_HYPREDRV "Enables HYPREDRV" OFF ) +# hypredrive is ON by default whenever HYPRE is enabled. Pass -DENABLE_HYPREDRV=OFF to disable. +if( ENABLE_HYPRE ) + set( GEOS_HYPREDRV_DEFAULT ON ) +else() + set( GEOS_HYPREDRV_DEFAULT OFF ) +endif() +option( ENABLE_HYPREDRV "Enables HYPREDRV (ON by default when ENABLE_HYPRE is ON)" ${GEOS_HYPREDRV_DEFAULT} ) +unset( GEOS_HYPREDRV_DEFAULT ) option( ENABLE_PETSC "Enables PETSC" OFF ) option( ENABLE_SUITESPARSE "Enables SUITESPARSE" ON ) diff --git a/src/cmake/thirdparty/SetupGeosxThirdParty.cmake b/src/cmake/thirdparty/SetupGeosxThirdParty.cmake index 2bb024b2b05..eb0fb237187 100644 --- a/src/cmake/thirdparty/SetupGeosxThirdParty.cmake +++ b/src/cmake/thirdparty/SetupGeosxThirdParty.cmake @@ -122,6 +122,21 @@ macro(mandatory_tpl_doesnt_exist endmacro(mandatory_tpl_doesnt_exist) +macro( hypredrv_install_not_found extra_detail ) + message( FATAL_ERROR + "A valid hypredrive installation is required because ENABLE_HYPREDRV is ON " + "(this is the default when ENABLE_HYPRE is ON).\n" + " ${extra_detail}\n" + " ENABLE_HYPRE = ${ENABLE_HYPRE}\n" + " ENABLE_HYPREDRV = ${ENABLE_HYPREDRV}\n" + " HYPREDRV_DIR = \"${HYPREDRV_DIR}\"\n" + " GEOS_TPL_DIR = \"${GEOS_TPL_DIR}\"\n" + "hypredrive was not found in the current third-party library (TPL) bundle. " + "Update your TPLs to a version that includes hypredrive, then set HYPREDRV_DIR " + "to that installation (or ensure \"${GEOS_TPL_DIR}/hypredrive\" exists).\n" + "To build with HYPRE but without hypredrive, reconfigure with -DENABLE_HYPREDRV=OFF." ) +endmacro() + set(thirdPartyLibs "") @@ -753,7 +768,21 @@ if( ENABLE_HYPREDRV AND NOT ENABLE_HYPRE ) message( FATAL_ERROR "ENABLE_HYPREDRV requires ENABLE_HYPRE." ) endif() -if( DEFINED HYPREDRV_DIR AND ENABLE_HYPREDRV ) +if( ENABLE_HYPREDRV ) + # Host-configs and -DHYPREDRV_DIR win. Otherwise look in the TPL bundle. + if( NOT HYPREDRV_DIR AND DEFINED GEOS_TPL_DIR AND EXISTS "${GEOS_TPL_DIR}/hypredrive" ) + set( HYPREDRV_DIR "${GEOS_TPL_DIR}/hypredrive" CACHE PATH + "Path to a HYPREDRV installation prefix or package config directory" FORCE ) + endif() + + if( NOT HYPREDRV_DIR ) + hypredrv_install_not_found( "HYPREDRV_DIR is not set." ) + endif() + + if( NOT EXISTS "${HYPREDRV_DIR}" ) + hypredrv_install_not_found( "HYPREDRV_DIR does not exist on disk." ) + endif() + message( STATUS "HYPREDRV_DIR = ${HYPREDRV_DIR}" ) list( PREPEND CMAKE_PREFIX_PATH "${HYPREDRV_DIR}" ) @@ -761,12 +790,18 @@ if( DEFINED HYPREDRV_DIR AND ENABLE_HYPREDRV ) list( PREPEND CMAKE_PREFIX_PATH "${HYPRE_DIR}" ) endif() - find_package( HYPREDRV REQUIRED CONFIG + find_package( HYPREDRV CONFIG QUIET PATHS ${HYPREDRV_DIR} ${HYPREDRV_DIR}/lib/cmake/HYPREDRV + ${HYPREDRV_DIR}/lib64/cmake/HYPREDRV ${HYPREDRV_DIR}/cmake/HYPREDRV NO_DEFAULT_PATH ) + if( NOT HYPREDRV_FOUND ) + hypredrv_install_not_found( + "No HYPREDRV CMake package was found under HYPREDRV_DIR (looked for HYPREDRVConfig.cmake)." ) + endif() + blt_convert_to_system_includes( TARGET HYPREDRV::HYPREDRV ) unset( hypredrv_config_header ) @@ -813,11 +848,6 @@ if( DEFINED HYPREDRV_DIR AND ENABLE_HYPREDRV ) set( ENABLE_HYPREDRV ON CACHE BOOL "" FORCE ) set( thirdPartyLibs ${thirdPartyLibs} HYPREDRV::HYPREDRV ) else() - if( ENABLE_HYPREDRV ) - message( WARNING "ENABLE_HYPREDRV is ON but HYPREDRV_DIR isn't defined." ) - endif() - - set( ENABLE_HYPREDRV OFF CACHE BOOL "" FORCE ) message( STATUS "Not using HYPREDRV." ) endif() diff --git a/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst b/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst index 9e690b8abf3..f879099222d 100644 --- a/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst +++ b/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst @@ -90,11 +90,12 @@ vector ownership, and all higher-level GEOS solver logic remain unchanged. Build requirements ================== -This feature is optional. It is available only when GEOS is configured with: +hypredrive is enabled by default whenever GEOS is configured with ``ENABLE_HYPRE=ON``. +CMake then requires a valid hypredrive installation, located either through ``HYPREDRV_DIR`` +or at ``${GEOS_TPL_DIR}/hypredrive``. If that installation cannot be found, configuration +fails and asks you to update the TPL bundle. -* ``ENABLE_HYPRE=ON``, -* ``ENABLE_HYPREDRV=ON``, -* ``HYPREDRV_DIR`` pointing to a hypredrive installation or package configuration directory. +To build with HYPRE but without hypredrive, pass ``-DENABLE_HYPREDRV=OFF``. If GEOS is built without hypredrive support, setting ``hypredriveInputFile`` in the XML input is an error. diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/hypredrive.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/hypredrive.cpp index 1db7a6e581c..ae52ea639e5 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/hypredrive.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/hypredrive.cpp @@ -855,10 +855,9 @@ bool buildILUPreconditionerYaml( LinearSolverParameters const & params, { appendLine( stream, 2, GEOS_FMT( "droptol: {}", params.ifact.threshold ) ); } - if( params.dofsPerNode > 1 ) - { - appendLine( stream, 2, "reordering: 0" ); - } + // HYPRE_ILUCreate defaults to RCM reordering. Keep the legacy path's + // behavior for scalar systems while retaining the mechanics safeguard. + appendLine( stream, 2, GEOS_FMT( "reordering: {}", params.dofsPerNode > 1 ? 0 : 1 ) ); yaml = stream.str(); return true; @@ -1036,12 +1035,15 @@ void appendPressureAMG( std::ostringstream & stream, #else appendLine( stream, indentLevel + 2, "prolongation_type: 4" ); #endif -#if GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_CUDA || GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_HIP + // HYPRE_BoomerAMGCreate defaults max_coarse_size to 9, whereas + // HypreDrive defaults it to 64. Specify the legacy value explicitly. appendLine( stream, indentLevel + 1, "coarsening:" ); if( minCoarseSize >= 0 ) { appendLine( stream, indentLevel + 2, GEOS_FMT( "min_coarse_size: {}", minCoarseSize ) ); } + appendLine( stream, indentLevel + 2, "max_coarse_size: 9" ); +#if GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_CUDA || GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_HIP appendLine( stream, indentLevel + 2, "type: 8" ); appendLine( stream, indentLevel + 2, "max_row_sum: 1.0" ); appendLine( stream, indentLevel + 1, "relaxation:" ); @@ -1050,11 +1052,6 @@ void appendPressureAMG( std::ostringstream & stream, appendLine( stream, indentLevel + 2, "coarse_type: 18" ); appendLine( stream, indentLevel + 2, "num_sweeps: 2" ); #else - if( minCoarseSize >= 0 ) - { - appendLine( stream, indentLevel + 1, "coarsening:" ); - appendLine( stream, indentLevel + 2, GEOS_FMT( "min_coarse_size: {}", minCoarseSize ) ); - } appendLine( stream, indentLevel + 1, "relaxation:" ); appendLine( stream, indentLevel + 2, "order: 1" ); #endif