I am experimenting now with solving my various linear systems with petsc using a separate preconditioning matrix. These linear systems are all banded systems arising from discretization of pdes on a 2d structured grid. My preconditioning matrix is the inner band of diagonals about the main diagonal. So, my preconditioning matrices are all band systems with a narrow bandwidth. On 4 of them, they are tridiagonal. Another is heptadiagonal. I am using lu as my preconditioner.
So, I am wondering if there are better ways to solve the preconditioning matrix with petsc than using a general sparse direct lu solver such as petsc lu. I don't know if petsc lu does anything special when it encounters a sparse matrix that is tridiagonal or banded with narrow bandwidth. I'm guessing not but it would be nice if it did. I assume that I could solve such a tridiagonal preconditioning matrix more efficiently using something like the lapack tridiagonal solver that would interface to a vendor library like MKL. I also wonder if there is much difference between the performance of the triangular solves for a tridiagonal system with vendor lapack versus normal lapack. That would seem to be the main issue since I am using the tridiagonal solve as a preconditioner that takes many iterations. Thanks for any advice, Dave
