freude 0.6.0

An ODE library for ndarray providing some simple, fixed-step integrators
Documentation

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
    • DOPRI, RKF45
  • Symplectic solvers
  • Generalized Runge Kutta methods (maybe via Butcher tableaus?)

Recent changes

  • 0.5.0
    • Require ndarray 0.11, bump all related dependencies
  • 0.4.0-dev
    • Update benchmarks to work with v0.4.0
  • 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).