- 1. Modelling with Diffsol
- 1.1. Explicit First Order ODEs
- 1.1.1. Example: Population Dynamics
- 1.2. Higher Order ODEs
- 1.2.1. Example: Spring-mass systems
- 1.3. Discrete Events
- 1.3.1. Example: Compartmental models of Drug Delivery
- 1.3.2. Example: Bouncing Ball
- 1.4. DAEs via the Mass Matrix
- 1.4.1. Example: Electrical Circuits
- 1.5. PDEs
- 1.5.1. Example: Heat Equation
- 1.5.2. Example: Physics-based Battery Simulation
- 1.6. Forward Sensitivity Analysis
- 1.6.1. Example: Fitting a predator-prey model to data
- 1.7. Backwards Sensitivity Analysis
- 1.7.1. Example: Fitting a spring-mass model to data
- 1.7.2. Example: Weather prediction using neural ODEs
- 2. Diffsol APIs for specifying problems
- 2.1. DiffSL
- 2.2. Rust closures
- 2.2.1. Explicit
- 2.2.2. Implicit
- 2.2.3. Mass matrix
- 2.2.4. Root finding
- 2.2.5. Forward Sensitivity
- 2.2.6. Sparse problems
- 2.3. OdeEquations trait
- 2.3.1. Non-linear functions
- 2.3.2. Constant functions
- 2.3.3. Linear functions
- 2.3.4. ODE systems
- 3. Creating a solver
- 3.1. Initialisation
- 3.2. Tableau
- 4. Solving the problem
- 4.1. Manual time-stepping
- 4.2. Interpolation
- 4.3. Stopping
- 4.4. Forward Sensitivities
- 5. Benchmarks
- 5.1. Sundials
- 5.2. Python (Diffrax & Casadi)