Skip to content

SUNDIALS minor release v6.2.0

Compare
Choose a tag to compare
@balos1 balos1 released this 22 Apr 17:20
· 298 commits to main since this release

https://github.com/LLNL/sundials is now the official SUNDIALS development repository.

Added the SUNLogger API which provides a SUNDIALS-wide
mechanism for logging of errors, warnings, informational output,
and debugging output.

Deprecated the following functions, it is recommended to use the SUNLogger API
instead.

  • ARKStepSetDiagnostics
  • ERKStepSetDiagnostics
  • MRIStepSetDiagnostics
  • KINSetInfoFile
  • SUNNonlinSolSetPrintLevel_Newton
  • SUNNonlinSolSetInfoFile_Newton
  • SUNNonlinSolSetPrintLevel_FixedPoint
  • SUNNonlinSolSetInfoFile_FixedPoint
  • SUNLinSolSetInfoFile_PCG
  • SUNLinSolSetPrintLevel_PCG
  • SUNLinSolSetInfoFile_SPGMR
  • SUNLinSolSetPrintLevel_SPGMR
  • SUNLinSolSetInfoFile_SPFGMR
  • SUNLinSolSetPrintLevel_SPFGMR
  • SUNLinSolSetInfoFile_SPTFQM
  • SUNLinSolSetPrintLevel_SPTFQMR
  • SUNLinSolSetInfoFile_SPBCGS
  • SUNLinSolSetPrintLevel_SPBCGS

The SUNLinSolSetInfoFile_** and SUNNonlinSolSetInfoFile_* family of
functions are now enabled by setting the CMake option SUNDIALS_LOGGING_LEVEL
to a value >= 3.

Added the function SUNProfiler_Reset to reset the region timings and counters
to zero.

Added the functions ARKStepPrintAllStats, ERKStepPrintAllStats,
MRIStepPrintAll, CVodePrintAllStats, IDAPrintAllStats, and
KINPrintAllStats to output all of the integrator, nonlinear solver, linear
solver, and other statistics in one call. The file scripts/sundials_csv.py
contains functions for parsing the comma-separated value output files.

Added functions to CVODE, CVODES, IDA, and IDAS to change the default step size
adaptivity parameters. For more information see the documentation for:

  • CVodeSetEtaFixedStepBounds
  • CVodeSetEtaMaxFirstStep
  • CVodeSetEtaMaxEarlyStep
  • CVodeSetNumStepsEtaMaxEarlyStep
  • CVodeSetEtaMax
  • CVodeSetEtaMin
  • CVodeSetEtaMinErrFailEta
  • CVodeSetEtaMaxErrFailEta
  • CVodeSetNumFailsEtaMaxErrFail
  • CVodeSetEtaConvFail
  • IDASetEtaFixedStepBounds
  • IDAsetEtaMax
  • IDASetEtaMin
  • IDASetEtaLow
  • IDASetEtaMinErrFail
  • IDASetEtaConvFail

Added the functions CVodeSetDeltaGammaMaxLSetup and
CVodeSetDeltaGammaMaxBadJac in CVODE and CVODES to adjust the gamma change
thresholds to require a linear solver setup or Jacobian/precondition update,
respectively.

Added the function IDASetDetlaCjLSetup in IDA and IDAS to adjust the parameter
that determines when a change in c_j requires calling the linear solver setup
function.

Added the function MRIStepSetOrder to select the default MRI method of a given
order.

Added support to CVODES 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
CVODES user documentation and examples.

The behavior of N_VSetKernelExecPolicy_Sycl has been updated to be consistent
with the CUDA and HIP vectors. The input execution policies are now cloned and
may be freed after calling N_VSetKernelExecPolicy_Sycl. Additionally, NULL
inputs are now allowed and, if provided, will reset the vector execution
policies to the defaults.

Fixed the SUNContext convenience class for C++ users to disallow copy
construction and allow move construction.

A memory leak in the SYCL vector was fixed where the execution policies were
not freed when the vector was destroyed.

The include guard in nvector_mpimanyvector.h has been corrected to enable
using both the ManyVector and MPIManyVector NVector implementations in the same
simulation.

Changed exported SUNDIALS PETSc CMake targets to be INTERFACE IMPORTED instead
of UNKNOWN IMPORTED.

A bug was fixed in the integrator functions to retrieve the number of nonlinear
solver failures. The failure count returned was the number of failed steps due
to a nonlinear solver failure i.e., if a nonlinear solve failed with a stale
Jacobian or preconditioner but succeeded after updating the Jacobian or
preconditioner, the initial failure was not included in the nonlinear solver
failure count. The following functions have been updated to return the total
number of nonlinear solver failures:

  • ARKStepGetNumNonlinSolvConvFails
  • ARKStepGetNonlinSolvStats
  • MRIStepGetNumNonlinSolvConvFails
  • MRIStepGetNonlinSolvStats
  • CVodeGetNumNonlinSolvConvFails
  • CVodeGetNonlinSolvStats
  • CVodeGetSensNumNonlinSolvConvFails
  • CVodeGetSensNonlinSolvStats
  • CVodeGetStgrSensNumNonlinSolvConvFails
  • CVodeGetStgrSensNonlinSolvStats
  • IDAGetNumNonlinSolvConvFails
  • IDAGetNonlinSolvStats
  • IDAGetSensNumNonlinSolvConvFails
  • IDAGetSensNonlinSolvStats

As such users may see an increase in the number of failures reported from the
above functions. The following functions have been added to retrieve the number
of failed steps due to a nonlinear solver failure i.e., the counts previously
returned by the above functions:

  • ARKStepGetNumStepSolveFails
  • MRIStepGetNumStepSolveFails
  • CVodeGetNumStepSolveFails
  • CVodeGetNumStepSensSolveFails
  • CVodeGetNumStepStgrSensSolveFails
  • IDAGetNumStepSolveFails
  • IDAGetNumStepSensSolveFails