Skip to content
Choose a tag to compare

SUNDIALS minor release v5.3.0

Choose a tag to compare

Changes to SUNDIALS in release 5.3.0

Added support to CVODE for integrating IVPs with constraints using BDF methods
and projecting the solution onto the constraint manifold with a user defined
projection function. This implementation is accompanied by additions to the
CVODE user documentation and examples.

Added the ability to control the CUDA kernel launch parameters for the
NVECTOR_CUDA and SUNMATRIX_CUSPARSE modules. These modules remain
experimental and are subject to change from version to version.
In addition, the NVECTOR_CUDA kernels were rewritten to be more flexible.
Most users should see equivalent performance or some improvement, but a select
few may observe minor performance degradation with the default settings. Users
are encouraged to contact the SUNDIALS team about any perfomance changes
that they notice.

Added new capabilities for monitoring the solve phase in the SUNNONLINSOL_NEWTON
and SUNNONLINSOL_FIXEDPOINT modules, and the SUNDIALS iterative linear solver
modules. SUNDIALS must be built with the CMake option
SUNDIALS_BUILD_WITH_MONITORING to use these capabilities.

Added a new function, CVodeSetMonitorFn, that takes a user-function
to be called by CVODE after every nst succesfully completed time-steps.
This is intended to provide a way of monitoring the CVODE statistics
throughout the simulation.

Added specialized fused CUDA kernels to CVODE which may offer better
performance on smaller problems when using CVODE with the NVECTOR_CUDA
module. See the optional input function CVodeSetUseIntegratorFusedKernels
for more information. As with other SUNDIALS CUDA features, this feature is experimental
and may change from version to version.

Added a new function CVodeGetLinSolveStats to get the CVODE linear solver
statistics as a group.

Added optional set functions to provide an alternative ODE right-hand side
function (ARKode and CVODE(S)), DAE residual function (IDA(S)), or nonlinear
system function (KINSOL) for use when computing Jacobian-vector products with
the internal difference quotient approximation.

Fixed a bug in ARKode where the prototypes for ERKStepSetMinReduction() and
ARKStepSetMinReduction() were not included in arkode_erkstep.h and
arkode_arkstep.h respectively.

Fixed a bug in ARKode where inequality constraint checking would need to be
disabled and then re-enabled to update the inequality constraint values after
resizing a problem. Resizing a problem will now disable constraints and a call
to ARKStepSetConstraints or ERKStepSetConstraints is required to re-enable
constraint checking for the new problem size.

Fixed a bug in the iterative linear solver modules where an error is not
returned if the Atimes function is NULL or, if preconditioning is enabled, the
PSolve function is NULL.