add sundials 5.5.0 (#19819)
(with xsdk build fixes, including mkl, superlu-dist) Co-authored-by: Cody J. Balos <balos1@llnl.gov>
This commit is contained in:
		| @@ -0,0 +1,75 @@ | ||||
| From 0e197ce186ffae8213c297786811401861d249c1 Mon Sep 17 00:00:00 2001 | ||||
| From: "Cody J. Balos" <balos1@llnl.gov> | ||||
| Date: Wed, 4 Nov 2020 10:43:36 -0800 | ||||
| Subject: [PATCH 1/2] fix expansion of generator expression | ||||
|  | ||||
| --- | ||||
|  src/sunlinsol/superludist/CMakeLists.txt | 2 +- | ||||
|  src/sunmatrix/slunrloc/CMakeLists.txt    | 2 +- | ||||
|  2 files changed, 2 insertions(+), 2 deletions(-) | ||||
|  | ||||
| diff --git a/src/sunlinsol/superludist/CMakeLists.txt b/src/sunlinsol/superludist/CMakeLists.txt | ||||
| index ac1ece36c..5b59d6bfd 100644 | ||||
| --- a/src/sunlinsol/superludist/CMakeLists.txt | ||||
| +++ b/src/sunlinsol/superludist/CMakeLists.txt | ||||
| @@ -32,7 +32,7 @@ sundials_add_library(sundials_sunlinsolsuperludist | ||||
|      sundials_generic_obj | ||||
|    LINK_LIBRARIES | ||||
|    PUBLIC sundials_sunmatrixslunrloc SUNDIALS::SUPERLUDIST | ||||
| -    $<IF:$<BOOL:SUPERLUDIST_OpenMP>,OpenMP::OpenMP_C,> | ||||
| +    $<IF:$<BOOL:${SUPERLUDIST_OpenMP}>,OpenMP::OpenMP_C,> | ||||
|    COMPILE_OPTIONS | ||||
|      PRIVATE ${_compile_options} | ||||
|    OUTPUT_NAME | ||||
| diff --git a/src/sunmatrix/slunrloc/CMakeLists.txt b/src/sunmatrix/slunrloc/CMakeLists.txt | ||||
| index 25ee00dd3..7713435d9 100644 | ||||
| --- a/src/sunmatrix/slunrloc/CMakeLists.txt | ||||
| +++ b/src/sunmatrix/slunrloc/CMakeLists.txt | ||||
| @@ -34,7 +34,7 @@ sundials_add_library(sundials_sunmatrixslunrloc | ||||
|      sundials_generic_obj | ||||
|    LINK_LIBRARIES | ||||
|      PUBLIC SUNDIALS::SUPERLUDIST | ||||
| -    $<IF:$<BOOL:SUPERLUDIST_OpenMP>,OpenMP::OpenMP_C,> | ||||
| +    $<IF:$<BOOL:${SUPERLUDIST_OpenMP}>,OpenMP::OpenMP_C,> | ||||
|    COMPILE_OPTIONS | ||||
|      PRIVATE ${_compile_options} | ||||
|    OUTPUT_NAME | ||||
| --  | ||||
| 2.29.1 | ||||
|  | ||||
|  | ||||
| From 09cd3ab587f8999d068946d8be180da0a3c6ad32 Mon Sep 17 00:00:00 2001 | ||||
| From: "Cody J. Balos" <balos1@llnl.gov> | ||||
| Date: Tue, 3 Nov 2020 11:43:58 -0800 | ||||
| Subject: [PATCH 2/2] dont use NULL in ltest for Hypre | ||||
|  | ||||
| --- | ||||
|  cmake/tpl/SundialsHypre.cmake | 7 +++---- | ||||
|  1 file changed, 3 insertions(+), 4 deletions(-) | ||||
|  | ||||
| diff --git a/cmake/tpl/SundialsHypre.cmake b/cmake/tpl/SundialsHypre.cmake | ||||
| index 9633f1c11..19d4bf201 100644 | ||||
| --- a/cmake/tpl/SundialsHypre.cmake | ||||
| +++ b/cmake/tpl/SundialsHypre.cmake | ||||
| @@ -78,15 +78,14 @@ if(HYPRE_FOUND AND (NOT HYPRE_WORKS)) | ||||
|    "ADD_EXECUTABLE(ltest ltest.c)\n" | ||||
|    "TARGET_LINK_LIBRARIES(ltest ${HYPRE_LIBRARIES})\n") | ||||
|   | ||||
| -  # Create a C source file which calls a hypre function | ||||
|    file(WRITE ${HYPRE_TEST_DIR}/ltest.c | ||||
|    "\#include \"HYPRE_parcsr_ls.h\"\n" | ||||
|    "int main(){\n" | ||||
|    "HYPRE_ParVector par_b;\n" | ||||
|    "HYPRE_IJVector b;\n" | ||||
| -  "par_b = NULL;\n" | ||||
| -  "b = NULL;\n" | ||||
| -  "if (par_b != NULL || b != NULL) return(1);\n" | ||||
| +  "par_b = 0;\n" | ||||
| +  "b = 0;\n" | ||||
| +  "if (par_b != 0 || b != 0) return(1);\n" | ||||
|    "else return(0);\n" | ||||
|    "}\n") | ||||
|   | ||||
| --  | ||||
| 2.29.1 | ||||
|  | ||||
| @@ -22,6 +22,7 @@ class Sundials(CMakePackage): | ||||
|     # Versions | ||||
|     # ========================================================================== | ||||
|     version('develop', branch='develop') | ||||
|     version('5.5.0', sha256='2a755e89aab96d2ff096a4e30bf00bb162e80be20e9e99f424dccfb249098237') | ||||
|     version('5.4.0', sha256='04d8a2ebe02cdaeef5a9e22ff7e3146bb563d8400f65772b6c7af80001413ffa') | ||||
|     version('5.3.0', sha256='88dff7e11a366853d8afd5de05bf197a8129a804d9d4461fb64297f1ef89bca7') | ||||
|     version('5.2.0', sha256='95f058acce5bd66e654de65acdbb1c9f44c90cf1b4e28f8d933cdb4415ebba3e') | ||||
| @@ -180,7 +181,8 @@ class Sundials(CMakePackage): | ||||
|     depends_on('suite-sparse',        when='+klu') | ||||
|     depends_on('petsc +mpi',          when='+petsc') | ||||
|     depends_on('hypre +mpi',          when='+hypre') | ||||
|     depends_on('superlu-dist@6.1.1:', when='+superlu-dist') | ||||
|     depends_on('superlu-dist@6.1.1:', when='@:5.4.0 +superlu-dist') | ||||
|     depends_on('superlu-dist@6.3.0:', when='@5.5.0: +superlu-dist') | ||||
|     depends_on('trilinos+tpetra',     when='+trilinos') | ||||
| 
 | ||||
|     # Require that external libraries built with the same precision | ||||
| @@ -204,6 +206,7 @@ class Sundials(CMakePackage): | ||||
|     # remove OpenMP header file and function from hypre vector test code | ||||
|     patch('test_nvector_parhyp.patch', when='@2.7.0:3.0.0') | ||||
|     patch('FindPackageMultipass.cmake.patch', when='@5.0.0') | ||||
|     patch('5.5.0-xsdk-patches.patch', when='@5.5.0') | ||||
| 
 | ||||
|     # ========================================================================== | ||||
|     # SUNDIALS Settings | ||||
| @@ -238,8 +241,10 @@ def on_off(varstr): | ||||
|         # index type (v3.0.0 or later) | ||||
|         if spec.satisfies('@3.0.0:'): | ||||
|             if '+int64' in spec: | ||||
|                 args.extend(['-DSUNDIALS_INDEX_SIZE=64']) | ||||
|                 args.extend(['-DSUNDIALS_INDEX_TYPE=int64_t']) | ||||
|             else: | ||||
|                 args.extend(['-DSUNDIALS_INDEX_SIZE=32']) | ||||
|                 args.extend(['-DSUNDIALS_INDEX_TYPE=int32_t']) | ||||
| 
 | ||||
|         # Fortran interface | ||||
| @@ -364,13 +369,15 @@ def on_off(varstr): | ||||
|         # Building with SuperLU_DIST | ||||
|         if '+superlu-dist' in spec: | ||||
|             args.extend([ | ||||
|                 '-DOPENMP_ENABLE=%s' | ||||
|                 % on_off('^superlu-dist+openmp'), | ||||
|                 '-DSUPERLUDIST_ENABLE=ON', | ||||
|                 '-DSUPERLUDIST_INCLUDE_DIR=%s' | ||||
|                 % spec['superlu-dist'].prefix.include, | ||||
|                 '-DSUPERLUDIST_LIBRARY_DIR=%s' | ||||
|                 % spec['superlu-dist'].prefix.lib, | ||||
|                 '-DSUPERLUDIST_LIBRARIES=%s' | ||||
|                 % spec['blas'].libs, | ||||
|                 % spec['blas'].libs.joined(';'), | ||||
|                 '-DSUPERLUDIST_OpenMP=%s' | ||||
|                 % on_off('^superlu-dist+openmp') | ||||
|             ]) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Satish Balay
					Satish Balay