SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers

We appreciate hearing about uses of SUNDIALS. If you’ve used SUNDIALS, drop us a line and let us know. Feel free to send citations to publications or graphics for our list.

SUNDIALS is included in Third Party Library Distributions

  • Red Hat Extra Packages for Enterprise Linux (EPEL)
    • Old versions in Debian and Ubuntu
  • SciPy
    • Includes a Python wrap of SUNDIALS
  • Assimulo - python package providing numerous ODE and DAE integrators
    • Wrap of CVODE and IDA
  • Cray Third Party Software Library (TPSL)
    • Installed on ORNL Titan machine
  • AMP - advanced multiphysics package (ORNL)
    • Provides interoperability between SUNDIALS, PETSc, Trilinos, hypre, SAMRAI, MOAB, and many other numerical and system libraries
  • DifferentialEquations.jl -a comprehensive suite for solving differential equations in Julia
    • This package sits in the middle of the JuliaDiffEq Github Organization by providing a common interface to all of the solvers in the ecosystem. This ecosystem connects all of the component solvers to easy plotting, parameter estimation, sensitivity analysis, benchmarking. etc. tools.
  • Arch User Repository (AUR) of ArchLinux
    • Includes SUNDIALS with description here.

Users & Uses

  • ParFLOW - uses KINSOL to solve nonlinear systems in subsurface flow and subsurface flow coupled with overland flow
  • CasADi - a symbolic framework for algorithmic (a.k.a. automatic) differentiation and numeric optimization.
    • Uses SUNDIALS (CVODES, IDAS, and KINSOL) as back-end solvers for dynamic optimization
  • AMICI - Advanced Matlab Interface to CVODES and IDAS
  • Nmag and Magpar
    • use CVODE to solve stiff ODEs on a finite element mesh to solve for dynamics of magnetism at the nanoscale
  • ParaDis at LLNL
    • uses KINSOL and ARKode for solving large-scale dislocation dynamics problems
  • RTE France
    • uses IDA and KINSOL in power grid simulations
  • Neuron - simulations of neurons and networks of neurons
  • GridDyn at LLNL
    • uses IDA and KINSOL for transmission power grid simulations
  • AMPERES  - a 3D battery simulator built on AMP at ORNL
  • NASA
    • uses CVODE/CVODES for spacecraft trajectory simulations
  • NumCosmo
    • All ODE solving is done on top of SUNDIALS, from the calculus of the cosmological distances, to the thermodynamics of recombination and the Boltzmann code for cosmological perturbations.
  • Wasora - an advanced suite for optimization and reactor analysis, uses IDA for solving DAEs
  • Cantera - chemical kinetics, thermodynamics, and transport processes
    • CVODES used for simulating chemical reactor networks, with a particular emphasis on the stiff equations arising from combustion problems such as autoignition, and calculating sensitivities with respect to the reaction rates.
  • CySim Carbon Capture
    • using IDA in the simulation of general adsorption systems
  • ParScale - tool for intra-particle transport modelling (Stefan Radl at Graz University of Technology, Austria)
    • uses CVODE as the integrator for ParScale tool for models of intra-particle transport.  These models can be coulped to the simulation platform “CFDEM”.
    • These systems enable full-physics simulations of reactive disperse multiphase flows.
  • Sundials/ML developed by Inria PARKAS research group is an OCaml interface to the entire Sundials suite except for the Hypre and PETSC nvectors. It allows the Sundials solvers to be used from programs written in OCaml. This interface is described in a recent workshop paper.

  • Zélus builds on Sundials/ML (and by extension Sundials) and is a synchronous language extended with Ordinary Differential Equations (ODEs) to model systems with complex interaction between discrete-time and continuous-time dynamics. It is described in this paper.

  • Individual users
    • “I used Kinsol in a reactive transport (geochemistry) code, to simulate (very simplified) models of CO2 storage.  We implemented a Newton-Krylov in matrix free mode on top of the finite element code LifeV.  Kinsol was used to couple a transport code (advection diffusion) with a chemical equilibrium code. Being Jacobian free meant that we could keep both modules mostly separate.”
    • “[I used] CVODE successfully at my last job where we built systems biology models which are often quite stiff in nature.”