Skip to content

SUNDIALS minor release v5.2.0

Compare
Choose a tag to compare
@balos1 balos1 released this 31 Mar 14:52

Changes to SUNDIALS in release 5.2.0

Fixed a build system bug related to the Fortran 2003 interfaces when using the
IBM XL compiler. When building the Fortran 2003 interfaces with an XL compiler
it is recommended to set CMAKE_Fortran_COMPILER to f2003, xlf2003, or
xlf2003_r.

Fixed a bug in how ARKode interfaces with a user-supplied, iterative, unscaled linear solver.
In this case, ARKode adjusts the linear solver tolerance in an attempt to account for the
lack of support for left/right scaling matrices. Previously, ARKode computed this scaling
factor using the error weight vector, ewt; this fix changes that to the residual weight vector,

Fixed a linkage bug affecting Windows users that stemmed from dllimport/dllexport
attribute missing on some SUNDIALS API functions.

Fixed a bug in how ARKode interfaces with a user-supplied, iterative, unscaled linear solver.
In this case, ARKode adjusts the linear solver tolerance in an attempt to account for the
lack of support for left/right scaling matrices. Previously, ARKode computed this scaling
factor using the error weight vector, ewt; this fix changes that to the residual weight vector,
rwt, that can differ from ewt when solving problems with non-identity mass matrix.

Fixed a similar bug in how ARKode interfaces with scaled linear solvers when solving problems
with non-identity mass matrices. Here, the left scaling matrix should correspond with rwt
and the right scaling matrix with ewt; these were reversed but are now correct.

Fixed a memory leak in CVODES and IDAS from not deallocating the atolSmin0 and
atolQSmin0 arrays.

Fixed a bug where a non-default value for the maximum allowed growth factor
after the first step would be ignored.

Functions were added to each of the time integration packages to enable or
disable the scaling applied to linear system solutions with matrix-based linear solvers
to account for lagged matrix information.

Added two new functions, ARKStepSetMinReduction() and
ERKStepSetMinReduction() to change the minimum allowed step size reduction factor
after an error test failure.

Added a new SUNMatrix implementation, SUNMATRIX_CUSPARSE, that interfaces
to the sparse matrix implementation from the NVIDIA cuSPARSE library. In addition,
the SUNLINSOL_CUSOLVER_BATCHQR linear solver has been updated to
use this matrix, therefore, users of this module will need to update their code.
These modules are still considered to be experimental, thus they are subject to
breaking changes even in minor releases.

Added a new "stiff" interpolation module to ARKode, based on Lagrange polynomial interpolation,
that is accessible to each of the ARKStep, ERKStep and MRIStep time-stepping modules.
This module is designed to provide increased interpolation accuracy when integrating
stiff problems, as opposed to the ARKode-standard Hermite interpolation module that
can suffer when the IVP right-hand side has large Lipschitz constant. While the Hermite module
remains the default, the new Lagrange module may be enabled using one of the routines
ARKStepSetInterpolantType, ERKStepSetInterpolantType, or MRIStepSetInterpolantType.
The serial example problem ark_brusselator.c has been converted to use this Lagrange
interpolation module. Created accompanying routines ARKStepSetInterpolantDegree,
ARKStepSetInterpolantDegree and ARKStepSetInterpolantDegree to provide user control over
these interpolating polynomials. While the routines ARKStepSetDenseOrder,
ARKStepSetDenseOrder and ARKStepSetDenseOrder still exist, these have been deprecated and
will be removed in a future release.