sundials-rs
Safe, idiomatic Rust bindings to the SUNDIALS ODE/DAE solver library.
Solvers
| Crate module | C library | Solves |
|---|---|---|
cvode |
CVODE | Explicit ODE IVP: y' = f(t, y) |
cvodes |
CVODES | CVODE + forward sensitivity ∂y/∂p |
ida |
IDA | Implicit DAE IVP: F(t, y, y') = 0 |
idas |
IDAS | IDA + forward sensitivity |
All four use SUNDIALS's variable-order BDF (stiff) or Adams (non-stiff) method with adaptive step-size control.
Quick start
[]
= "0.1"
# Build SUNDIALS from source (requires cmake on PATH — no system library needed):
# sundials-rs = { version = "0.1", features = ["vendored"] }
use ;
let y0 = vec!;
let mut solver = new
.rtol.atol
.build
.unwrap;
let = solver.step.unwrap;
println!;
System requirements
Without vendored feature — SUNDIALS >= 6.0 must be installed:
# Ubuntu / Debian
# macOS
With vendored feature — only cmake is required; SUNDIALS is downloaded
and built automatically.
Documentation
Full API documentation and a worked guide (CVODE, CVODES, IDA, IDAS, Robertson examples, common pitfalls) is available at docs.rs/sundials-rs.
License
Licensed under either of MIT or Apache-2.0 at your option.
SUNDIALS itself is distributed under the BSD-3-Clause license.