Shi, > Suppose I have a diagonal matrix, what is the best way to invert it in PETSc? > Do I have to install the external packages superlu_dist or mumps? > I realized that LU or Cholesky decomposition does not work with MPIAIJ > matrices. > I also know the best way is probably to directly call Vector operations > directly. > However, I want to keep the same KSPSolve structure so that the same code can > be used for non-diagonal MPIAIJ matrices without changing each call to > KSPSolve. > Thank you very much.
Without changing your application code, i.e., keep the same KSPSolve structure, running it with the option '-pc_type jacobi' actually inverts the diagonal matrix, in both sequential and parallel cases. Install external packages superlu_dist or mumps, then run your code in sequential or parallel with -ksp_type preonly -pc_type lu -mat_type superlu_dist (work with mpiaij matrix) >> or >> -ksp_type preonly -pc_type cholesky -mat_type sbaijmumps (work with mpisbaij matrix format). Hong > > Shi >> Then you may try direct sparse linear solver, >> sequential run: >> -ksp_type preonly -pc_type cholesky >> parallel run (install external packages superlu_dist or mumps): >> -ksp_type preonly -pc_type lu -mat_type superlu_dist >> or >> -ksp_type preonly -pc_type cholesky -mat_type sbaijmumps >> >> Hong >> > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > >
