JuliaLinearAlgebra / IterativeSolvers.jl

Iterative algorithms for solving linear systems, eigensystems, and singular value problems
MIT License
403 stars 106 forks source link

IDRS: Move preconditioning #302

Closed h-larsson closed 2 years ago

h-larsson commented 2 years ago

The location of the preconditioner did not seem right. According to [1], it should be applied after v = r - G c. Currently, the preconditioner is only applied to G c

[1] ACM Trans. Math. Software,, Vol. 38, No. 1, pp. 5:1-5:19, 2011, Fig 23

coveralls commented 2 years ago

Pull Request Test Coverage Report for Build 1383627942


Totals Coverage Status
Change from base Build 888541031: -1.3%
Covered Lines: 1712
Relevant Lines: 1779

💛 - Coveralls
coveralls commented 2 years ago

Pull Request Test Coverage Report for Build 1386804732


Totals Coverage Status
Change from base Build 888541031: 0.0%
Covered Lines: 1734
Relevant Lines: 1778

💛 - Coveralls
mschauer commented 2 years ago

Thanks for catching that. Would be nice if we can add a test showing that the preconditioner works now

mschauer commented 2 years ago

We could check how the change affects https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/blob/master/test/idrs.jl#L60

mschauer commented 2 years ago

https://github.com/h-larsson/IterativeSolvers.jl/pull/1 (please merge into your branch) sharpens the tests, in a way that they will fail with the wrong order and pass with your right order. CC @deltaeecs