Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reformulate IMEX ARK to correctly account for Newton residuals and DSS #264

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dennisYatunin
Copy link
Member

@dennisYatunin dennisYatunin commented Mar 23, 2024

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 SparseTuples, 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.

@dennisYatunin dennisYatunin force-pushed the dy/reformulation branch 3 times, most recently from 6dfddd2 to b890aaa Compare March 23, 2024 01:36
@dennisYatunin dennisYatunin force-pushed the dy/reformulation branch 6 times, most recently from dc5f05f to 2674832 Compare April 23, 2024 18:49
@dennisYatunin dennisYatunin force-pushed the dy/reformulation branch 5 times, most recently from afa33b1 to 2db57cc Compare June 13, 2024 04:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants