1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
// sir_ddft - A Rust implementation of the SIR-DDFT model // Copyright (C) 2021 Julian Jeggle, Raphael Wittkowski // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. //! This crate contains solvers for the SIR model, the spatial SIR model extension //! including diffusion and a [novel SIR model based on dynamical density //! functional theory](https://doi.org/10.1038/s41467-020-19024-0). //! //! Usage //! ----- //! Basic usage follows the same pattern for all models: //! //! ``` //! // Setup parameters and initial state //! let params = SIRParameters::new(0.5, 0.1); //! let state = SIRState::new(0.998, 0.002, 0.); //! // Create the IVP and solver //! let mut ivp = SIRODEIVP::new(params, state); //! let solver = RKF45Solver::<SIRODEIVP>::new(); //! // Integrate for some time //! ivp.add_time(2.0); //! solver.integrate(&mut ivp); //! // Retrieve the result //! let (t,state) = ivp.get_result(); //! ``` pub mod ode; mod sir; mod sir_solver; mod sir_diffusion_solver_1d; mod sir_diffusion_solver_2d; mod sir_ddft_solver_1d; mod sir_ddft_solver_2d; mod helpers; pub use sir::*; pub use sir_solver::*; pub use sir_diffusion_solver_1d::*; pub use sir_diffusion_solver_2d::*; pub use sir_ddft_solver_1d::*; pub use sir_ddft_solver_2d::*;