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 |     # Versions | ||||||
|     # ========================================================================== |     # ========================================================================== | ||||||
|     version('develop', branch='develop') |     version('develop', branch='develop') | ||||||
|  |     version('5.5.0', sha256='2a755e89aab96d2ff096a4e30bf00bb162e80be20e9e99f424dccfb249098237') | ||||||
|     version('5.4.0', sha256='04d8a2ebe02cdaeef5a9e22ff7e3146bb563d8400f65772b6c7af80001413ffa') |     version('5.4.0', sha256='04d8a2ebe02cdaeef5a9e22ff7e3146bb563d8400f65772b6c7af80001413ffa') | ||||||
|     version('5.3.0', sha256='88dff7e11a366853d8afd5de05bf197a8129a804d9d4461fb64297f1ef89bca7') |     version('5.3.0', sha256='88dff7e11a366853d8afd5de05bf197a8129a804d9d4461fb64297f1ef89bca7') | ||||||
|     version('5.2.0', sha256='95f058acce5bd66e654de65acdbb1c9f44c90cf1b4e28f8d933cdb4415ebba3e') |     version('5.2.0', sha256='95f058acce5bd66e654de65acdbb1c9f44c90cf1b4e28f8d933cdb4415ebba3e') | ||||||
| @@ -180,7 +181,8 @@ class Sundials(CMakePackage): | |||||||
|     depends_on('suite-sparse',        when='+klu') |     depends_on('suite-sparse',        when='+klu') | ||||||
|     depends_on('petsc +mpi',          when='+petsc') |     depends_on('petsc +mpi',          when='+petsc') | ||||||
|     depends_on('hypre +mpi',          when='+hypre') |     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') |     depends_on('trilinos+tpetra',     when='+trilinos') | ||||||
| 
 | 
 | ||||||
|     # Require that external libraries built with the same precision |     # 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 |     # remove OpenMP header file and function from hypre vector test code | ||||||
|     patch('test_nvector_parhyp.patch', when='@2.7.0:3.0.0') |     patch('test_nvector_parhyp.patch', when='@2.7.0:3.0.0') | ||||||
|     patch('FindPackageMultipass.cmake.patch', when='@5.0.0') |     patch('FindPackageMultipass.cmake.patch', when='@5.0.0') | ||||||
|  |     patch('5.5.0-xsdk-patches.patch', when='@5.5.0') | ||||||
| 
 | 
 | ||||||
|     # ========================================================================== |     # ========================================================================== | ||||||
|     # SUNDIALS Settings |     # SUNDIALS Settings | ||||||
| @@ -238,8 +241,10 @@ def on_off(varstr): | |||||||
|         # index type (v3.0.0 or later) |         # index type (v3.0.0 or later) | ||||||
|         if spec.satisfies('@3.0.0:'): |         if spec.satisfies('@3.0.0:'): | ||||||
|             if '+int64' in spec: |             if '+int64' in spec: | ||||||
|  |                 args.extend(['-DSUNDIALS_INDEX_SIZE=64']) | ||||||
|                 args.extend(['-DSUNDIALS_INDEX_TYPE=int64_t']) |                 args.extend(['-DSUNDIALS_INDEX_TYPE=int64_t']) | ||||||
|             else: |             else: | ||||||
|  |                 args.extend(['-DSUNDIALS_INDEX_SIZE=32']) | ||||||
|                 args.extend(['-DSUNDIALS_INDEX_TYPE=int32_t']) |                 args.extend(['-DSUNDIALS_INDEX_TYPE=int32_t']) | ||||||
| 
 | 
 | ||||||
|         # Fortran interface |         # Fortran interface | ||||||
| @@ -364,13 +369,15 @@ def on_off(varstr): | |||||||
|         # Building with SuperLU_DIST |         # Building with SuperLU_DIST | ||||||
|         if '+superlu-dist' in spec: |         if '+superlu-dist' in spec: | ||||||
|             args.extend([ |             args.extend([ | ||||||
|  |                 '-DOPENMP_ENABLE=%s' | ||||||
|  |                 % on_off('^superlu-dist+openmp'), | ||||||
|                 '-DSUPERLUDIST_ENABLE=ON', |                 '-DSUPERLUDIST_ENABLE=ON', | ||||||
|                 '-DSUPERLUDIST_INCLUDE_DIR=%s' |                 '-DSUPERLUDIST_INCLUDE_DIR=%s' | ||||||
|                 % spec['superlu-dist'].prefix.include, |                 % spec['superlu-dist'].prefix.include, | ||||||
|                 '-DSUPERLUDIST_LIBRARY_DIR=%s' |                 '-DSUPERLUDIST_LIBRARY_DIR=%s' | ||||||
|                 % spec['superlu-dist'].prefix.lib, |                 % spec['superlu-dist'].prefix.lib, | ||||||
|                 '-DSUPERLUDIST_LIBRARIES=%s' |                 '-DSUPERLUDIST_LIBRARIES=%s' | ||||||
|                 % spec['blas'].libs, |                 % spec['blas'].libs.joined(';'), | ||||||
|                 '-DSUPERLUDIST_OpenMP=%s' |                 '-DSUPERLUDIST_OpenMP=%s' | ||||||
|                 % on_off('^superlu-dist+openmp') |                 % on_off('^superlu-dist+openmp') | ||||||
|             ]) |             ]) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Satish Balay
					Satish Balay