From 273fe38d19a1ae08280868512143d69da7ce6d50 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 18 Dec 2023 13:53:04 -0800 Subject: [PATCH] Maintenance: Add old releases to changelog (#402) Add releases before 3.0 to top-level change log --------- Co-authored-by: David Gardner --- CHANGELOG.md | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83934d1195..b7e57eb923 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2055,3 +2055,196 @@ Corrected KINSOL fcmix name translation for `FKIN_SPFGMR`. Renamed `KINLocalFn` and `KINCommFn` to `KINBBDLocalFn` and `KINBBDCommFn` respectively in the BBD preconditioner module for consistency with other SUNDIALS solvers. + +## Changes to SUNDIALS in release v2.7.0 + +- Two new NVECTOR modules added: for _hypre_ ParVector and PETSC. +- In vector API, added new required function, N\_VGetVectorID. +- Upgrades to sparse solver interfaces; now support CSR matrix type with KLU solver. +- In all packages, example codes were changed from using NV\_DATA macro to using N\_VGetArrayPointer\_\* when using the native vectors shipped with SUNDIALS +- In all packages, fixed memory leak in banded preconditioner interface. +- Fixed some examples w.r.t. switch to new macro/function names SUNRexp etc. +- Various minor fixes to installation-related files. +- Corrected name N\_VCloneEmptyVectorArray to N\_VCloneVectorArrayEmpty in all documentation files. +- Updated all packages to return integers from linear solver and preconditioner 'free' functions. +- Removed Matlab interface from distribution as it has not been updated since 2009. We expect to update this interface soon. +- In FKINSOL, FCVODE, and FIDA, added missing Fortran interface routines so that users can supply the sparse Jacobian routine. +- Minor corrections and additions to all User Guides, including removal of references to specific NVECTOR names in usage skeletons. +- Additional example programs added throughout. +- In CVODE + - in FCVODE, fixed argument order bugs in FCVKLU and FCVSUPERLUMT linear solver interfaces. +- In CVODES + - changed each \*\*FreeB() to type int; added return(0) to each. + - in interpolation routines for backward problems, added logic to bypass sensitivity interpolation if input sensitivity argument is NULL. +- In ARKODE + - updated linear and mass matrix solvers so that 'free' routines return integer instead of void; updated documentation accordingly. + - fixed initialization of linear solver performance counters. + - method and embedding for Billington and TRBDF2 explicit Runge-Kutta methods were swapped. + - fix for user specification of absolute tolerance array along with vector Resize() functionality. + - fix for user-supplied Butcher tables without embeddings (if fixed time steps or manual adaptivity are employed). + - multiple documentation updates. + - added missing ARKSpilsGetNumMtimesEvals() function. + - implicit predictor algorithms were updated: methods 2 and 3 were improved, a new predictor approach was added, and the default choice was modified. + - revised handling of integer codes for specifying built-in Butcher tables: a global numbering system is still used, but methods now have #defined names to simplify the user interface. + - maximum number of Butcher table stages was increased from 8 to 15 to accommodate very high-order methods, and an 8th-order adaptive ERK method was added. + - added support for the explicit and implicit methods in an additive Runge-Kutta method to utilize different stage times, solution and embedding coefficients, to support new SSP-ARK methods. + - extended FARKODE interface to include a routine to set scalar/array-valued residual tolerances, to support Fortran applications with non-identity mass-matrices. +- In IDA + - corrected example idaFoodWeb\_bnd.c in PrintOutput (wrong component printed). + - added optional input function IDASetMaxBacksIC to limit number of linesearch backtrack operations in IDACalcIC. User guides amended accordingly. +- In IDAS + - added optional input function IDASetMaxBacksIC to limit number of linesearch backtrack operations in IDACalcIC. User guides amended accordingly. + - changed each \*\*FreeB() to type int; added return(0) to each. + - in interpolation routines for backward problems, added logic to bypass sensitivity interpolation if input sensitivity argument is NULL. +- In KINSOL + - minor bug fix in Picard iteration. + - minor bug fix in line search to prevent infinite loop when beta condition fails and lambda is below minimum size. + +## Changes to SUNDIALS in release v2.6.2 + +- In IDAS, added missing backward problem support functions: IDALapackDenseB, IDALapackDenseFreeB, IDALapackBandB, IDALapackBandFreeB +- In KINSOL and ARKode, updated Anderson acceleration implementation with QR updating. +- Updated BiCGStab solver to remove redundant dot product call. +- Minor corrections and additions to all User Guides. +- In CVODES and IDAS header files, corrected documentation of backward integration functions, especially the 'which' argument. +- In CVODES, added DVKLUB prototype and corrected CVSuperLUMTB prototype. +- In IDAS, made SuperLUMT call for backward problem consistent with CVODES. +- In CVODES and IDAS, added ReInit and SetOrdering wrappers for backward problems. Fixed potential memory leak in KLU ReInit functions in all solvers. +- In CVODE, IDA, and ARKode, fixed Fortran interfaces to enable calls to \*GetErrWeights, \*GetEstLocalErrors, and \*GetDky within a time step. In ARKode, fixed a bug in one Butcher table. +- In ARKode, fixed error in arkDoErrorTest in recovery after failure. +- In IDAS, fixed for-loop bugs in IDAAckpntAllocVectors Various minor fixes to installation-related files. + +## Changes to SUNDIALS in release v2.6.1 + +- Fixed loop limit bug in SlsAddMat function. +- In all six solver interfaces to KLU and SuperLUMT, added #include lines, and removed redundant KLU structure allocations. +- Numerous minor documentation improvements +- Minor bug fixes in ARKode + +## Changes to SUNDIALS in release v2.6.0 + +- Addition of ARKode package of explicit, implicit, and additive Runge-Kutta methods for ODES. This package API is close to CVODE so switching between the two should be straightforward. Thanks go to Daniel Reynolds for the addition of this package. +- Addition of support for two sparse direct solver packages when using the serial vector structure, KLU and SuperLU\_MT. exploits highly sparse systems. SuperLU\_MT supports multithreading in the factorization. +- Addition of openMP and PThreads vector kernels. +- Addition of fixed point and Picard iterative solvers within KINSOL. These are both optionally accelerated with Anderson acceleration. +- Addition of FGMRES support for KINSOL. +- Removal of autotools configuration support. We now exclusively use CMake. +- Numerous bug fixes throughout. + +## Changes to SUNDIALS in release v2.5.0 + +- Changes to user interface + - Problem size and related integers (bandwidth parameters etc.) all have type long int, except in BLAS and LAPACK routines. Function NewIntArray is replaced by a pair NewIntArray/NewLintArray, for int and long int arrays, respectively. + +## Changes to SUNDIALS in release v2.4.0 + +- New features + - new linear solver module, based on Blas and Lapack for both dense and banded matrices. +- Changes to user interface + - reorganization of all linear solver modules into two families (besides the existing family of scaled preconditioned iterative linear solvers, the direct solvers, including the new Lapack-based ones, were also organized into a direct family). +- Changes related to the build system + - provide CMake-based build option, in addition to that based on autotools. + +## Changes to SUNDIALS in release v2.3.0 + +- Changes to the user interface + - modified the functions in the generic dense linear solver (sundials\_dense and sundials\_smalldense) to work for rectangular m by n matrices (m ≤ n). + - renamed the factorization and solution functions in the generic dense linear solver to DenseGETRF/denGETRF and DenseGETRS/denGETRS, respectively. + - renamed the factorization and solution functions in the generic band linear solver to BandGBTRF and BandGBTRS, respectively. +- Changes related to the build system + - rearranged the entire SUNDIALS source tree + - all exported header files are now installed in separate subdirectories of the installation include directory + - header files are included now by specifying the relative path (e.g., #include \) + +## Changes to SUNDIALS in release v2.2.0 + +- New features + - added SPBCG (scaled preconditioned Bi-CGStab) linear solver module + - added SPTFQMR (scaled preconditioned TFQMR) linear solver module +- Changes related to the build system + - updated configure script and Makefiles for Fortran examples to avoid C++ compiler errors (now use CC and MPICC to link only if necessary) + - SUNDIALS shared header files are installed under a sundials subdirectory of the installation include directory + - the shared object files are now linked into each SUNDIALS library rather than into a separate libsundials\_shared library +- Changes to the user interface + - added prefix sundials\_ to all shared header files + +## Changes to SUNDIALS in release v2.1.1 + +- Changes to the generic NVECTOR module + - N\_VCloneEmpty was added to the global vector operations table + +## Changes to SUNDIALS in release v2.0.2 + +- Changes related to the build system + - fixed autoconf-related bug to allow configuration with the PGI Fortran compiler + - modified to use customized detection of the Fortran name mangling scheme (autoconf's AC\_F77\_WRAPPERS routine is problematic on some platforms) + +## Changes to SUNDIALS in release v2.0.1 + +- Changes related to the build system + - changed order of compiler directives in header files to avoid compilation errors when using a C++ compiler. + - changed method of generating sundials\_config.h to avoid potential warnings of redefinition of preprocessor symbols. + +## Changes to SUNDIALS in release v2.0.0 + +- Changes to the generic NVECTOR module + - removed machEnv, redefined table of vector operations (now contained in the N\_Vector structure itself). + - all SUNDIALS functions create new N\_Vector variables through cloning, using an N\_Vector passed by the user as a template. + - a particular NVECTOR implementation is supposed to provide user-callable constructor and destructor functions. + - removed from structure of vector operations the following functions: N\_VNew, N\_VNew\_S, N\_VFree, N\_VFree\_S, N\_VMake, N\_VDispose, N\_VGetData, N\_VSetData, N\_VConstrProdPos, and N\_VOneMask. + - added in structure of vector operations the following functions: N\_VClone, N\_VDestroy, N\_VSpace, N\_VGetArrayPointer, N\_VSetArrayPointer, and N\_VWrmsNormMask. + - Note that nvec\_ser and nvec\_par are now separate modules outside the shared SUNDIALS module. +- Changes to the generic linear solvers + - in SPGMR, added a dummy N\_Vector argument to be used as a template for cloning. + - in SPGMR, removed N (problem dimension) from argument list of SpgmrMalloc. + - iterative.{c,h} replace iterativ.{c,h} + - modified constant names in iterative.h (preconditioner types are prefixed with 'PREC\_'). + - changed numerical values for MODIFIED\_GS (from 0 to 1) and CLASSICAL\_GS (from 1 to 2). +- Changes to sundialsmath submodule + - replaced internal routine for estimation of unit roundoff with definition of unit roundoff from float.h + - modified functions to call appropriate math routines given the precision level specified by the user. +- Changes to sundialstypes submodule + - removed type 'integertype'. + - added definitions for 'BIG\_REAL', 'SMALL\_REAL', and 'UNIT\_ROUNDOFF' using values from float.h based on the precision. + - changed definition of macro RCONST to depend on precision. + +# sundialsTB + +sundialsTB is no longer distributed as of sundials v. 2.7.0 as it has not been updated in many years. + +## What's new in v2.5.0? + +- Bug fixes + - fixed lines setting etachoice in kimOpts.c + - in cvm.c and idm.c, fixed size of rootsfound array; added lines to free rootsfound and ckpnt arrays when done using each +- What's new in v2.4.0? +- New Features + - the Matlab interface to IDAS was extended to provide sensitivity analysis capabilities. +- Changes to user interface + - the API for adjoint sensitivity analysis (cvodes and idas) was modified to support simultaneous integration of multiple backward problems. + +## What's new in v2.3.0? + +- New features + - added Matlab interface to IDA (named idas) + - on platforms which support configure scripts, installation of sundialsTB can now be enabled while configuring SUNDIALS and installed through make and make install (provided a working MEX compiler is found). +- Bug fixes + - the installation script install\_STB.m was modified to increase robustness on various platforms (related to path and file names). +- Changes to user interface + - (cvodes) for improved legibility, some of the keys for forward sensitivity optional inputs were renamed. + - (cvodes) removed xaxis type option for the internal monitoring function CVodeMonitor. + +## What's new in v2.2.0? + +- New features + - modified installation procedure to use a Matlab script + - added sample Matlab startup file + - (cvodes) expanded CVodeMonitor + - (kinsol) added interface to KINSOL's performance monitoring function ('Verbose' option to KINSetOptions) +- Bug fixes + - (cvodes) fixed bug in interface to quadrature integration which was causing a segmentation violation when monitoring was turned on. +- Changes to user interface + - updated to reflect changes to the SUNDIALS libraries in v.2.2.0 + - (cvodes) changed the interface for sensitivity analysis (both forward and adjoint) to follow more closely the CVODES calling sequence + - (cvodes) optional inputs for forward sensitivity analysis are now provided through a separate function, CVodeSensSetOptions + - removed NVM mex interface