Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loose/Flexible GMRES #136

Open
f0uriest opened this issue Feb 27, 2025 · 3 comments
Open

Loose/Flexible GMRES #136

f0uriest opened this issue Feb 27, 2025 · 3 comments

Comments

@f0uriest
Copy link

I'm interesting in adding some new GMRES variants to Lineax that allow reusing some of the krylov vectors between restarts as well as variable and potentially nonlinear preconditioners. Would it make more sense to add them as options to the existing GMRES, or to make new solvers for each?

@patrick-kidger
Copy link
Owner

I think probably easiest to do these as options, as long as the branching isn't too complicated!
(The main bottleneck is my ability to review/maintain whatever is added.)
FWIW whilst we're on this topic, I haven't forgotten about #86, which I'd be happy to return to. (This fell off my plate entirely.)

@f0uriest
Copy link
Author

f0uriest commented Mar 1, 2025

Cool, I'll take a look at how difficult it would be. Looking at the scipy version here I think the main thing would be adding an additional arg to GMRES._gmres_compute to allow passing in additional vectors to orthogonalize against. Scipy also has a separate arg for cs used in GCROT which might also be useful in the future? Other than that it looks like mostly plumbing.

In the meantime, I've updated #86

@johannahaffner
Copy link
Contributor

The implementation of preconditioning in lx.CG might also be a useful reference here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants