Re: [deal.II] Possible Mistake and improvement in QMRS implementation

2017-01-31 Thread Wolfgang Bangerth

On 01/31/2017 11:24 AM, Ingo Kligge wrote:


during my work with the Krylov subspace method QMRS in deal.ii I met
some problems: the implementation of the method is, as stated in the
class description, adapted from Algorithm 5.1 in /Freund/Nachtigal:
Software for simplified Lanczos and QMR algorithms, Appl. Num. Math. 19
(1995), pp. 319-341/ (e.g http://dl.acm.org/citation.cfm?id=223396)
specialized for the solution of right-preconditioned symmetric linear
systems. The deal.ii version however calculates (at least up to version
8.4.1) the *preconditioned* initial residual - I think, referring to the
cited paper and any other right-preconditioned Krylov subspace method,
it should be the *unpreconditioned* one. I've noticed very bad
convergence behaviour and breakdowns as well. What do you say? Do you
agree with my conjecture?


I implemented this ~17 years and have no recollection. I would be 
surprised if anyone else has looked at it in the meantime. If you say 
that there is a bug, I have no reason to doubt that :-)



Beside of that: I would suggest a different implementation of the
symmetric QMR-method. In an earlier paper
(https://www.researchgate.net/publication/234171461_A_new_Krylov-subspace_method_for_symmetric_indefinite_linear_system
, 1994) Freund and Nachtigal propose the essentially same algorithm
especially for solving symmetric indefinite linear systems with a
symmetric precondition matrix, that is a) flexible for right, left and
split preconditioning and b) compared to the existing deal.ii code
requires only ONE application of the precondition matrix per iteration
in the case of right preconditioning (instead of two). The best, I
think, is a hybrid of both, avoiding squaring the scalars for updating
the iterates because of possible rounding errors.

Maybe I will rewrite the method on my own. if I find the time.


Since you seem to know far more about this than I suspect any of the 
other developers, I think it would be great if you could "fix" the 
implementation we have, or write a better one. Any help would definitely 
be much appreciated!


Best
 Wolfgang

--

Wolfgang Bangerth  email: bange...@colostate.edu
   www: http://www.math.colostate.edu/~bangerth/

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[deal.II] Possible Mistake and improvement in QMRS implementation

2017-01-31 Thread Ingo Kligge
Hello everyone,

during my work with the Krylov subspace method QMRS in deal.ii I met some 
problems: the implementation of the method is, as stated in the class 
description, adapted from Algorithm 5.1 in *Freund/Nachtigal: Software for 
simplified Lanczos and QMR algorithms, Appl. Num. Math. 19 (1995), pp. 
319-341* (e.g http://dl.acm.org/citation.cfm?id=223396) specialized for the 
solution of right-preconditioned symmetric linear systems. The deal.ii 
version however calculates (at least up to version 8.4.1) the 
*preconditioned* initial residual - I think, referring to the cited paper 
and any other right-preconditioned Krylov subspace method, it should be the 
*unpreconditioned* one. I've noticed very bad convergence behaviour and 
breakdowns as well. What do you say? Do you agree with my conjecture?

Beside of that: I would suggest a different implementation of the symmetric 
QMR-method. In an earlier paper (
https://www.researchgate.net/publication/234171461_A_new_Krylov-subspace_method_for_symmetric_indefinite_linear_system
 
, 1994) Freund and Nachtigal propose the essentially same algorithm 
especially for solving symmetric indefinite linear systems with a symmetric 
precondition matrix, that is a) flexible for right, left and split 
preconditioning and b) compared to the existing deal.ii code requires only 
ONE application of the precondition matrix per iteration in the case of 
right preconditioning (instead of two). The best, I think, is a hybrid of 
both, avoiding squaring the scalars for updating the iterates because of 
possible rounding errors. 

Maybe I will rewrite the method on my own. if I find the time.

Greetings,
Ingo

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.