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 > > > > > > > > > >
