From 44f64c2df1fc02f653b46cc63453862bf88693d9 Mon Sep 17 00:00:00 2001 From: Lucas Timotheo Sanches Date: Fri, 18 Sep 2026 15:00:58 -0500 Subject: [PATCH 1/3] PunctureTracker: take cctk_time from the cGH instead of declaring every argument. declare its reads and order its setup after BoxInBox_Init --- PunctureTracker/schedule.ccl | 6 +++++- PunctureTracker/src/puncture.cxx | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/PunctureTracker/schedule.ccl b/PunctureTracker/schedule.ccl index 4d4cb402..f18bd3cf 100644 --- a/PunctureTracker/schedule.ccl +++ b/PunctureTracker/schedule.ccl @@ -8,7 +8,7 @@ SCHEDULE PunctureTracker_Init AT initial WRITES: pt_vel } "Read initial location of punctures from parameter file" -SCHEDULE GROUP PunctureTracker_SetupGroup AT initial AFTER PunctureTracker_Init +SCHEDULE GROUP PunctureTracker_SetupGroup AT initial AFTER PunctureTracker_Init AFTER BoxInBox_Init { } "Setup puncture containter" @@ -23,6 +23,7 @@ SCHEDULE PunctureTracker_Setup IN PunctureTracker_SetupGroup OPTIONS: GLOBAL READS: pt_loc READS: pt_vel + READS: BoxInBox::positions WRITES: BoxInBox::positions } "Calculate initial location of punctures" @@ -31,8 +32,11 @@ SCHEDULE PunctureTracker_Track AT evol AFTER ODESolvers_Solve LANG: C OPTIONS: GLOBAL READS: ADMBaseX::shift(everywhere) + READS: pt_loc + READS: pt_vel WRITES: pt_loc WRITES: pt_vel + READS: BoxInBox::positions WRITES: BoxInBox::positions } "Calculate new location of punctures" diff --git a/PunctureTracker/src/puncture.cxx b/PunctureTracker/src/puncture.cxx index 403b4b2b..cb01fc42 100644 --- a/PunctureTracker/src/puncture.cxx +++ b/PunctureTracker/src/puncture.cxx @@ -8,10 +8,9 @@ namespace PunctureTracker { void PunctureContainer::updatePreviousTime(CCTK_ARGUMENTS) { - DECLARE_CCTK_ARGUMENTS; for (int n = 0; n < numPunctures_; ++n) { previousTime_[n] = time_[n]; - time_[n] = cctk_time; + time_[n] = cctkGH->cctk_time; } } From 8fea5e2181b7a5383aee5000cc4d126100e50558 Mon Sep 17 00:00:00 2001 From: Lucas Timotheo Sanches Date: Fri, 18 Sep 2026 15:17:31 -0500 Subject: [PATCH 2/3] Upadate CI thornlist --- scripts/spacetimex.th | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/spacetimex.th b/scripts/spacetimex.th index 3625e66c..0130016a 100644 --- a/scripts/spacetimex.th +++ b/scripts/spacetimex.th @@ -165,8 +165,8 @@ CarpetX/TmunuBaseX !TARGET = $ARR !TYPE = ignore !CHECKOUT = -#SpacetimeX/AHFinderDirect -SpacetimeX/AHFinderX +SpacetimeX/AHFinderDirect +#SpacetimeX/AHFinderX SpacetimeX/BrillLindquist SpacetimeX/Cowling SpacetimeX/KerrSchildX From 5821d2110f88da81b8e17d204a102066cb64c8f8 Mon Sep 17 00:00:00 2001 From: Lucas Timotheo Sanches Date: Fri, 18 Sep 2026 15:32:35 -0500 Subject: [PATCH 3/3] CI: Update hange optionlists --- scripts/actions-cpu-real64.cfg | 56 ++++++++++++++++---- scripts/actions-cuda-real64.cfg | 65 ++++++++++++++++++----- scripts/actions-rocm-real64.cfg | 94 ++++++++++++++++++++++++++------- 3 files changed, 174 insertions(+), 41 deletions(-) diff --git a/scripts/actions-cpu-real64.cfg b/scripts/actions-cpu-real64.cfg index e14584c4..940de497 100644 --- a/scripts/actions-cpu-real64.cfg +++ b/scripts/actions-cpu-real64.cfg @@ -3,9 +3,33 @@ # The "weird" options here should probably be made the default in the # ET instead of being set here. +# The container this option list targets provides MPI, HDF5 and PETSc through +# the **MPI ABI** in /usr/local, not through distribution packages: the image +# builds mpi_abi_wrapper (the C bindings) and mpif (the Fortran ones) over the +# MPI it wraps, then builds HDF5 and PETSc against those. See the header of the +# matching `docker/carpetx-*.dockerfile` for the image side, and +# `simfactory/mdb/optionlists/desert*.cfg` for the same four blocks in the +# interactive option lists. +# +# - MPI_INC_DIRS / MPI_LIB_DIRS / MPI_LIBS are set explicitly so that +# ExternalLibraries/MPI takes its *manual* path (detect.pl:84). The automatic +# path asks the wrapper for `-compile_info`, which answers with the compile +# flags alone -- no `-L`, no `-l` -- so MPI would be configured with an empty +# MPI_LIBS and nothing would be linked. +# - HDF5 is the CMake build, which spells the Fortran libraries `hdf5_fortran` / +# `hdf5_hl_fortran` where Debian spelled the latter `hdf5hl_fortran`, and adds +# the `*_f90cstub` pair Debian did not have. +# - PETSc is `libpetsc.so` under one prefix, so PETSC_LIBS is left unset: +# detect.sh settles on `petsc m` and the external packages (hypre, MUMPS, +# SuperLU_DIST, ...) arrive through libpetsc.so's own DT_NEEDED entries. +# `PETSC_LIBS = petsc_real` was Debian's split-package spelling and is gone. +# - F90FLAGS gains -I/usr/local/include: gfortran does not search it for `.mod` +# files the way the preprocessor searches it for headers, and detect.pl strips +# the directory out of MPI_INC_DIRS/HDF5_INC_DIRS for being standard. + # Whenever this version string changes, the application is configured # and rebuilt from scratch -VERSION = actions-real-cpu64-2023-02-04 +VERSION = actions-real-cpu64-2026-09-18 CPP = cpp CC = gcc @@ -18,9 +42,9 @@ F90 = gfortran # Note: GCC 13.2 with -ftrivial-auto-var-init=pattern mis-compiles (?) C++ lambdas CFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -ftrivial-auto-var-init=pattern -g -march=x86-64-v3 -pie -pipe -std=gnu11 -CXXFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe -std=gnu++17 +CXXFLAGS = -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fPIE -fcf-protection=full -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe -std=gnu++20 FPPFLAGS = -traditional -F90FLAGS = -fPIE -fcf-protection=full -fcray-pointer -ffixed-line-length-none -finit-character=65 -finit-integer=42424242 -finit-real=nan -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe +F90FLAGS = -fPIE -fcf-protection=full -fcray-pointer -ffixed-line-length-none -finit-character=65 -finit-integer=42424242 -finit-real=nan -fstack-clash-protection -fstack-protector-strong -g -march=x86-64-v3 -pie -pipe -I/usr/local/include LDFLAGS = -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/local/lib -Wl,-z,relro,-z,now C_LINE_DIRECTIVES = yes @@ -59,33 +83,43 @@ FPP_WARN_FLAGS = -Wall F90_WARN_FLAGS = -Wall -Wshadow -Wsurprising ADIOS2_DIR = /usr/local -ADIOS2_LIBS = adios2_cxx11_mpi adios2_cxx11 +ADIOS2_LIBS = adios2_cxx_mpi adios2_cxx mgard protobuf AMREX_DIR = /usr/local # ASDF_CXX_DIR = /usr/local BLAS_DIR = /usr BOOST_DIR = /usr +# BOOST_LIBS must be set: ExternalLibraries/Boost defaults to +# "boost_filesystem boost_system" when it is empty (Boost/configure.sh:166), +# and the image installs libboost-filesystem-dev only, so the link fails with +# "cannot find -lboost_system". Boost.System has been header-only since Boost +# 1.69, so naming just filesystem is correct rather than a workaround -- +# `desert-arm64v8.cfg` has always done this. +BOOST_LIBS = boost_filesystem +CONDUIT_DIR = /usr/local FFTW3_DIR = /usr GSL_DIR = /usr -HDF5_DIR = /usr/lib/x86_64-linux-gnu/hdf5/serial +HDF5_DIR = /usr/local HDF5_ENABLE_CXX = yes HDF5_ENABLE_FORTRAN = yes -HDF5_INC_DIRS = /usr/lib/x86_64-linux-gnu/hdf5/serial/include -HDF5_LIB_DIRS = /usr/lib/x86_64-linux-gnu/hdf5/serial/lib -HDF5_LIBS = hdf5_hl_cpp hdf5_cpp hdf5hl_fortran hdf5_fortran hdf5_hl hdf5 +HDF5_INC_DIRS = /usr/local/include +HDF5_LIB_DIRS = /usr/local/lib +HDF5_LIBS = hdf5_hl_cpp hdf5_cpp hdf5_hl_fortran hdf5_fortran hdf5_hl_f90cstub hdf5_f90cstub hdf5_hl hdf5 HWLOC_DIR = /usr # JEMALLOC_DIR = /usr/local LAPACK_DIR = /usr # LIBJPEG_DIR = /usr # LORENE_DIR = /usr/local -MPI_DIR = /usr +MPI_DIR = /usr/local +MPI_INC_DIRS = /usr/local/include +MPI_LIB_DIRS = /usr/local/lib +MPI_LIBS = mpif mpi_abi NSIMD_DIR = /usr/local NSIMD_SIMD = AVX2 OPENBLAS_DIR = /usr OPENPMD_API_DIR = /usr/local # OPENSSL_DIR = /usr # PAPI_DIR = /usr/local -PETSC_DIR = /usr/lib/petsc -PETSC_LIBS = petsc_real +PETSC_DIR = /usr/local PETSC_ARCH_LIBS = m PTHREADS_DIR = NO_BUILD # REPRIMAND_DIR = /usr/local diff --git a/scripts/actions-cuda-real64.cfg b/scripts/actions-cuda-real64.cfg index a7f31ba6..956c3469 100644 --- a/scripts/actions-cuda-real64.cfg +++ b/scripts/actions-cuda-real64.cfg @@ -3,9 +3,33 @@ # The "weird" options here should probably be made the default in the # ET instead of being set here. +# The container this option list targets provides MPI, HDF5 and PETSc through +# the **MPI ABI** in /usr/local, not through distribution packages: the image +# builds mpi_abi_wrapper (the C bindings) and mpif (the Fortran ones) over the +# MPI it wraps, then builds HDF5 and PETSc against those. See the header of the +# matching `docker/carpetx-*.dockerfile` for the image side, and +# `simfactory/mdb/optionlists/desert*.cfg` for the same four blocks in the +# interactive option lists. +# +# - MPI_INC_DIRS / MPI_LIB_DIRS / MPI_LIBS are set explicitly so that +# ExternalLibraries/MPI takes its *manual* path (detect.pl:84). The automatic +# path asks the wrapper for `-compile_info`, which answers with the compile +# flags alone -- no `-L`, no `-l` -- so MPI would be configured with an empty +# MPI_LIBS and nothing would be linked. +# - HDF5 is the CMake build, which spells the Fortran libraries `hdf5_fortran` / +# `hdf5_hl_fortran` where Debian spelled the latter `hdf5hl_fortran`, and adds +# the `*_f90cstub` pair Debian did not have. +# - PETSc is `libpetsc.so` under one prefix, so PETSC_LIBS is left unset: +# detect.sh settles on `petsc m` and the external packages (hypre, MUMPS, +# SuperLU_DIST, ...) arrive through libpetsc.so's own DT_NEEDED entries. +# `PETSC_LIBS = petsc_real` was Debian's split-package spelling and is gone. +# - F90FLAGS gains -I/usr/local/include: gfortran does not search it for `.mod` +# files the way the preprocessor searches it for headers, and detect.pl strips +# the directory out of MPI_INC_DIRS/HDF5_INC_DIRS for being standard. + # Whenever this version string changes, the application is configured # and rebuilt from scratch -VERSION = actions-cuda-real64-2023-02-04 +VERSION = actions-cuda-real64-2026-09-18 CPP = cpp CC = gcc @@ -24,10 +48,17 @@ CFLAGS = -pipe -g -std=gnu11 # Call parameter type does not match function signature! # %tmp = load double, double* %x.addr, align 8, !dbg !1483 # float %1 = call i32 @__isnanf(double %tmp), !dbg !1483 -CXXFLAGS = -pipe -g0 -std=c++17 --compiler-options -std=gnu++17 --expt-relaxed-constexpr --extended-lambda --gpu-architecture sm_70 --forward-unknown-to-host-compiler --Werror ext-lambda-captures-this --relocatable-device-code=true --objdir-as-tempdir +CXXFLAGS = -pipe -g0 -std=c++20 --compiler-options -std=gnu++20 --expt-relaxed-constexpr --extended-lambda --gpu-architecture sm_90 --forward-unknown-to-host-compiler --Werror ext-lambda-captures-this --relocatable-device-code=true --objdir-as-tempdir FPPFLAGS = -traditional -F90FLAGS = -pipe -g -fcray-pointer -ffixed-line-length-none -LIBS = nvToolsExt gfortran +F90FLAGS = -pipe -g -fcray-pointer -ffixed-line-length-none -I/usr/local/include +# `nvToolsExt` is not named here. NVTX v3 is header-only: `timer.hxx` includes +# under __CUDACC__ and calls nvtxRangeStartA/nvtxRangeEnd, +# which are static inline and dlopen a profiler's injection library at run time +# if one is attached -- there is nothing to link against. The old `libnvToolsExt` +# was retired with NVTX v2 and the NVHPC base image no longer ships it, so +# naming it ended the link with +# /usr/bin/ld: cannot find -lnvToolsExt: No such file or directory +LIBS = gfortran C_LINE_DIRECTIVES = yes F_LINE_DIRECTIVES = yes @@ -72,33 +103,43 @@ F90_WARN_FLAGS = -Wall -Wshadow -Wsurprising VECTORISE = no ADIOS2_DIR = /usr/local -ADIOS2_LIBS = adios2_cxx11_mpi adios2_cxx11 +ADIOS2_LIBS = adios2_cxx_mpi adios2_cxx mgard protobuf AMREX_DIR = /usr/local # ASDF_CXX_DIR = /usr/local BLAS_DIR = /usr BOOST_DIR = /usr +# BOOST_LIBS must be set: ExternalLibraries/Boost defaults to +# "boost_filesystem boost_system" when it is empty (Boost/configure.sh:166), +# and the image installs libboost-filesystem-dev only, so the link fails with +# "cannot find -lboost_system". Boost.System has been header-only since Boost +# 1.69, so naming just filesystem is correct rather than a workaround -- +# `desert-arm64v8.cfg` has always done this. +BOOST_LIBS = boost_filesystem +CONDUIT_DIR = /usr/local FFTW3_DIR = /usr GSL_DIR = /usr -HDF5_DIR = /usr/lib/x86_64-linux-gnu/hdf5/serial +HDF5_DIR = /usr/local HDF5_ENABLE_CXX = yes HDF5_ENABLE_FORTRAN = yes -HDF5_INC_DIRS = /usr/lib/x86_64-linux-gnu/hdf5/serial/include -HDF5_LIB_DIRS = /usr/lib/x86_64-linux-gnu/hdf5/serial/lib -HDF5_LIBS = hdf5_hl_cpp hdf5_cpp hdf5hl_fortran hdf5_fortran hdf5_hl hdf5 +HDF5_INC_DIRS = /usr/local/include +HDF5_LIB_DIRS = /usr/local/lib +HDF5_LIBS = hdf5_hl_cpp hdf5_cpp hdf5_hl_fortran hdf5_fortran hdf5_hl_f90cstub hdf5_f90cstub hdf5_hl hdf5 HWLOC_DIR = /usr # JEMALLOC_DIR = /usr/local LAPACK_DIR = /usr # LIBJPEG_DIR = /usr # LORENE_DIR = /usr/local -MPI_DIR = /usr +MPI_DIR = /usr/local +MPI_INC_DIRS = /usr/local/include +MPI_LIB_DIRS = /usr/local/lib +MPI_LIBS = mpif mpi_abi NSIMD_DIR = /usr/local NSIMD_SIMD = AVX2 OPENBLAS_DIR = /usr OPENPMD_API_DIR = /usr/local # OPENSSL_DIR = /usr # PAPI_DIR = /usr/local -PETSC_DIR = /usr/lib/petsc -PETSC_LIBS = petsc_real +PETSC_DIR = /usr/local PETSC_ARCH_LIBS = m PTHREADS_DIR = NO_BUILD # REPRIMAND_DIR = /usr/local diff --git a/scripts/actions-rocm-real64.cfg b/scripts/actions-rocm-real64.cfg index b57094cc..eee471b4 100644 --- a/scripts/actions-rocm-real64.cfg +++ b/scripts/actions-rocm-real64.cfg @@ -3,28 +3,76 @@ # The "weird" options here should probably be made the default in the # ET instead of being set here. +# The container this option list targets provides MPI, HDF5 and PETSc through +# the **MPI ABI** in /usr/local, not through distribution packages: the image +# builds mpi_abi_wrapper (the C bindings) and mpif (the Fortran ones) over the +# MPI it wraps, then builds HDF5 and PETSc against those. See the header of the +# matching `docker/carpetx-*.dockerfile` for the image side, and +# `simfactory/mdb/optionlists/desert*.cfg` for the same four blocks in the +# interactive option lists. +# +# - MPI_INC_DIRS / MPI_LIB_DIRS / MPI_LIBS are set explicitly so that +# ExternalLibraries/MPI takes its *manual* path (detect.pl:84). The automatic +# path asks the wrapper for `-compile_info`, which answers with the compile +# flags alone -- no `-L`, no `-l` -- so MPI would be configured with an empty +# MPI_LIBS and nothing would be linked. +# - HDF5 is the CMake build, which spells the Fortran libraries `hdf5_fortran` / +# `hdf5_hl_fortran` where Debian spelled the latter `hdf5hl_fortran`, and adds +# the `*_f90cstub` pair Debian did not have. +# - PETSc is `libpetsc.so` under one prefix, so PETSC_LIBS is left unset: +# detect.sh settles on `petsc m` and the external packages (hypre, MUMPS, +# SuperLU_DIST, ...) arrive through libpetsc.so's own DT_NEEDED entries. +# `PETSC_LIBS = petsc_real` was Debian's split-package spelling and is gone. +# - F90FLAGS gains -I/usr/local/include: gfortran does not search it for `.mod` +# files the way the preprocessor searches it for headers, and detect.pl strips +# the directory out of MPI_INC_DIRS/HDF5_INC_DIRS for being standard. + # Whenever this version string changes, the application is configured # and rebuilt from scratch -VERSION = actions-rocm-real64-2023-04-11 +VERSION = actions-rocm-real64-2026-09-18 CPP = cpp -CC = /opt/rocm/llvm/bin/clang -CXX = /opt/rocm/llvm/bin/clang++ -x hip +# ROCm 10 moved its install prefix to /opt/rocm/core-/ and ships no +# compatibility symlink, so /opt/rocm/llvm/bin no longer exists -- ROCm's LLVM +# is now at core-10.0/lib/llvm/bin. `amdclang`/`amdclang++` are named without a +# path instead: they live in ${ROCM_PATH}/bin, which the base image puts on +# PATH, so this does not have to be rewritten the next time ROCm moves. +CC = amdclang +CXX = amdclang++ -x hip FPP = cpp -#TODO: FC = /opt/rocm/llvm/bin/flang +#TODO: FC = amdflang FC = gfortran F90 = gfortran -LD = /opt/rocm/llvm/bin/clang++ +LD = amdclang++ CPPFLAGS = -DSIMD_DISABLE CFLAGS = -pipe -g -std=gnu11 -CXXFLAGS = -pipe -g -std=c++17 --offload-arch=gfx90a +CXXFLAGS = -pipe -g -std=c++20 --offload-arch=gfx90a FPPFLAGS = -traditional -F90FLAGS = -pipe -g -fcray-pointer -ffixed-line-length-none +F90FLAGS = -pipe -g -fcray-pointer -ffixed-line-length-none -I/usr/local/include -SYS_INC_DIRS = /opt/rocm/include -LIBDIRS = /usr/local/lib /opt/rocm/lib -LIBS = amdhip64 dl hwloc ltdl open-pal open-rte udev util gfortran +SYS_INC_DIRS = /opt/rocm/include /opt/rocm/core-10.0/include +LIBDIRS = /usr/local/lib /opt/rocm/lib /opt/rocm/core-10.0/lib +# Only the HIP runtime and the Fortran runtime belong here. Everything else +# this list used to name was Open MPI's, from when this configuration linked +# Open MPI directly, and under the MPI ABI nothing may: MPI reaches Cactus +# through `mpif`/`mpi_abi` (see MPI_LIBS below) and through nothing else. +# +# open-rte Open MPI's ORTE layer. Gone from Ubuntu 26.04 outright -- Open +# MPI 5 replaced ORTE with PRRTE -- so the base image (5.0.10) +# ships libopen-pal but no libopen-rte, and the link ended with +# ld.lld: error: unable to find library -lopen-rte +# open-pal Open MPI's portability layer. Still present, still wrong to name. +# ltdl what Open MPI 4 dlopened its components with. +# udev pulled in by Open MPI's hwloc. +# hwloc redundant regardless: HWLOC_DIR below puts +# ExternalLibraries/hwloc on the case, and it adds -lhwloc itself. +# dl, util merged into libc in glibc 2.34; stubs that resolve and do nothing. +# +# `gfortran` stays because LD is amdclang++, which does not add the Fortran +# runtime by itself. The result matches the cuda and oneapi option lists, which +# name their GPU runtime and gfortran and nothing more. +LIBS = amdhip64 gfortran C_LINE_DIRECTIVES = yes F_LINE_DIRECTIVES = yes @@ -67,33 +115,43 @@ F90_WARN_FLAGS = -Wall -Wshadow -Wsurprising VECTORISE = no ADIOS2_DIR = /usr/local -ADIOS2_LIBS = adios2_cxx11_mpi adios2_cxx11 +ADIOS2_LIBS = adios2_cxx_mpi adios2_cxx mgard protobuf AMREX_DIR = /usr/local # ASDF_CXX_DIR = /usr/local BLAS_DIR = /usr BOOST_DIR = /usr +# BOOST_LIBS must be set: ExternalLibraries/Boost defaults to +# "boost_filesystem boost_system" when it is empty (Boost/configure.sh:166), +# and the image installs libboost-filesystem-dev only, so the link fails with +# "cannot find -lboost_system". Boost.System has been header-only since Boost +# 1.69, so naming just filesystem is correct rather than a workaround -- +# `desert-arm64v8.cfg` has always done this. +BOOST_LIBS = boost_filesystem +CONDUIT_DIR = /usr/local FFTW3_DIR = /usr GSL_DIR = /usr -HDF5_DIR = /usr/lib/x86_64-linux-gnu/hdf5/serial +HDF5_DIR = /usr/local HDF5_ENABLE_CXX = yes HDF5_ENABLE_FORTRAN = yes -HDF5_INC_DIRS = /usr/lib/x86_64-linux-gnu/hdf5/serial/include -HDF5_LIB_DIRS = /usr/lib/x86_64-linux-gnu/hdf5/serial/lib -HDF5_LIBS = hdf5_hl_cpp hdf5_cpp hdf5hl_fortran hdf5_fortran hdf5_hl hdf5 +HDF5_INC_DIRS = /usr/local/include +HDF5_LIB_DIRS = /usr/local/lib +HDF5_LIBS = hdf5_hl_cpp hdf5_cpp hdf5_hl_fortran hdf5_fortran hdf5_hl_f90cstub hdf5_f90cstub hdf5_hl hdf5 HWLOC_DIR = /usr # JEMALLOC_DIR = /usr/local LAPACK_DIR = /usr # LIBJPEG_DIR = /usr # LORENE_DIR = /usr/local -MPI_DIR = /usr +MPI_DIR = /usr/local +MPI_INC_DIRS = /usr/local/include +MPI_LIB_DIRS = /usr/local/lib +MPI_LIBS = mpif mpi_abi NSIMD_DIR = /usr/local NSIMD_SIMD = AVX2 OPENBLAS_DIR = /usr OPENPMD_API_DIR = /usr/local # OPENSSL_DIR = /usr # PAPI_DIR = /usr/local -PETSC_DIR = /usr/lib/petsc -PETSC_LIBS = petsc_real +PETSC_DIR = /usr/local PETSC_ARCH_LIBS = m PTHREADS_DIR = NO_BUILD # REPRIMAND_DIR = /usr/local