Dear Tim, It is possible to carry out the explicit inversion of a sparse matrix using the PETSc framework with the methodology you outlined below. I would encourage you to consider Cholesky/LU factorizations of the matrix, which occassionally result in sparser triangular solve times than an explicit inverse-matrix-vector multiply would.
As for the correct way to do this, I would start with the fastest methods for multiple right hand sides and reasonably sized matrices, a direct method such as LU. I'm unaware of any functionality in PETSc for handling multiple right hand sides, but PETSc will keep the factorization from a previous direct solve, so A\b2 will be much faster than A\b1. I think the best bet is a naive for loop over each of the vectors to assemble the matrix piece by piece. The PETSc developers may have some more thoughts on this. Good luck, ~Aron On 8/15/07, Dr. Timothy Stitt <timothy.stitt at ichec.ie> wrote: > Hi all, > > I am currently investigating the best way to perform the inversion of a > large sparse matrix and came upon the idea of using PETSc as a framework > for testing various strategies from direct to iterative methods on my > sample matrices. In this setup for an NxN sparse matrix A I would have N > rhs's representing the Identity matrix and then solve for X. I wanted to > experiment with both parallel and serial strategies ranging from LU > Decomposition using SuperLU, MUMPS etc. to iterative methods using GMRES > etc. Am I right in thinking that all this can be done in PETSc by > setting up a core framework and then varying the solver methods etc? > > I have looked over the sample KSP Solver codes although they only seem > to suggest single vectors for x and b. Can this be changed to accept > multiple vectors? Can anyone suggest a sample code that maybe > demonstrates the sort of thing I want to achieve...if it is in fact > possible. > > Thanks in advance for any assistance given, > > Regards, > > Tim. > >
