Download SUNDIALS Software
Latest release (March 2020)
Our latest release, v5.2.0, contains various bug fixes, and minor improvements as well as a new SUNMatrix interface to the NVIDIA cuSPARSE CSR matrix, and a new “stiff” interpolation module in ARKode, based on Lagrange polynomial interpolation, that is accessible to each of the ARKStep, ERKStep and MRIStep time-stepping modules. Our previous major release v5.0.0 (October 2019) included:
- two new NVector implementations created to support flexible partitioning of solution data among different processing elements (e.g., CPU + GPU) or for multi-physics problems that couple distinct MPI-based simulations together: NVECTOR_MANYVECTOR, amd NVECTOR_MPIMANYVECTOR,
- an additional NVector implementation, NVECTOR_MPIPLUSX, has been created to support the MPI+X paradigm where X is a type of on-node parallelism (e.g., OpenMP, CUDA),
- one new required NVector operation, N_VGetLength, and ten new optional vector operations have been added to the NVector API,
- two new SUNLinearSolver implementations, SUNLINEARSOLVER_SUPERLUDIST which interfaces with the SuperLU_DIST distributed, sparse, linear solver library, and the SUNLINEARSOLVER_CUSOLVERSP_BATCHQR, which interfaces to the cuSOLVE sparse batched QR linear solver,
- a new SUNNonlinearSolver implementation, SUNNONLINSOL_PETSCSNES, which provides an interface to the PETSc SNES API,
- new Fortran 2003 interface modules that provide Fortran users access to most of the SUNDIALS C API including ARKode, CVODE(S), IDA(S), and KINSOL,
- support for using explicit, implicit, or IMEX methods as the fast integrator with the MRIStep time-stepper in ARKode,
- and several other minor changes and bug fixes.
The complete list of all changes is available on our Release History page. In addition to the software release, the SUNDIALS team has published a technical report, “SUNDIALS Multiphysics+MPIManyVector Performance Testing,” on the performance of the new NVECTOR_MPIMANYVECTOR implementation.
As of September 2016 we are no longer updating sundialsTB and have gotten reports of it being broken. As such, we have removed sundialsTB from the distribution until the development team has some cycles to spend updating it. We are optimistic that this will happen soon. The sundialsTB Matlab toolbox was included in releases of SUNDIALS v2.4.0-2.6.2, although it was not updated for the 2.6.x releases.
We are very grateful to our user community and continue to appreciate user bug reports and suggestions. To send suggestions, report bugs, or inquire about general usage, we ask that you subscribe to our User Mailing List. Through this list, you will get updates and gain access to our vibrant user community. When submitting information about a bug, please include as much relevant information as possible, including the package and version number being used. For compile and runtime problems, please include the machine type, operating system, third party library (e.g., MPI) implementation, compiler, and any error messages produced. As of January 2019, SUNDIALS also accepts contributions via pull requests to the SUNDIALS GitHub repository. Before contributing we ask that you review our Contributing Agreement.
Users interested in more than one of the SUNDIALS packages are encouraged to download the entire suite at the same time. This reduces the risk of using incompatible versions of the packages and shared modules.
The SUNDIALS packages are released open source, under a BSD license.
The only requirements of the BSD license are preservation of copyright and a standard disclaimer of liability.
**Please Note** If you are using SUNDIALS with any third party libraries linked in (e.g., LAPACK, KLU, SuperLU_MT, PETSc, or hypre), be sure to review the respective license of the package as that license may have more restrictive terms than the SUNDIALS license. For example, if someone builds SUNDIALS with a statically linked KLU, the build is subject to terms of the LGPL license (which is what KLU is released with) and *not* the SUNDIALS BSD license anymore.