KSPSolveTranspose

Barry Smith bsmith at mcs.anl.gov
Mon Sep 25 19:42:18 CDT 2006


  Randy,

   Why not just call MatTranspose(A,A2,ierr)
   call MatTranspose(P,P2,ierr)
   KSPSetOperators(ksp,A2,P2... etc?



On Mon, 25 Sep 2006, Randall Mackie wrote:

> If one calls KSPSolveTranspose, how does PETSc actually do the solve?
> Does it simply use the transpose of the pre-computed preconditioner
> as the preconditioner for the Transpose solve, or does it recompute
> the ILU of the transpose matrix? I suspect they are not the same.

   It uses MatMultTranspose() and PCApplyTranspose(). So, no it does not
refactor the matrix.

   Barry

> 
> As posted in earlier emails, the preconditioned and true residual numbers
> don't seem correct to me, but the results are fine (I have other ways
> to check the results).
> 
> I've tried taking the transpose of the matrix within my Fortran
> code, but I'm not quite sure how to get this to work. It requires
> passing of a NULL pointer, but it's not clear how to do this
> in Fortran.
> 
> What I would like to do is to get the transpose of my matrix within
> my code, and then do a KSPSolve on that to confirm whether the
> residual numbers I'm getting from KSPSolveTranspose are correct.
> 
> Any pointers on doing this would be appreciated.
> 
> Randy
> 
> 




More information about the petsc-users mailing list