Implement under-relaxation for the tight-coupling iterative solver#3300
Open
luwang00 wants to merge 1 commit intoOpenFAST:rc-5.0.1from
Open
Implement under-relaxation for the tight-coupling iterative solver#3300luwang00 wants to merge 1 commit intoOpenFAST:rc-5.0.1from
luwang00 wants to merge 1 commit intoOpenFAST:rc-5.0.1from
Conversation
… improve numerical stability
Collaborator
|
Dear @luwang00, Thanks for this addition. Should it be that the relaxation factor reduces with each iteration of the nonlinear solve, and after convergence, the factor gets reset back to unity for the next time step? This is what we did within the nonlinear solve for the old quasi-static mooring module of FAST; I believe MAP++ does something similar. Perhaps with this method, the additional user input is not needed. Best regards, |
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 is not ready to be merged
Feature or improvement description
This PR adds under-relaxation for the tight-coupling iterative solver to address occasional solution divergence. Using an under-relaxation factor less than 1 can potentially improve the stability of numerically challenging models. It can also improve simulation time by avoiding oscillatory convergence and reducing the number of times the Jacobian needs to be updated.
Currently, a simple constant under-relaxation factor based on user input is implemented. Setting it to 1 removes under-relaxation and recovers the previous behavior. In the future, a default value such as 0.8 can be implemented. Alternatively, automatic under-relaxation based on the change in residual between successive iterations is also possible.
Impacted areas of the software
Glue-code
Test results, if applicable
r-test input files need to be updated with the new under-relaxation factor input. Results should not change if the under-relaxation factor is set to 1.