Skip to content

KSPQMR: implementation of the QMR solver

Damien Mancy requested to merge dmancy/petsc:dmancy/ksp-addkspqmr into main

This MR adds the KSPQMR krylov solver based on the QMR algorithm as described in 'Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods' (R. Barrett, 1994). As written in the book, it uses an upper bound for the true residual for right preconditioning and skips the residual evaluation. The solution is computed at each iteration.

The preconditioner side can be set to symmetric only with ICC and jacobi preconditioners.

I created src/ksp/ksp/tutorials/ex80.c to test the QMR preconditioner. The first test reproduces the convergence in the Matlab version of QMR in this link in the section "Supplying Initial Guess": https://www.mathworks.com/help/matlab/ref/qmr.html

Merge request reports