Skip to content

Commit

Permalink
Release/7.0.0-rc.1 (#404)
Browse files Browse the repository at this point in the history
* regenerate f2003 interfaces
* update version numbers
* update hashes in git-blame-ignore-revs
* update changelog

---------

Co-authored-by: Cody Balos <balos1@llnl.gov>
  • Loading branch information
gardner48 and balos1 authored Jan 3, 2024
1 parent 273fe38 commit e5eec3d
Show file tree
Hide file tree
Showing 1,797 changed files with 2,720 additions and 2,535 deletions.
6 changes: 4 additions & 2 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
78770ef9b40fb163bf6d0fd582b6a449f0298585
e75d0c03345b230def5713cda2e1b2748171634b
# Apply formatting across sundials
fab1cecb7d91cff53b31730af5d00ff154c3b6ce
# Remove deprecated types in 7.0.0
cc6960349aa92e2bcad9168a6dacff99b21c329c
153 changes: 83 additions & 70 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,64 @@
# SUNDIALS Changelog

## Changes to SUNDIALS in release X.X.X
## Changes to SUNDIALS in release 7.0.0-rc.1

The previously deprecated types `realtype` and `booleantype` were removed from `sundials_types.h`
and replaced with `sunrealtype` and `sunbooleantype`. The deprecated names for these types
can be used by including the header file `sundials_types_deprecated.h` but will be fully removed in the
next major release.
⚠️ This is a release candidate.

### Major Feature

**Major feature**
SUNDIALS now has more robust and uniform error handling. Non-release builds will
be built with additional error checking by default. See the "Error Handling"
be built with additional error checking by default. See the
[Error Checking](https://sundials.readthedocs.io/en/latest/sundials/Errors_link.html)
section in the user guide for details.

**Deprecation notice**
The functions in `sundials_math.h` will be deprecated in the next release.

```c
sunrealtype SUNRpowerI(sunrealtype base, int exponent);
sunrealtype SUNRpowerR(sunrealtype base, sunrealtype exponent);
sunbooleantype SUNRCompare(sunrealtype a, sunrealtype b);
sunbooleantype SUNRCompareTol(sunrealtype a, sunrealtype b, sunrealtype tol);
sunrealtype SUNStrToReal(const char* str);
```
Additionally, the following header files (and everything in them) will be deprecated -- users who
rely on these are recommended to transition to the corresponding `SUNMatrix` and `SUNLinearSolver`
modules:
```
sundials_direct.h
sundials_dense.h
sundials_band.h
```
**Breaking change**
The following functions have had their signature updated to ensure they can leverage
the new SUNDIALS error handling capabilties.
### Breaking Changes

#### Deprecated Types and Functions Removed

The previously deprecated types `realtype` and `booleantype` were removed from
`sundials_types.h` and replaced with `sunrealtype` and `sunbooleantype`. The
deprecated names for these types can be used by including the header file
`sundials_types_deprecated.h` but will be fully removed in the next major
release. Functions, types and header files that were previously deprecated have
also been removed.

#### Error Handling Changes

With the addition of the new error handling capability, the `*SetErrHandlerFn`
and `*SetErrFile` functions in CVODE(S), IDA(S), ARKODE, and KINSOL have been
removed. Users of these functions can use the functions
`SUNContext_PushErrHandler`, and `SUNLogger_SetErrorFilename` instead. For
further details see the
[Error Checking](https://sundials.readthedocs.io/en/latest/sundials/Errors_link.html)
and
[Logging](https://sundials.readthedocs.io/en/latest/sundials/Logging_link.html)
sections in the documentation.

In addition the following names/symbols were replaced by ``SUN_ERR_*`` codes:

| Removed | Replaced with ``SUNErrCode`` |
|:-------------------------------|:----------------------------------|
| `SUNLS_SUCCESS` | `SUN_SUCCESS` |
| `SUNLS_UNRECOV_FAILURE` | no replacement (value was unused) |
| `SUNLS_MEM_NULL` | `SUN_ERR_ARG_CORRUPT` |
| `SUNLS_ILL_INPUT` | `SUN_ERR_ARG_*` |
| `SUNLS_MEM_FAIL` | `SUN_ERR_MEM_FAIL` |
| `SUNLS_PACKAGE_FAIL_UNREC` | `SUN_ERR_EXT_FAIL` |
| `SUNLS_VECTOROP_ERR` | `SUN_ERR_OP_FAIL` |
| `SUN_NLS_SUCCESS` | `SUN_SUCCESS` |
| `SUN_NLS_MEM_NULL` | `SUN_ERR_ARG_CORRUPT` |
| `SUN_NLS_MEM_FAIL` | `SUN_ERR_MEM_FAIL` |
| `SUN_NLS_ILL_INPUT` | `SUN_ERR_ARG_*` |
| `SUN_NLS_VECTOROP_ERR` | `SUN_ERR_OP_FAIL` |
| `SUN_NLS_EXT_FAIL` | `SUN_ERR_EXT_FAIL` |
| `SUNMAT_SUCCESS` | `SUN_SUCCESS` |
| `SUNMAT_ILL_INPUT` | `SUN_ERR_ARG_*` |
| `SUNMAT_MEM_FAIL` | `SUN_ERR_MEM_FAIL` |
| `SUNMAT_OPERATION_FAIL` | `SUN_ERR_OP_FAIL` |
| `SUNMAT_MATVEC_SETUP_REQUIRED` | `SUN_ERR_OP_FAIL` |

The following functions have had their signature updated to ensure they can
leverage the new SUNDIALS error handling capabilities.

```c
// From sundials_futils.h
Expand All @@ -51,18 +74,18 @@ SUNMemoryHelper_Wrap
N_VNewVectorArray
```

**Breaking change**
#### SUNComm Type Added

We have replaced the use of a type-erased (i.e., `void*`) pointer to a
communicator in place of `MPI_Comm` throughout the SUNDIALS API with a
`SUNComm`, which is just a typedef to an `int` in builds without MPI
and a typedef to a `MPI_Comm` in builds with MPI. Here is what this means:
and a typedef to a `MPI_Comm` in builds with MPI. As a result:

- All users will need to update their codes because the call to
`SUNContext_Create` now takes a `SUNComm` instead
of type-erased pointer to a communicator. For non-MPI codes,
pass `SUN_COMM_NULL` to the `comm` argument instead of
`NULL`. For MPI codes, pass the `MPI_Comm` directly.
The required change should be doable with a find-and-replace.

- The same change must be made for calls to
`SUNLogger_Create` or `SUNProfiler_Create`.
Expand All @@ -78,45 +101,35 @@ The SUNLogger is now always MPI-aware if MPI is enabled in SUNDIALS and the
`SUNDIALS_LOGGING_ENABLE_MPI` CMake option and macro definition were removed
accordingly.

**Breaking change**
Functions, types and header files that were previously deprecated have been
removed. In addition the following names/symbols were replaced by ``SUN_ERR_*``
codes instead:
#### SUNDIALS Core Library

```
SUNLS_SUCCESS --> SUN_SUCCESS
SUNLS_UNRECOV_FAILURE --> no replacement (this value was unused)
SUNLS_MEM_NULL --> SUN_ERR_ARG_CORRUPT
SUNLS_ILL_INPUT --> SUN_ERR_ARG_*
SUNLS_MEM_FAIL --> SUN_ERR_MEM_FAIL
SUNLS_PACKAGE_FAIL_UNREC --> SUN_ERR_EXT_FAIL
SUNLS_VECTOROP_ERR --> SUN_ERR_OP_FAIL
SUN_NLS_SUCCESS --> SUN_SUCCESS
SUN_NLS_MEM_NULL --> SUN_ERR_ARG_CORRUPT
SUN_NLS_MEM_FAIL --> SUN_ERR_MEM_FAIL
SUN_NLS_ILL_INPUT --> SUN_ERR_ARG_*
SUN_NLS_VECTOROP_ERR --> SUN_ERR_OP_FAIL
SUN_NLS_EXT_FAIL --> SUN_ERR_EXT_FAIL
SUNMAT_SUCCESS --> SUN_SUCCESS
SUNMAT_ILL_INPUT --> SUN_ERR_ARG_*
SUNMAT_MEM_FAIL --> SUN_ERR_MEM_FAIL
SUNMAT_OPERATION_FAIL --> SUN_ERR_OP_FAIL
SUNMAT_MATVEC_SETUP_REQUIRED --> SUN_ERR_OP_FAIL
Users now need to link to `sundials_core` in addition to the libraries already
linked to. This will be picked up automatically in projects that use the
SUNDIALS CMake target. The library `sundials_generic` has been superseded by
`sundials_core` and is no longer available. This fixes some duplicate symbol
errors on Windows when linking to multiple SUNDIALS libraries.

### Deprecation notice

The functions in `sundials_math.h` will be deprecated in the next release.

```c
sunrealtype SUNRpowerI(sunrealtype base, int exponent);
sunrealtype SUNRpowerR(sunrealtype base, sunrealtype exponent);
sunbooleantype SUNRCompare(sunrealtype a, sunrealtype b);
sunbooleantype SUNRCompareTol(sunrealtype a, sunrealtype b, sunrealtype tol);
sunrealtype SUNStrToReal(const char* str);
```
**Breaking change**
Users now need to link to `sundials_core` in addition to the libraries already linked to.
This will be picked up automatically in projects that use the SUNDIALS CMake target.
The library `sundials_generic` has been superseded by `sundials_core` and is no longer available.
This fixes some duplicate symbol errors on Windows when linking to multiple SUNDIALS libraries.

**Breaking change**
The `*SetErrHandlerFn` and `*SetErrFile` functions in CVODE(S), IDA(S), ARKODE and KINSOL have been
removed. Users of these functions can use the functions `SUNContext_PushErrHandler`, and
`SUNLogger_SetErrorFilename` instead. For further details see the [Error
Checking](https://sundials.readthedocs.io/en/latest/sundials/Errors_link.html) and
[Logging](https://sundials.readthedocs.io/en/latest/sundials/Logging_link.html) sections in the
documentation.
Additionally, the following header files (and everything in them) will be
deprecated -- users who rely on these are recommended to transition to the
corresponding `SUNMatrix` and `SUNLinearSolver` modules:
```c
sundials_direct.h
sundials_dense.h
sundials_band.h
```

## Changes to SUNDIALS in release 6.7.0

Expand Down
24 changes: 12 additions & 12 deletions CITATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,52 +65,52 @@ they are using rather than the combined SUNDIALS online guide:
@Misc{arkodeDocumentation,
author = {Daniel R. Reynolds and David J. Gardner and Carol S. Woodward and Cody J. Balos},
title = {User Documentation for ARKODE},
year = {2023},
note = {v5.7.0}
year = {2024},
note = {v6.0.0-rc.1}
}
```

```bibtex
@Misc{cvodeDocumentation,
author = {Alan C. Hindmarsh and Radu Serban and Cody J. Balos and David J. Gardner and Daniel R. Reynolds and Carol S. Woodward},
title = {User Documentation for CVODE},
year = {2023},
note = {v6.7.0}
year = {2024},
note = {v7.0.0-rc.1}
}
```

```bibtex
@Misc{cvodesDocumentation,
author = {Alan C. Hindmarsh and Radu Serban and Cody J. Balos and David J. Gardner and Daniel R. Reynolds and Carol S. Woodward},
title = {User Documentation for CVODES},
year = {2023},
note = {v6.7.0}
year = {2024},
note = {v7.0.0-rc.1}
}
```

```bibtex
@Misc{idaDocumentation,
author = {Alan C. Hindmarsh and Radu Serban and Cody J. Balos and David J. Gardner and Daniel R. Reynolds and Carol S. Woodward},
title = {User Documentation for IDA},
year = {2023},
note = {v6.7.0}
year = {2024},
note = {v7.0.0-rc.1}
}
```

```bibtex
@Misc{idasDocumentation,
author = {Radu Serban and Cosmin Petra and Alan C. Hindmarsh and Cody J. Balos and David J. Gardner and Daniel R. Reynolds and Carol S. Woodward},
title = {User Documentation for IDAS},
year = {2023},
note = {v5.7.0}
year = {2024},
note = {v6.0.0-rc.1}
}
```

```bibtex
@Misc{kinsolDocumentation,
author = {Alan C. Hindmarsh and Radu Serban and Cody J. Balos and David J. Gardner and Daniel R. Reynolds and Carol S. Woodward},
title = {User Documentation for KINSOL},
year = {2023},
note = {v6.7.0}
year = {2024},
note = {v7.0.0-rc.1}
}
```
50 changes: 25 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# and Slaven Peles @ LLNL
# ---------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2023, Lawrence Livermore National Security
# Copyright (c) 2002-2024, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
Expand Down Expand Up @@ -43,18 +43,18 @@ include(FindPackageHandleStandardArgs)
# Set some variables with info on the SUNDIALS project
set(PACKAGE_BUGREPORT "sundials-users@llnl.gov")
set(PACKAGE_NAME "SUNDIALS")
set(PACKAGE_STRING "SUNDIALS 6.7.0")
set(PACKAGE_STRING "SUNDIALS 7.0.0-rc.1")
set(PACKAGE_TARNAME "sundials")

# Set SUNDIALS version numbers
sundials_git_version() # sets SUNDIALS_GIT_VERSION
message(STATUS "SUNDIALS_GIT_VERSION: ${SUNDIALS_GIT_VERSION}")

# (use "" for the version label if none is needed)
set(PACKAGE_VERSION_MAJOR "6")
set(PACKAGE_VERSION_MINOR "7")
set(PACKAGE_VERSION_MAJOR "7")
set(PACKAGE_VERSION_MINOR "0")
set(PACKAGE_VERSION_PATCH "0")
set(PACKAGE_VERSION_LABEL "")
set(PACKAGE_VERSION_LABEL "rc.1")

if(PACKAGE_VERSION_LABEL)
set(PACKAGE_VERSION
Expand All @@ -68,38 +68,38 @@ endif()

# Specify the VERSION and SOVERSION for shared libraries

set(arkodelib_VERSION "5.7.0")
set(arkodelib_SOVERSION "5")
set(arkodelib_VERSION "6.0.0-rc.1")
set(arkodelib_SOVERSION "6")

set(cvodelib_VERSION "6.7.0")
set(cvodelib_SOVERSION "6")
set(cvodelib_VERSION "7.0.0-rc.1")
set(cvodelib_SOVERSION "7")

set(cvodeslib_VERSION "6.7.0")
set(cvodeslib_SOVERSION "6")
set(cvodeslib_VERSION "7.0.0-rc.1")
set(cvodeslib_SOVERSION "7")

set(idalib_VERSION "6.7.0")
set(idalib_SOVERSION "6")
set(idalib_VERSION "7.0.0-rc.1")
set(idalib_SOVERSION "7")

set(idaslib_VERSION "5.7.0")
set(idaslib_SOVERSION "5")
set(idaslib_VERSION "6.0.0-rc.1")
set(idaslib_SOVERSION "6")

set(kinsollib_VERSION "6.7.0")
set(kinsollib_SOVERSION "6")
set(kinsollib_VERSION "7.0.0-rc.1")
set(kinsollib_SOVERSION "7")

set(cpodeslib_VERSION "0.0.0")
set(cpodeslib_SOVERSION "0")

set(nveclib_VERSION "6.7.0")
set(nveclib_SOVERSION "6")
set(nveclib_VERSION "7.0.0-rc.1")
set(nveclib_SOVERSION "7")

set(sunmatrixlib_VERSION "4.7.0")
set(sunmatrixlib_SOVERSION "4")
set(sunmatrixlib_VERSION "5.0.0-rc.1")
set(sunmatrixlib_SOVERSION "5")

set(sunlinsollib_VERSION "4.7.0")
set(sunlinsollib_SOVERSION "4")
set(sunlinsollib_VERSION "5.0.0-rc.1")
set(sunlinsollib_SOVERSION "5")

set(sunnonlinsollib_VERSION "3.7.0")
set(sunnonlinsollib_SOVERSION "3")
set(sunnonlinsollib_VERSION "4.0.0-rc.1")
set(sunnonlinsollib_SOVERSION "4")

set(sundialslib_VERSION
"${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}"
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2002-2023, Lawrence Livermore National Security and Southern Methodist University.
Copyright (c) 2002-2024, Lawrence Livermore National Security and Southern Methodist University.
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic equation Solvers #
### Version 6.7.0 (Dec 2023) ###
### Version 7.0.0-rc.1 (Jan 2024) ###

**Center for Applied Scientific Computing, Lawrence Livermore National Laboratory**

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Programmer(s): Cody J. Balos @ LLNL
# ---------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2023, Lawrence Livermore National Security
# Copyright (c) 2002-2024, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Programmer(s): Daniel R. Reynolds @ SMU
# ---------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2023, Lawrence Livermore National Security
# Copyright (c) 2002-2024, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/kokkos/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Programmer(s): Daniel R. Reynolds @ SMU
# ---------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2023, Lawrence Livermore National Security
# Copyright (c) 2002-2024, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
Expand Down
Loading

0 comments on commit e5eec3d

Please sign in to comment.