Implement stage-level coupling for split integration#1049
Draft
efaulhaber wants to merge 6 commits intotrixi-framework:mainfrom
Draft
Implement stage-level coupling for split integration#1049efaulhaber wants to merge 6 commits intotrixi-framework:mainfrom
efaulhaber wants to merge 6 commits intotrixi-framework:mainfrom
Conversation
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR implements stage-level coupling as opposed to the previously used step-level coupling.
In step-level coupling, the fluid is advanced a full step before the structure is advanced a full step. This reduces the stability of the main time integration, reducing the maximum stable time step by a factor of 2 (in my tests with Carpenter-Kennedy).
Stage-level coupling saves the state of the structure before a time step, and then advances it from there to the intermediate stage times of the time integrator for every stage. This means we throw away the structure solution after every stage and start integrating again from the previous time step, which requires ~3x more sub-steps than step-level coupling (in my tests with Carpenter-Kennedy). The advantage is that the stability properties of the time integrator are preserved.
Because of these downsides and the fact that this is probably only required for large time step ratios between fluid and structure, this option is turned off by default.
For 1.9e-3, I get "instability detected" with stage-level coupling. The maximum stable time step of 1.8e-3 with stage-level coupling is the same as when making the ball a moving solid wall boundary (non-elastic).
Note that we cannot do this with a CFL because the
StepsizeCallbackhas an upper limit of 1.2e-3 due to #1048.Note that something is still not right, as the larger time step makes the ball fall deeper with stage-level coupling.