Skip to content
Choose a tag to compare

SUNDIALS development release v5.0.0-dev.2

@balos1 balos1 released this
· 20 commits to develop since this release
Choose a tag to compare

Changes to SUNDIALS in release 5.0.0-dev.2

Added a new optional operation to the SUNLINEARSOLVER API, SUNLinSolGetID,
that returns a SUNLinearSolver_ID for identifying the linear solver module.

Made performance improvements to the CUDA NVECTOR. Users who utilize a non
-default stream should no longer see default stream synchronizations after
memory transfers.

Added a new constructor to the CUDA NVECTOR that allows a user to provide
custom allocate and free functions for the vector data array and internal
reduction buffer.

Increased the minimum required CMake version to 3.5 for most SUNDIALS configurations,
and 3.10 when CUDA or OpenMP with device offloading are enabled.

The CMake option BLAS_ENABLE and the variable BLAS_LIBRARIES have been
removed to simplify builds as SUNDIALS packages do not use BLAS directly. For
third party libraries that require linking to BLAS, the path to the BLAS
library should be included in the _LIBRARIES variable for the third party
library e.g., SUPERLUDIST_LIBRARIES when enabling SuperLU_DIST.

Fixed a bug in the ARKStep time-stepping module in ARKode that would result in an
infinite loop if the nonlinear solver failed to converge more than the maximum
allowed times during a single step.

Added functions to get the current state and gamma value to CVODE(S) and ARKode.
These functions may be useful to users who chose to provide their own nonlinear
solver implementation.

Add two new 'Set' functions to MRIStep, MRIStepSetPreInnerFn() and
MRIStepSetPostInnerFn() for performing communication or memory
transfers needed before or after the inner integration.

The reinitialization functions ERKStepReInit(), ARKStepReInit(), and
MRIStepReInit() have been updated to retain the minimum and maxiumum step
size values from before reinitialization rather than resetting them to the
default values.

Added a new SUNLinearSolver implementation, SUNLinearSolver_cuSolverSp_batchQR,
which leverages the NVIDIA cuSOLVER sparse batched QR method for efficiently
solving block diagonal linear systems on NVIDIA GPUs.

Added three new accessor functions to the SUNLinSol_KLU module,
SUNLinSol_KLUGetSymbolic(), SUNLinSol_KLUGetNumeric(), and
SUNLinSol_KLUGetCommon(), to provide user access to the underlying
KLU solver structures.

A bug was fixed in the IDA(S) linear solver interface where an incorrect
Jacobian-vector product increment was used with iterative solvers other than

Fixed a bug in the CVODE(S) nonlinear solver interface where the norm of the
accumulated correction was not updated when using a non-default convergence
test function.