From 4df6280f1c6bb84f41990b33d9697f810cbb2084 Mon Sep 17 00:00:00 2001 From: Chris White Date: Wed, 22 Oct 2025 09:40:55 -0700 Subject: [PATCH 1/2] bump sundials version --- scripts/spack/configs/versions.yaml | 2 +- scripts/spack/packages/serac/package.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/spack/configs/versions.yaml b/scripts/spack/configs/versions.yaml index ae6b113ac..53f0fe08e 100644 --- a/scripts/spack/configs/versions.yaml +++ b/scripts/spack/configs/versions.yaml @@ -29,7 +29,7 @@ packages: - spec: "@2024.07.0" sundials: require: - - spec: "@6.7.0" + - spec: "@7.4.0" tribol: require: - spec: "@0.1.0.21" diff --git a/scripts/spack/packages/serac/package.py b/scripts/spack/packages/serac/package.py index 643122840..09ac6e9d4 100644 --- a/scripts/spack/packages/serac/package.py +++ b/scripts/spack/packages/serac/package.py @@ -104,9 +104,8 @@ class Serac(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("py-sphinx") with when("+sundials"): - # Going to sundials@7: causes 80%+ test failures - depends_on("sundials@:6.999") # MFEM is deprecating the monitoring support with sundials v6.0 and later + depends_on("sundials@6:") # NOTE: Sundials must be built static to prevent the following runtime error: # "error while loading shared libraries: libsundials_nvecserial.so.6: # cannot open shared object file: No such file or directory" From 70ccd1bbef33ba3365e2d0528d8634c6104506cf Mon Sep 17 00:00:00 2001 From: Chris White Date: Wed, 22 Oct 2025 09:42:16 -0700 Subject: [PATCH 2/2] call new MFEM Sundials Finalize before our MPI_Finalize --- src/serac/infrastructure/application_manager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/serac/infrastructure/application_manager.cpp b/src/serac/infrastructure/application_manager.cpp index 65547efde..c8d2843fc 100644 --- a/src/serac/infrastructure/application_manager.cpp +++ b/src/serac/infrastructure/application_manager.cpp @@ -65,6 +65,10 @@ void finalizer() #endif #endif +#ifdef SERAC_USE_SUNDIALS + mfem::Sundials::Finalize(); +#endif + profiling::finalize(); int mpi_initialized = 0;