DedalusProject / dedalus

A flexible framework for solving PDEs with modern spectral methods.
http://dedalus-project.org/
GNU General Public License v3.0
472 stars 111 forks source link

Time-step stability tests (advection-diffusion first) #12

Open kburns opened 10 years ago

kburns commented 10 years ago

Original report (archived issue) by Benjamin Brown (Bitbucket: Benjamin Brown).

The original report had attachments: 1d_burgers_equation_chebyshev.png


Dedalus needs a time-step stability test suite.

We need an automated testing suite that can map out the stability domain for our different time-stepping algorithms. In particular, we should be able to create stability region maps like in Ascher et al. 1995 and Canuto et al. Appendix D, Figures D1 & D2.

In Dedalus, we can do this by solving a given linear equation set on a grid of variables, testing whether the amplitude (maybe integrated over the domain; L2 norm?) grows between successive timesteps.

Most previous work has been done semi-analytically and only addresses 2nd order finite difference or fourier spectra. An advantage over work done previously is that we can numerically map out this stability domain for chebyshev and legendre grids, where some of the answers are not well known and hueristic rules are generally applied.

We can also map this domain out for different equation sets. We should start with the simple 1-D advection-diffusion test, with

       \partial_t Y = - c \partial_x Y + \lambda \partial_{xx} Y

and constant advection speed c and diffusion coefficient lambda, but we could eventually test the thermal mode equation, etc.

This is straightforward to do for linear equation sets. Testing non-linear timestepping is more challenging, but we might look at Burgers equation (as in Ascher et al. 1995).

I can't assign this to me right now, but I'll take this on, as I need to understand why the CNAB3 timestepper is going unstable for an entropy-diffusion test.

--Ben

kburns commented 10 years ago

Original comment by Benjamin Brown (Bitbucket: Benjamin Brown).


Burgers equation is now implemented in both Fourier and Chebyshev domains.

Early results look good; we're able to at least qualitatively match [see attached figure] fig 18 from Ascher et al. (1995). This test was done with nu=0.01, dt=1e-2, and nx=64. These are different choices than Ascher et al., except nu.

kburns commented 10 years ago

Original comment by J. S. Oishi (Bitbucket: jsoishi).


Nice work, @bpbrown ! But could you give a more complete reference for Ascher et al. (1995)?

kburns commented 10 years ago

Original comment by Benjamin Brown (Bitbucket: Benjamin Brown).


A library of nice IMEX and related timestepping methods

Generating IMEX schemes up to 4th order, plus tests of stability

Ascher, U. M., Ruuth, S. J., & Wetton, B. T. (1995). Implicit-explicit methods for time-dependent partial differential equations. SIAM Journal on Numerical Analysis, 32(3), 797-823.

http://epubs.siam.org/doi/abs/10.1137/0732037

Generalizing same IMEX schemes of Ascher et al 1995 to variable step size

Wang, D., & Ruuth, S. J. (2008). Variable step-size implicit-explicit linear multistep methods for time-dependent partial differential equations. Journal of Computational Mathematics, 26(6), 838-855.

http://www.global-sci.org/jcm/volumes/v26n6/pdf/266-838.pdf

Runge-Kutta implicit-explicit methods

Ascher, U. M., Ruuth, S. J., & Spiteri, R. J. (1997). Implicit-explicit Runge-Kutta methods for time-dependent partial differential equations. Applied Numerical Mathematics, 25(2), 151-167.

http://www.sciencedirect.com/science/article/pii/S0168927497000561

Study of several 4th order methods for PDEs (constant step size only)

Kassam, A. K., & Trefethen, L. N. (2005). Fourth-order time-stepping for stiff PDEs. SIAM Journal on Scientific Computing, 26(4), 1214-1233.

http://epubs.siam.org/doi/abs/10.1137/S1064827502410633