DedalusProject / dedalus

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

Add more timesteppers #102

Open kburns opened 3 years ago

kburns commented 3 years ago

We should review the literature and consult the experts (i.e. check out the schemes in DifferentialEquations.jl) to find any new time steppers that we can easily incorporate. It looks like there might be some new 4th and 5th order schemes in this recent Kennedy & Carpenter paper that could be easy to add in.

danvau98 commented 3 weeks ago

I don't know if this is the right place. I have checked other open issues, but I would like to add an adaptive stepper to the list of possible timesteppers. Do you think this would be useful?

kburns commented 3 weeks ago

Yes I think in general there would be a lot of interest in adaptive schemes, but the complication is the simplest types of explicit schemes won't work -- we need mixed implicit-explicit schemes for differential-algebraic systems. I think some of the Rosenbrock methods like those in DifferentialEquations.jl might be best, but maybe there are other good options too.

danvau98 commented 3 weeks ago

I had in mind creating a solver that uses the Dormand–Prince (RKDP - proposed tag) method, comparing the 4th-order solution to the 5th-order solution to determine whether the step size should be reduced or increased. However, I would also be happy to code some Rosenbrock methods for different orders.

kburns commented 3 weeks ago

The standard RKDP integrator is fully explicit. Dedalus requires IMEX schemes that support linearly implicit integration for algebraic constraints (like boundary conditions) and stiff terms (like diffusivities).

danvau98 commented 2 weeks ago

I have coded the embedded schemes listed in Table 8 of the [Kennedy & Carpenter paper]. I have done some light testing, but I was wondering if there are any files in 'dedalus/tests' for testing new timesteppers?