Skip to content

Use Classical Gram–Schmidt twice instead of Modified G-S with conditional re-orthogonalization.#2791

Merged
pcarruscag merged 8 commits intodevelopfrom
pedro/double_cgs
Apr 22, 2026
Merged

Use Classical Gram–Schmidt twice instead of Modified G-S with conditional re-orthogonalization.#2791
pcarruscag merged 8 commits intodevelopfrom
pedro/double_cgs

Conversation

@pcarruscag
Copy link
Copy Markdown
Member

Proposed Changes

Doing CGS twice is faster (if not implemented naively) and at least as robust.

  • other small linear algebra improvements.

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.

@bigfooted
Copy link
Copy Markdown
Contributor

Nice! So it's faster per iteration, not faster because it converges in less iterations I guess? How much faster re we talking about?

@pcarruscag
Copy link
Copy Markdown
Member Author

Yes per iteration. Maybe 1.4x for the orthogonalization part, which is only significant for many linear iterations since it scales quadratically.
So this is mostly for Adjoints with GMRES and FEA/Heat problems.

@pcarruscag pcarruscag merged commit 3e9bd73 into develop Apr 22, 2026
5 of 20 checks passed
@pcarruscag pcarruscag deleted the pedro/double_cgs branch April 22, 2026 12:38
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