Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/7.0.0-rc.1 #404

Merged
merged 5 commits into from
Jan 3, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
151 changes: 81 additions & 70 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,62 @@
# SUNDIALS Changelog

## Changes to SUNDIALS in release X.X.X
## Changes to SUNDIALS in release 7.0.0-rc.1
balos1 marked this conversation as resolved.
Show resolved Hide resolved

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.
### 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 +72,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 +99,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
12 changes: 6 additions & 6 deletions CITATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ they are using rather than the combined SUNDIALS online guide:
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}
note = {v6.0.0-rc.1}
}
```

Expand All @@ -75,7 +75,7 @@ they are using rather than the combined SUNDIALS online guide:
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}
note = {v7.0.0-rc.1}
}
```

Expand All @@ -84,7 +84,7 @@ they are using rather than the combined SUNDIALS online guide:
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}
note = {v7.0.0-rc.1}
}
```

Expand All @@ -93,7 +93,7 @@ they are using rather than the combined SUNDIALS online guide:
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}
note = {v7.0.0-rc.1}
}
```

Expand All @@ -102,7 +102,7 @@ they are using rather than the combined SUNDIALS online guide:
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}
note = {v6.0.0-rc.1}
}
```

Expand All @@ -111,6 +111,6 @@ they are using rather than the combined SUNDIALS online guide:
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}
note = {v7.0.0-rc.1}
}
```
48 changes: 24 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
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 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 (Dec 2023) ###

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

Expand Down
Loading
Loading