ClimaTimeSteppers.jl
ClimaTimeSteppers.jl copied to clipboard
Reformulate IMEX ARK to correctly account for Newton residuals and DSS
Purpose
This PR reformulates the IMEX ARK timestepping scheme, as our previous version was not accounting for the inter-stage effects of DSS and residuals from Newton's method. The new formulation has been checked by Oswald and Tapio.
Since this new formulation is somewhat more complicated, I tried making things easier to read by rewriting all linear combinations as broadcast expressions. This involved replacing SparseCoeffs
with SparseTuple
s, and it had the added benefit of increasing loop fusion (i.e., it reduced the number of broadcast expressions executed on each stage).
To-do
- Reformulate the IMEX SSPRK timestepping scheme.
- Implement a fused
dss!(field_vectors...)
, and use it to avoid adding an extra DSS operation on each stage. - Check that the reformulation improves the stability of ClimaAtmos.
- Add a derivation for the new algorithm to the docs.
Content
- [ ] I have read and checked the items on the review checklist.