freude
The freude
crate will provide steppers and integrators to solve ODEs
(ordinary differential equations). It is inspired by boost::numeric::odeint
.
Features
- Explicit fixed-step ODE solvers:
- Euler
- Heun
- Classical 4-th order Runge Kutta (RK4)
Todo:
- Implicit methods
- Adaptive steppers
- Symplectic solvers
- Generalized Runge Kutta methods (maybe via Butcher tableaus?)
Recent changes
- 0.4.0
- Complete rework and simplification of the
Ode
and Stepper
logic
Stepper
no longer contains an Ode
system but acts on Ode::State
borrows
- Removal of
Integrator
: absorbed into Stepper
- Removal of
Observer
trait
- Bump to
ndarray 0.10
- 0.3.1
- Implement steppers to work on tuples as defined in the tuple crate;
- Implement
ODE
trait for generic functions/closures on tuples.
- 0.3.0
- Update to
ndarray 0.9
- Unify
Vec
and ArrayBase
stepper states through ndarray
's Zip
and IntoNdProducer
traits
- Provide several examples as benchmarks (Kuramoto and Chaotic Neural Network models)
- 0.2.0
- Complete rework of the ODE, stepper, and integrator logic;
- System state is no longer considered an internal property of an ODE, but a
parameter passed to the stepper.
- 0.1.1
- Implement Euler and Heun methods
- 0.1.0
- Initial release
- Definition of explicit, fixed step integrators, steppers
- Definition of ODEs
- Implementation of Runge-Kutta-4 method
Trivia
The crate's name freude
is inspired by Beethoven's Ode an die Freude (“Ode to
Joy”), and can be pronounced either /ˈfʀɔɪ̯də/ or, alternatively, froy-D-E (as
in O-D-E).