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 [email protected]. For more options, visit https://groups.google.com/d/optout.
