/sundials

Official development repository for SUNDIALS - a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. Pull requests are welcome for bug fixes and minor changes.

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic equation Solvers

Version 7.0.0 (Feb 2024)

Center for Applied Scientific Computing, Lawrence Livermore National Laboratory

SUNDIALS is a family of software packages providing robust and efficient time integrators and nonlinear solvers that can easily be incorporated into existing simulation codes. The packages are designed to require minimal information from the user, allow users to supply their own data structures underneath the packages, and enable interfacing with user-supplied or third-party algebraic solvers and preconditioners.

The SUNDIALS suite consists of the following packages for ordinary differential equation (ODE) systems, differential-algebraic equation (DAE) systems, and nonlinear algebraic systems:

  • ARKODE - for integrating stiff, nonstiff, and multirate ODEs of the form $$M(t) \, y' = f_1(t,y) + f_2(t,y), \quad y(t_0) = y_0$$

  • CVODE - for integrating stiff and nonstiff ODEs of the form $$y' = f(t,y), \quad y(t_0) = y_0$$

  • CVODES - for integrating and sensitivity analysis (forward and adjoint) of ODEs of the form $$y' = f(t,y,p), \quad y(t_0) = y_0(p)$$

  • IDA - for integrating DAEs of the form $$F(t,y,y') = 0, \quad y(t_0) = y_0, \quad y'(t_0) = y_0'$$

  • IDAS - for integrating and sensitivity analysis (forward and adjoint) of DAEs of the form $$F(t,y,y',p) = 0, \quad y(t_0) = y_0(p), \quad y'(t_0) = y_0'(p)$$

  • KINSOL - for solving nonlinear algebraic systems of the form $$F(u) = 0 \quad \text{or} \quad G(u) = u$$

Installation

For installation directions see the online install guide, the installation chapter in any of the package user guides, or INSTALL_GUIDE.pdf.

Warning to users who receive more than one of the individual packages at different times: Mixing old and new versions of SUNDIALS may fail. To avoid such failures, obtain all desired package at the same time.

Support

Full user guides for all of the SUNDIALS packages are available online and in the doc directory. Additionally, the doc directory contains documentation for the package example programs.

For information on recent changes to SUNDIALS see the CHANGELOG or the introduction chapter of any package user guide.

A list of Frequently Asked Questions on build and installation procedures as well as common usage issues is available on the SUNDIALS FAQ. For dealing with systems with unphysical solutions or discontinuities see the SUNDIALS usage notes.

If you have a question not covered in the FAQ or usage notes, please submit your question to the SUNDIALS mailing list.

Contributing

Bug fixes or minor changes are preferred via a pull request to the SUNDIALS GitHub repository. For more information on contributing see the CONTRIBUTING file.

Citing

See the online documentation or CITATIONS file for information on how to cite SUNDIALS in any publications reporting work done using SUNDIALS packages.

Authors

The SUNDIALS library has been developed over many years by a number of contributors. The current SUNDIALS team consists of Cody J. Balos, David J. Gardner, Alan C. Hindmarsh, Daniel R. Reynolds, and Carol S. Woodward. We thank Radu Serban for significant and critical past contributions.

Other contributors to SUNDIALS include: James Almgren-Bell, Lawrence E. Banks, Peter N. Brown, George Byrne, Rujeko Chinomona, Scott D. Cohen, Aaron Collier, Keith E. Grant, Steven L. Lee, Shelby L. Lockhart, John Loffeld, Daniel McGreer, Yu Pan, Slaven Peles, Cosmin Petra, Steven B. Roberts, H. Hunter Schwartz, Jean M. Sexton, Dan Shumaker, Steve G. Smith, Shahbaj Sohal, Allan G. Taylor, Hilari C. Tiedeman, Chris White, Ting Yan, and Ulrike M. Yang.

License

SUNDIALS is released under the BSD 3-clause license. See the LICENSE and NOTICE files for details. All new contributions must be made under the BSD 3-clause license.

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.

SPDX-License-Identifier: BSD-3-Clause

LLNL-CODE-667205  (ARKODE)
UCRL-CODE-155951  (CVODE)
UCRL-CODE-155950  (CVODES)
UCRL-CODE-155952  (IDA)
UCRL-CODE-237203  (IDAS)
LLNL-CODE-665877  (KINSOL)