Expand description
Diffurch is a library that implements numerical methods for ordinary and delay differential equations. It features a wery flexible event system for controlling the output of the solver, dense output, and event location.
Re-exports§
pub use equation::*;
pub use event::*;
pub use filter::*;
pub use initial_condition::*;
pub use loc::*;
pub use solver::*;
pub use state::*;
Modules§
- equation
- Defines Equation, which holds the right hand side of the equation.
- event
- Defines Event
- filter
- Defines crate::Filter trait for filtering callbacks in crate::Event and crate::Loc.
- initial_
condition - Defines InitialCondition.
- loc
- D1efines Loc struct, which is an event locator
- polynomial
- Defines crate::polynomial! macro and crate::polynomial::Differentiable conatiner for pairs of closures.
- rk
- In this module, RungeKuttaTable struct and many known Runge-Kutta methods are defined.
- solver
- Defines Solver.
- state
- Defines State, the core object which is acted upon during integration.
Macros§
- equation
- Creates a crate::Equation from a closure.
- event
- Creates a crate::Event from a closure.
- event_
mut - State-mutating counter-part of event!.
- generic_
rk_ order2 - Macro declares a static RungeKuttaTable<2> of order 2 with linear interpolantion, and Euler method as an embedded scheme. https://en.wikipedia.org/wiki/List_of_Runge%E2%80%93Kutta_methods#cite_ref-butcher_1-0
- generic_
rk_ order3 - Macro declares a static RungeKuttaTable<3> of order 3 with linear interpolantion, and embedded order 2 method https://en.wikipedia.org/wiki/List_of_Runge–Kutta_methods
- polynomial
- Produces [crate::util::with_derivative::Differentiable] that holds a polynomial, produced by crate::polynomial_closure and its derivative closure, produced by crate::polynomial_derivative_closure.
- polynomial_
closure - Produce a fn(f64) -> f64 closure that represents a polynomial function with given coefficients.
- polynomial_
derivative_ closure - Same as crate::polynomial_closure, but produces a closure, that corresponds to differentiated polynomial function.