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

Maintenance: Start next release cycle #622

Merged
merged 1 commit into from
Dec 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
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
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# SUNDIALS Changelog

## Changes to SUNDIALS in release X.Y.Z

### Major Features

### New Features and Enhancements

### Bug Fixes

### Deprecation Notices

## Changes to SUNDIALS in release 7.2.0

### Major Features
Expand Down
2 changes: 1 addition & 1 deletion doc/arkode/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ require a linear solver, ARKODE may use a variety of SUNLinearSolver modules
provided with SUNDIALS, or again may utilize a user-supplied module.


Changes to SUNDIALS in release 6.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: ../../../shared/RecentChanges.rst
Expand Down
2 changes: 1 addition & 1 deletion doc/cvode/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ implementations.
.. efficiency of C, and the greater ease of interfacing the solver to
.. applications written in extended Fortran.

Changes to SUNDIALS in release 7.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: ../../../shared/RecentChanges.rst
Expand Down
2 changes: 1 addition & 1 deletion doc/cvodes/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ greater ease of interfacing the solver to applications written in extended
Fortran.


Changes to SUNDIALS in release 7.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: ../../../shared/RecentChanges.rst
Expand Down
2 changes: 1 addition & 1 deletion doc/ida/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ systems.
the greater ease of interfacing the solver to applications written in extended
Fortran.

Changes to SUNDIALS in release 7.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: ../../../shared/RecentChanges.rst
Expand Down
2 changes: 1 addition & 1 deletion doc/idas/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ integrate any final-condition ODE dependent on the solution of the original IVP
the greater ease of interfacing the solver to applications written in extended
Fortran.

Changes to SUNDIALS in release 6.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: ../../../shared/RecentChanges.rst
Expand Down
2 changes: 1 addition & 1 deletion doc/kinsol/guide/source/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ applications written in Fortran.

.. _KINSOL.Introduction.Changes:

Changes to SUNDIALS in release 7.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: ../../../shared/RecentChanges.rst
Expand Down
179 changes: 178 additions & 1 deletion doc/shared/Changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,188 @@ Changelog

.. SED_REPLACEMENT_KEY

Changes to SUNDIALS in release 7.2.0
Changes to SUNDIALS in release X.Y.Z
====================================

.. include:: RecentChanges_link.rst

Changes to SUNDIALS in release 7.2.0
====================================

**Major Features**

Added a time-stepping module to ARKODE for low storage Runge--Kutta methods,
:ref:`LSRKStep <ARKODE.Usage.LSRKStep>`. This currently supports five explicit
low-storage methods: the second-order Runge--Kutta--Chebyshev and
Runge--Kutta--Legendre methods, and the second- through fourth-order optimal
strong stability preserving Runge--Kutta methods. All methods include
embeddings for temporal adaptivity.

Added an operator splitting module, :ref:`SplittingStep
<ARKODE.Usage.SplittingStep>`, and forcing method module, :ref:`ForcingStep
<ARKODE.Usage.ForcingStep>`, to ARKODE. These modules support a broad range of
operator-split time integration methods for multiphysics applications.

Added support for multirate time step adaptivity controllers, based on the
recently introduced :c:type:`SUNAdaptController` base class, to ARKODE's MRIStep
module. As a part of this, we added embeddings for existing MRI-GARK methods,
as well as support for embedded MERK and IMEX-MRI-SR methods. Added new default
MRI methods for temporally adaptive versus fixed-step runs.

**New Features and Enhancements**

*Logging*

The information level logging output in ARKODE, CVODE(S), and IDA(S) has been
updated to be more uniform across the packages and a new ``tools`` directory has
been added with a Python module, ``suntools``, containing utilities for parsing
logging output. The Python utilities for parsing CSV output have been relocated
from the ``scripts`` directory to the Python module.

*SUNStepper*

Added the :c:type:`SUNStepper` base class to represent a generic solution
procedure for IVPs. This is used by the :ref:`SplittingStep
<ARKODE.Usage.SplittingStep>` and :ref:`ForcingStep <ARKODE.Usage.ForcingStep>`
modules of ARKODE. A SUNStepper can be created from an ARKODE memory block with
the new function :c:func:`ARKodeCreateSUNStepper`. To enable interoperability
with :c:type:`MRIStepInnerStepper`, the function
:c:func:`MRIStepInnerStepper_CreateFromSUNStepper` was added.

*ARKODE*

Added functionality to ARKODE to accumulate a temporal error estimate over
multiple time steps. See the routines :c:func:`ARKodeSetAccumulatedErrorType`,
:c:func:`ARKodeResetAccumulatedError`, and :c:func:`ARKodeGetAccumulatedError`
for details.

Added the :c:func:`ARKodeSetStepDirection` and :c:func:`ARKodeGetStepDirection`
functions to change and query the direction of integration.

Added the function :c:func:`MRIStepGetNumInnerStepperFails` to retrieve the
number of recoverable failures reported by the MRIStepInnerStepper.

