[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: KSPSolveTranspose



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




-- Randall Mackie GSY-USA, Inc. PMB# 643 2261 Market St., San Francisco, CA 94114-1600 Tel (415) 469-8649 Fax (415) 469-5044

California Registered Geophysicist
License No. GP 1034