Closed alexQueue closed 1 year ago
Hi @alexQueue!
GMRES should stop when ||r_k|| <= atol + rtol * ||r_0||
.
The initial residual r_0
is b
.
You can set rtol=0.0
in your case.
I still don't understand why GMRES stops before that ||r_k|| <= 1.9 * 1e-5
is reached.
Can you save and share your linear system with MatrixMarket.jl?
@alexQueue Can you give me an update about your issue?
@amontoison Ah I was sure I replied. You were correct. Using rtol=0.0 fixed it. It seems like I was misunderstanding the meaning of rtol.
I've been banging my head against this issue for a few days now.
I have a system, and am setting my tolerances to 1e-9, and my solution converges "good enough given atol and rtol", however I get a much worse residual than 1e-9 and I'm trying to understand why. I assume there is an internal residual measure that is used as a stopping criterion that is different from the one that is output. I've run it in a number of configurations and get the same behavior (using atol, using rtol, using both, using a preconditioner, not using a preconditioner, measuring residual directly via a callback (not yet working as expected):
Here's an example output:
Julia 1.7 (I'm unable to update on this server), Krylov.jl 0.9.1
Thanks for any help!