[petsc-users] Problem with MATSOLVERPASTIX using KSPSolveTranspose

Barry Smith bsmith at mcs.anl.gov
Thu Aug 7 20:58:05 CDT 2014


  Yes, you would need to locate MatSolve_PaStiX() in pastix.c  make a copy of the function as needed to do the transpose solve and then 

where you find 

  if (lu->matstruc == DIFFERENT_NONZERO_PATTERN) {
    (F)->ops->solve = MatSolve_PaStiX;

add the function pointer for the transpose solve.

See https://bitbucket.org/petsc/petsc/wiki/Home (and follow the link to Read detailed instructions for Git for detailed information) in such a way that you can easily contribute your additions back to PETSc so everyone can benefit from the transpose solve.

   Barry



On Aug 7, 2014, at 4:36 PM, Zin Lin <zinlin.zinlin at gmail.com> wrote:

> Is there any chance that I could implement the transpose solve with PCApplyTranspose etc on my own (rather than using a new KSP and PC context which re-factorizes the transpose matrix)? 
> 
> Thanks
> Zin
> 
> 
> 
> On Fri, Jul 25, 2014 at 4:36 PM, Jed Brown <jed at jedbrown.org> wrote:
> Zin Lin <zinlin.zinlin at gmail.com> writes:
> 
> > Hi,
> >
> > I am having trouble calling KSPSolveTranspose under MATSOLVERPASTIX.
> > The following is a very simple C code solving A^T x = b to illustrate the
> > issue. The matrix A and vector b are built following the PETSC tutorial.
> > KSPSolve works fine but when it comes to KSPSolveTranspose, it spits out
> > the error:
> >
> > [0]PETSC ERROR: --------------------- Error Message
> > ------------------------------------
> > [0]PETSC ERROR: No support for this operation for this object type!
> > [0]PETSC ERROR: Matrix type mpiaij!
> >
> > The code runs fine if I change the solver package MATSOLVERPASTIX to
> > MATSOLVERMUMPS.
> > However, I need the PASTIX solver and the transpose solution for solving a
> > large problem.
> > Could you please let me know what is wrong with the PASTIX solver or with
> > my usage?
> 
> The contributed PaStiX interface does not include
> MatSolveTranspose_PaStiX.  If there is a way to do this in PaStiX, it
> should be added to the interface.
> 
> 
> 
> -- 
> Zin Lin
> 



More information about the petsc-users mailing list