Skip to content

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 9 times, most recently from f088265 to c2d81b6 Compare April 8, 2024 16:00
@dennisYatunin dennisYatunin force-pushed the dy/reformulation branch 8 times, most recently from 65783f9 to b6de19d Compare April 16, 2024 21:08
@dennisYatunin dennisYatunin force-pushed the dy/reformulation branch 2 times, most recently from 1dbbd77 to d0f93a8 Compare April 16, 2024 23:51
@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