Added a utility routine to wrap any valid ARKODE integrator for use as an
MRIStep inner stepper object, :c:func:`ARKodeCreateMRIStepInnerStepper`.

The following DIRK schemes now have coefficients accurate to quad precision:

* ``ARKODE_BILLINGTON_3_3_2``
* ``ARKODE_KVAERNO_4_2_3``
* ``ARKODE_CASH_5_2_4``
* ``ARKODE_CASH_5_3_4``
* ``ARKODE_KVAERNO_5_3_4``
* ``ARKODE_KVAERNO_7_4_5``

*CMake*

The default value of :cmakeop:`CMAKE_CUDA_ARCHITECTURES` is no longer set to
``70`` and is now determined automatically by CMake. The previous default was
only valid for Volta GPUs while the automatically selected value will vary
across compilers and compiler versions. As such, users are encouraged to
override this value with the architecture for their system.

The build system has been updated to utilize the CMake LAPACK imported target
which should ease building SUNDIALS with LAPACK libraries that require setting
specific linker flags e.g., MKL.

*Third Party Libraries*

The Trilinos Tpetra NVector interface has been updated to utilize CMake
imported targets added in Trilinos 14 to improve support for different Kokkos
backends with Trilinos. As such, Trilinos 14 or newer is required and the
``Trilinos_INTERFACE_*`` CMake options have been removed.

Example programs using *hypre* have been updated to support v2.20 and newer.

**Bug Fixes**

*CMake*

Fixed a CMake bug regarding usage of missing "print_warning" macro that was only
triggered when the deprecated ``CUDA_ARCH`` option was used.

Fixed a CMake configuration issue related to aliasing an ``ALIAS`` target when
using ``ENABLE_KLU=ON`` in combination with a static-only build of SuiteSparse.

Fixed a CMake issue which caused third-party CMake variables to be unset. Users
may see more options in the CMake GUI now as a result of the fix. See details
in GitHub Issue `#538 <https://github.com/LLNL/sundials/issues/538>`__.

*NVector*

Fixed a build failure with the SYCL NVector when using Intel oneAPI 2025.0
compilers. See GitHub Issue `#596 <https://github.com/LLNL/sundials/issues/596>`__.

Fixed compilation errors when building the Trilinos Teptra NVector with CUDA
support.

*SUNMatrix*

Fixed a `bug <https://github.com/LLNL/sundials/issues/581>`__ in the sparse
matrix implementation of :c:func:`SUNMatScaleAddI` which caused out of bounds
writes unless ``indexvals`` were in ascending order for each row/column.

*SUNLinearSolver*

Fixed a bug in the SPTFQMR linear solver where recoverable preconditioner errors
were reported as unrecoverable.

*ARKODE*

Fixed :c:func:`ARKodeResize` not using the default ``hscale`` when an argument
of ``0`` was provided.

Fixed a memory leak that could occur if :c:func:`ARKodeSetDefaults` is called
repeatedly.

Fixed the loading of ARKStep's default first order explicit method.

Fixed loading the default IMEX-MRI method if :c:func:`ARKodeSetOrder` is used to
specify a third or fourth order method. Previously, the default second order
method was loaded in both cases.

Fixed potential memory leaks and out of bounds array accesses that could occur
in the ARKODE Lagrange interpolation module when changing the method order or
polynomial degree after re-initializing an integrator.

Fixed a bug in ARKODE when enabling rootfinding with fixed step sizes and the
initial value of the rootfinding function is zero. In this case, uninitialized
right-hand side data was used to compute a state value near the initial
condition to determine if any rootfinding functions are initially active.

Fixed a bug in MRIStep where the data supplied to the Hermite interpolation
module did not include contributions from the fast right-hand side
function. With this fix, users will see one additional fast right-hand side
function evaluation per slow step with the Hermite interpolation option.

Fixed a bug in SPRKStep when using compensated summations where the error vector
was not initialized to zero.

*CVODE(S)*

Fixed a bug where :c:func:`CVodeSetProjFailEta` would ignore the `eta`
parameter.

*Fortran Interfaces*

Fixed a bug in the 32-bit ``sunindextype`` Fortran interfaces to
:c:func:`N_VGetSubvectorArrayPointer_ManyVector`,
:c:func:`N_VGetSubvectorArrayPointer_MPIManyVector`,
:c:func:`SUNBandMatrix_Column` and :c:func:`SUNDenseMatrix_Column` where 64-bit
``sunindextype`` interface functions were used.

**Deprecation Notices**

Deprecated the ARKStep-specific utility routine for wrapping an ARKStep instance
as an MRIStep inner stepper object,
:c:func:`ARKStepCreateMRIStepInnerStepper`. Use
:c:func:`ARKodeCreateMRIStepInnerStepper` instead.

The ARKODE stepper specific functions to retrieve the number of right-hand side
function evaluations have been deprecated. Use :c:func:`ARKodeGetNumRhsEvals`
instead.

Changes to SUNDIALS in release 7.1.1
====================================

Expand Down
Loading
Loading