diff --git a/CHANGELOG b/CHANGELOG index b1586ef5b2..0de07d1af3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,20 @@ # This file chronicles user-level changes, beginning with the most recent. # ============================================================================= +Version 2.31.0 released 2024/02/14 + +- Added iterative ILU0 option +- Refactored MGR interpolation, added column-sum restriction, improved robustness +- Added new print level options for MGR +- Updated IJ vector I/O functions +- Updated default compiler list for configure +- Added a feature to avoid GPU device initialization for CPU runs +- Improved FSAI performance on GPUs +- Added MGR function to set the F-relaxation solver on a specific level +- Various bug fixes + +#==================================== + Version 2.30.0 released 2023/11/06 - Added FSAI support with CUDA and HIP diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ebe5a82490..b8da5f4be9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,9 +12,9 @@ else () endif () # The version number. -set(HYPRE_VERSION 2.30.0) -set(HYPRE_NUMBER 23000) -set(HYPRE_DATE 2023/11/06) +set(HYPRE_VERSION 2.31.0) +set(HYPRE_NUMBER 23100) +set(HYPRE_DATE 2024/02/14) set(HYPRE_TIME 00:00:00) set(HYPRE_BUGS https://github.com/hypre-space/hypre/issues) set(HYPRE_SRCDIR "${PROJECT_SOURCE_DIR}") diff --git a/src/config/configure.in b/src/config/configure.in index b3ec76a911..a58fcc2f61 100644 --- a/src/config/configure.in +++ b/src/config/configure.in @@ -48,9 +48,9 @@ dnl * Set package information so it only has to be modified in one place dnl ********************************************************************* m4_define([M4_HYPRE_NAME], [hypre]) -m4_define([M4_HYPRE_VERSION], [2.30.0]) -m4_define([M4_HYPRE_NUMBER], [23000]) -m4_define([M4_HYPRE_DATE], [2023/11/06]) +m4_define([M4_HYPRE_VERSION], [2.31.0]) +m4_define([M4_HYPRE_NUMBER], [23100]) +m4_define([M4_HYPRE_DATE], [2024/02/14]) m4_define([M4_HYPRE_TIME], [00:00:00]) m4_define([M4_HYPRE_BUGS], [https://github.com/hypre-space/hypre/issues]) m4_define([M4_HYPRE_SRCDIR], [`pwd`]) diff --git a/src/config/version.sh b/src/config/version.sh index 28cedd003a..9ba58eb56c 100755 --- a/src/config/version.sh +++ b/src/config/version.sh @@ -4,8 +4,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -hypre_version="2.30.0" -hypre_reldate="2023/11/06" +hypre_version="2.31.0" +hypre_reldate="2024/02/14" hypre_major=`echo $hypre_version | cut -d. -f 1` hypre_minor=`echo $hypre_version | cut -d. -f 2` diff --git a/src/configure b/src/configure index ce8df6da2d..b3e8d54444 100755 --- a/src/configure +++ b/src/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.in Id. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for hypre 2.30.0. +# Generated by GNU Autoconf 2.71 for hypre 2.31.0. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -612,8 +612,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='hypre' PACKAGE_TARNAME='hypre' -PACKAGE_VERSION='2.30.0' -PACKAGE_STRING='hypre 2.30.0' +PACKAGE_VERSION='2.31.0' +PACKAGE_STRING='hypre 2.31.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1473,7 +1473,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures hypre 2.30.0 to adapt to many kinds of systems. +\`configure' configures hypre 2.31.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1539,7 +1539,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of hypre 2.30.0:";; + short | recursive ) echo "Configuration of hypre 2.31.0:";; esac cat <<\_ACEOF @@ -1904,7 +1904,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -hypre configure 2.30.0 +hypre configure 2.31.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2249,7 +2249,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by hypre $as_me 2.30.0, which was +It was created by hypre $as_me 2.31.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3230,9 +3230,9 @@ ac_config_headers="$ac_config_headers HYPRE_config.h:config/HYPRE_config.h.in" HYPRE_NAME="hypre" -HYPRE_VERSION="2.30.0" -HYPRE_NUMBER=23000 -HYPRE_DATE="2023/11/06" +HYPRE_VERSION="2.31.0" +HYPRE_NUMBER=23100 +HYPRE_DATE="2024/02/14" HYPRE_TIME="00:00:00" HYPRE_BUGS="https://github.com/hypre-space/hypre/issues" HYPRE_SRCDIR="`pwd`" @@ -11852,7 +11852,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by hypre $as_me 2.30.0, which was +This file was extended by hypre $as_me 2.31.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11916,7 +11916,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -hypre config.status 2.30.0 +hypre config.status 2.31.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/src/docs/ref-manual/conf.doxygen b/src/docs/ref-manual/conf.doxygen index 761dc19969..7fdf5400ac 100644 --- a/src/docs/ref-manual/conf.doxygen +++ b/src/docs/ref-manual/conf.doxygen @@ -48,7 +48,7 @@ PROJECT_NAME = hypre # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.30.0 +PROJECT_NUMBER = 2.31.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/src/docs/usr-manual/conf.py b/src/docs/usr-manual/conf.py index 5e58314ca4..b5a978b82c 100644 --- a/src/docs/usr-manual/conf.py +++ b/src/docs/usr-manual/conf.py @@ -70,9 +70,9 @@ # built documents. # # The short X.Y version. -version = '2.30.0' +version = '2.31.0' # The full version, including alpha/beta/rc tags. -release = '2.30.0' +release = '2.31.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -80,7 +80,7 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -today = 'November 06, 2023' +today = 'February 14, 2024' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' diff --git a/src/seq_block_mv/_hypre_seq_block_mv.h b/src/seq_block_mv/_hypre_seq_block_mv.h index 42dbf8bace..129c54dfc9 100644 --- a/src/seq_block_mv/_hypre_seq_block_mv.h +++ b/src/seq_block_mv/_hypre_seq_block_mv.h @@ -16,6 +16,12 @@ #ifdef __cplusplus extern "C" { #endif +/****************************************************************************** + * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other + * HYPRE Project Developers. See the top-level COPYRIGHT file for details. + * + * SPDX-License-Identifier: (Apache-2.0 OR MIT) + ******************************************************************************/ #ifndef hypre_DENSE_BLOCK_MATRIX_HEADER #define hypre_DENSE_BLOCK_MATRIX_HEADER @@ -75,6 +81,12 @@ typedef struct hypre_DenseBlockMatrix_struct (matrix) -> col_stride * j]) #endif +/****************************************************************************** + * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other + * HYPRE Project Developers. See the top-level COPYRIGHT file for details. + * + * SPDX-License-Identifier: (Apache-2.0 OR MIT) + ******************************************************************************/ /* dense_block_matrix.c */ hypre_DenseBlockMatrix* hypre_DenseBlockMatrixCreate(HYPRE_Int, HYPRE_Int, HYPRE_Int, diff --git a/src/seq_block_mv/headers b/src/seq_block_mv/headers index 9a88f3e8a2..4215eed053 100755 --- a/src/seq_block_mv/headers +++ b/src/seq_block_mv/headers @@ -31,8 +31,8 @@ extern "C" { #endif @ -tail +7 dense_block_matrix.h >> $INTERNAL_HEADER -tail +7 protos.h >> $INTERNAL_HEADER +cat dense_block_matrix.h >> $INTERNAL_HEADER +cat protos.h >> $INTERNAL_HEADER #=========================================================================== # Include guards diff --git a/src/test/ij_assembly.c b/src/test/ij_assembly.c index 1be56aa306..c5e05c1d36 100644 --- a/src/test/ij_assembly.c +++ b/src/test/ij_assembly.c @@ -36,35 +36,41 @@ HYPRE_Int getParCSRMatrixData(HYPRE_ParCSRMatrix A, HYPRE_Int base, HYPRE_Int * HYPRE_Real checkMatrix(HYPRE_ParCSRMatrix parcsr_ref, HYPRE_IJMatrix ij_A); -HYPRE_Int test_Set(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, HYPRE_BigInt ilower, +HYPRE_Int test_Set(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, + HYPRE_BigInt ilower, HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_A_ptr); -HYPRE_Int test_AddTranspose(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, HYPRE_BigInt ilower, - HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, - HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, - HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); - -HYPRE_Int test_SetSet(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, HYPRE_BigInt ilower, - HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, - HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, - HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); - -HYPRE_Int test_AddSet(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, HYPRE_BigInt ilower, - HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, - HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, - HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); - -HYPRE_Int test_SetAdd(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, HYPRE_BigInt ilower, - HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, - HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, - HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); - -HYPRE_Int test_SetAddSet(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, HYPRE_BigInt ilower, - HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, - HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, - HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); +HYPRE_Int test_AddTranspose(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, + HYPRE_BigInt ilower, + HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, + HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); + +HYPRE_Int test_SetSet(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, + HYPRE_BigInt ilower, + HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, + HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); + +HYPRE_Int test_AddSet(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, + HYPRE_BigInt ilower, + HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, + HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); + +HYPRE_Int test_SetAdd(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, + HYPRE_BigInt ilower, + HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, + HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); + +HYPRE_Int test_SetAddSet(MPI_Comm comm, HYPRE_MemoryLocation memory_location, HYPRE_Int option, + HYPRE_BigInt ilower, + HYPRE_BigInt iupper, HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_Int nrows, + HYPRE_BigInt num_nonzeros, HYPRE_Int nchunks, HYPRE_Int *h_nnzrow, HYPRE_Int *nnzrow, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, HYPRE_Real *coefs, HYPRE_IJMatrix *ij_AT_ptr); hypre_int @@ -571,7 +577,8 @@ buildMatrixEntries(MPI_Comm comm, } /* get I, J, data from A */ - getParCSRMatrixData(A, base, nrows_ptr, num_nonzeros_ptr, nnzrow_ptr, rows_ptr, rows_coo_ptr, cols_ptr, + getParCSRMatrixData(A, base, nrows_ptr, num_nonzeros_ptr, nnzrow_ptr, rows_ptr, rows_coo_ptr, + cols_ptr, coefs_ptr); // Set pointers