KSPSolveTranspose

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


  It is created.

On Mon, 25 Sep 2006, Randall Mackie wrote:

> Barry,
> 
> Do I have to create A2 (or duplicate it or something)
> before calling MatTranspose, or is it automatically created?
> The documentation is unclear about this.
> 
> Randy
> 
> 
> Barry Smith wrote:
> >   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