SUNDIALS
Suite of nonlinear and differential algebraic equation solvers
SUNDIALS grew a Python interface and started automating the choices users used to guess at
◆Recent moves
- 1mo ago
An auto-switching nonlinear solver arrives in SUNDIALS 7.8.0
SUNNonlinearSolver_Auto estimates stiffness and switches between modified Newton and fixed-point iteration, aimed at users who cannot say in advance which their problem needs. It continues the pattern set by the dominant-eigenvalue estimator in 7.5.0 — moving a judgement call from the user into the library. A batch of embedded SSP explicit and diagonally implicit Butcher tables lands with it.
View source ↗ - 4mo ago
Stage introspection and deferred allocation in SUNDIALS 7.7.0
Mostly control and observability for ARKODE: an explicit init call so allocation happens before the first evolve for users measuring memory, plus getters for the current stage index, last successful time and last state. The SSP Runge-Kutta default stage counts drop to their minimum allowable values, a behaviour change users can revert with an existing setter.
View source ↗ - 6mo ago
SUNDIALS ships official Python interfaces in 7.6.0
⚡ SPARKThe release that opens the suite to a user population it never had: sundials4py, a beta Python module built with nanobind and litgen, exposing explicit interfaces to most of SUNDIALS. Everything else in the release — constraint-failure accounting split out from solver failures in CVODE and IDA — is ordinary bookkeeping by comparison.
View source ↗ - 10mo ago
Dominant eigenvalue estimation and batched Ginkgo solvers in SUNDIALS 7.5.0
Adds a SUNDomEigEstimator interface with Power and Arnoldi implementations, which LSRKStep can use for Runge-Kutta-Chebyshev and Legendre methods instead of requiring a user-supplied eigenvalue function. A batched linear solver and matrix backed by Ginkgo also arrive, raising the minimum Ginkgo version — the first of the two moves that 7.8.0's auto-switching solver follows.
View source ↗ - 1y ago
Compensated summation extends to all of ARKODE in 7.4.0
The time-accumulator compensated summation previously confined to SPRKStep becomes available across ARKODE, with the old module-specific setter deprecated. The remainder is corrective: segfaults in the adjoint init paths after memory has been freed, a bounds check that wrongly rejected valid step-ratio settings, and a misreported statistic.
View source ↗ - 1y ago
Discrete adjoint for explicit Runge-Kutta methods in SUNDIALS 7.3.0
Adds discrete adjoint sensitivity to the ERKStep and ARKStep modules on top of new shared checkpointing and stepper classes — the foundation the adjoint statistics fixes in 7.4.0 then correct. The same release swaps ARKODE's default explicit and implicit method tables for more efficient ones at several orders, a silent behaviour change for anyone relying on defaults.
View source ↗