Skip to content

[WIP] BCGSTAB: return the iterate with the smallest residual - #2933

Open
bigfooted wants to merge 2 commits into
developfrom
fix_bcgstab
Open

bigfooted wants to merge 2 commits into
developfrom
fix_bcgstab

Conversation

@bigfooted

Copy link
Copy Markdown
Contributor

Proposed Changes

BCGSTAB does not reduce the residual monotonically. With a small iteration limit (e.g. LINEAR_SOLVER_ITER= 3) the last iterate can have a larger residual than the initial guess, and returning it gives a bad update. keeping the best iterate makes this converge for small iteration limits.

PR Checklist

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

BCGSTAB does not reduce the residual monotonically. With a small iteration
limit (e.g. LINEAR_SOLVER_ITER= 3) the last iterate can have a larger
residual than the initial guess, and returning it gives a bad update. On
the RAE2822 SA case with multigrid at CFL 200-1500 this caused erratic
divergence; keeping the best iterate makes every CFL converge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bigfooted bigfooted changed the title BCGSTAB: return the iterate with the smallest residual [WIP] BCGSTAB: return the iterate with the smallest residual Sep 27, 2026

This branch has not been deployed

No deployments
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.

1 participant