Imex ConvEction Diffusion (in Python 3.x)
Implements a simple convection diffusion model -- the viscous Burger's equation. The purpose here is to prototype strong stability preserving (SSP) implicit-explicit (IMEX) additive Runge-Kutta (ARK) methods. The spatial discretizations are not given that much attention. For the hyperbolic term, I use a finite volume approach with WENO reconstructions modified from here. The diffusion term is simply finite differenced. We implement fully coupled IMEX evolution using the linear-nonlinear (LNL) SSP IMEX methods presented in Conde et al.. They present optimal SSP tableau pairs that have higher linear order than nonlinear order.
The viscious Burger's equation in one spatial dimension is
where
Here, the tableau matrix for the explicit part (from
The code is not particularly fast (it's Python) but it does what it needs to do.
- Ascher, Ruuth, and Spiteri formulate IMEX methods.
- ARK methods are investigated for convection-diffusion-reactions problems by Kennedy and Carpenter.
- Some SSP IMEX methods are developed by Higueras et al, focusing on astrophysical interest.
- Conde et al. 2017 present SSP IMEX methods with higher linear than nonlinear order (LNL methods).
- Gottlieb et al. 2001 is a nice overview of high order SSP methods.
Generalizing the ARK methods here leads to GARK (G for generalized) methods.See Sandu and Gunther These are further generalized to multirate GARK methods:
Code linting and formatting is done with ruff.
Rules are listed in ruff.toml.
To check all python in the current directory, you may ruff .
.
To format a given file according to ruff.toml
, run ruff format file.py
.