Skip to content

Implement under-relaxation for the tight-coupling iterative solver#3300

Open
luwang00 wants to merge 1 commit intoOpenFAST:rc-5.0.1from
luwang00:f/underrelaxation
Open

Implement under-relaxation for the tight-coupling iterative solver#3300
luwang00 wants to merge 1 commit intoOpenFAST:rc-5.0.1from
luwang00:f/underrelaxation

Conversation

@luwang00
Copy link
Copy Markdown
Contributor

@luwang00 luwang00 commented Apr 8, 2026

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.

  • r-test branch merging required

@jjonkman
Copy link
Copy Markdown
Collaborator

jjonkman commented Apr 9, 2026

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,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants