numra-ode
ODE and DAE solvers for the Numra workspace — with forward sensitivity, event detection, and automatic stiffness handling.
Solves initial-value problems dy/dt = f(t, y), y(t0) = y0 with explicit Runge-Kutta, implicit Runge-Kutta, and multistep methods. Includes forward sensitivity analysis, DAE consistent-initialization, structural index reduction, event handling, and parameter-uncertainty propagation.
Example
use ;
// Lorenz system
let problem = new;
let opts = default.rtol;
let result = solve.unwrap;
What's in this crate
Solver families:
| Family | Solvers |
|---|---|
| Explicit Runge-Kutta (non-stiff) | DoPri5, Tsit5, Vern6, Vern7, Vern8 |
| Implicit Runge-Kutta (stiff) | Radau5, Esdirk32, Esdirk43, Esdirk54 |
| Multistep | Bdf (variable order 1–5) |
| Automatic selection | Auto, auto_solve, auto_solve_with_hints |
Additional capabilities:
- Forward sensitivity:
ParametricOdeSystem,solve_forward_sensitivity,SensitivityResult - DAEs:
DaeProblem,compute_consistent_initial, structural index reduction (reduce_dae_problem,analyze_dae_index) - Events: zero-crossing detection with state resets (
bouncing_ball-style) - Uncertainty:
UncertainParam,solve_with_uncertainty,solve_monte_carlo - Diagnostics:
SolverStatson every result (accepted/rejected steps, function/Jacobian/LU evaluations)
Composes with
ODE trajectories from this crate flow into:
numra-interpfor cubic-spline / Akima resampling of the trajectory onto arbitrary pointsnumra-integratefor quadrature of functions defined on the trajectorynumra-fftfor spectral analysis of the solutionnumra-signalfor peak detection and filtering on the solutionnumra-ocpfor parameter estimation of ODE models against measured data
See interop workflows for verified end-to-end examples.
Install
[]
= "0.1"
Or pull in the whole Numra workspace via the umbrella crate:
[]
= "0.1"
Documentation
- API: https://docs.rs/numra-ode
- Book: Solving ODEs · Stiff systems
- Source: https://github.com/moussaoutlook/numra-rs/tree/main/numra-ode
License
Numra Academic & Research License (Non-Commercial). Academic and research use is free; commercial use requires a separate license — contact contact@spectralautomata.com. See LICENSE.