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

Using preconditioners in the adjoints of a linear solve #476

Open
ChrisRackauckas opened this issue Feb 25, 2024 · 1 comment
Open

Using preconditioners in the adjoints of a linear solve #476

ChrisRackauckas opened this issue Feb 25, 2024 · 1 comment

Comments

@ChrisRackauckas
Copy link
Member

From @avik-pal #449

Preconditioning. These need to be added to the Adjoint Sensitivity Struct. Can we use a left preconditioner for the forward problem as the transpose right preconditioner? Need someone with a better grasp of linear algebra to chime in here

@amontoison I think some Krylov methods only support pre-conditioners on one side though?

Maybe we need some way for someone to specify adjoint preconditioners?

@amontoison
Copy link
Contributor

amontoison commented Feb 25, 2024

Hi @ChrisRackauckas, Krylov methods dedicated to symmetric linear systems only support centered preconditioning (special case of left + right preconditioning) to maintain the symmetry.
But it should not be an issue for the adjoint sensitivity because A = A', so you can reuse the same preconditioner.

If the system is not symmetric, the Krylov method supports both left and right preconditioning.

For the transpose of the preconditioner, I expect the user to provide adjoint(P) as input of the solver.
But it's not always easy to do that when P is a matrix-free preconditioner.

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

2 participants