From fc38e4184bc7d23e5c22f9c6ff65eb2612aa3a36 Mon Sep 17 00:00:00 2001 From: martinjrobins Date: Tue, 16 Apr 2024 12:59:48 +0000 Subject: [PATCH] #30 update readme --- README.md | 13 ++++++++----- src/lib.rs | 5 +++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 83a3d7f9..a7e5b7ef 100644 --- a/README.md +++ b/README.md @@ -17,11 +17,14 @@ implementing the various vector and matrix traits in diffsol. ## Features -DiffSol has two implementations of the Backward Differentiation Formula -(BDF) method, one in pure rust, the other wrapping the [Sundials](https://github.com/LLNL/sundials) IDA solver. -This method is a variable step-size implicit method that is suitable for -stiff ODEs and semi-explicit DAEs and is similar to the BDF method in MATLAB's -`ode15s` solver or the `bdf` solver in SciPy's `solve_ivp` function. +DiffSol implements the following solvers: +- A variable order Backwards Difference Formulae (BDF) solver, suitable for stiff problems and singular mass matrices. +- A Singly Diagonally Implicit Runge-Kutta (SDIRK or ESDIRK) solver, suitable for moderately stiff problems and singular mass matrices. You can use your own butcher tableau or use one of the provided (`tr_bdf2` or `esdirk23`). +- A BDF solver that wraps the IDA solver solver from the [Sundials library](https://github.com/LLNL/sundials) (requires the `sundials` feature). This is similar to the BDF solver above and is include for comparison purposes. + +All solvers feature adaptive step-size control to given tolerances, and dense output. +For comparison, the BDF solvers are similar to MATLAB's `ode15s` solver or the `bdf` solver in SciPy's `solve_ivp` function. +The ESDIRK solver using the provided `tr_bdf2` tableau is similar to MATLAB's `ode23t` solver. Users can specify the equations to solve in the following ODE form: diff --git a/src/lib.rs b/src/lib.rs index edd9f60e..6edff2bf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,8 +12,9 @@ //! [Matrix] trait. You can also use the [sundials](https://computation.llnl.gov/projects/sundials) library for the matrix and vector types (see [SundialsMatrix]). //! //! To solve the problem, you need to choose a solver. DiffSol provides the following solvers: -//! - A pure rust Backwards Difference Formulae [Bdf] solver, suitable for stiff problems and singular mass matrices. -//! - The IDA solver solver from the sundials library ([SundialsIda], requires the `sundials` feature). +//! - A Backwards Difference Formulae [Bdf] solver, suitable for stiff problems and singular mass matrices. +//! - A Singly Diagonally Implicit Runge-Kutta (SDIRK or ESDIRK) solver [Sdirk]. You can use your own butcher tableau using [Tableau] or use one of the provided ([Tableau::tr_bdf2], [Tableau::esdirk23]). +//! - A BDF solver that wraps the IDA solver solver from the sundials library ([SundialsIda], requires the `sundials` feature). //! //! See the [OdeSolverMethod] trait for a more detailed description of the available methods on each solver. //!