4 releases
Uses new Rust 2024
| 0.0.3 | Jul 16, 2025 |
|---|---|
| 0.0.2 | Jun 16, 2025 |
| 0.0.1 | May 17, 2025 |
| 0.0.0 | May 11, 2025 |
#8 in #runge-kutta
185KB
3.5K
SLoC
Diffurch
The library, that implements numerical methods for solving ordinary and delay differential equations.
Documention
For documentation, refer to docs.rs/diffurch.
lib.rs:
diffurch is a library that implements numerical methods
for ordinary and delay differential equations.
Supported types of equations
- Continuous ODEs (Ordinary Differential Equations).
- Non-sliding discontinuous or impulse ODEs (*).
- Continuous or impulse (neutral) DDEs (Delay Differential Equations) with constant or variable non-vanishing delays.
- Non-sliding discontinuous (neutral) DDEs with constant or variable non-vanishing delays (*).
(here (*) means that kind of equation is supported using an event system rather than by using discontinuous functions directly in equation)
Features
- Event detection
- Event filtering
- Delay-induced discontinuity propagation
- Dense output
- Wide range of explicit Runge-Kutta methods with interpolation
- (not yet) Automatic step size control
Goals
- Peak performance: as much as possible is done at compile time, avoiding dynamic dispatch or unnecessary runtime branching.
- Support for ODEs and DDEs, including neutral DDEs.
- Support for discontinuous, impulse, and hybrid equations.
- Ergonomics, minimal boilerplate: use of convenience macros to wrap closures and (not yet there) simple symbolic system.
Dependencies
~215KB