Crate diffurch

Source
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.