[petsc-dev] Options for Solving Separate Preconditioning Matrix

Dave Nystrom dnystrom1 at comcast.net
Wed Dec 28 12:51:46 CST 2011


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



More information about the petsc-dev mailing list