How can I use BICGStab on a matrix with zero entries on the diagonal

Barry Smith bsmith at mcs.anl.gov
Sat Aug 18 16:20:22 CDT 2007



On Thu, 16 Aug 2007, Matthew Knepley wrote:

> On 8/16/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> >
> >
> > On Sun, 12 Aug 2007, Zhu Liang wrote:
> >
> > > Yes, you are right, I am trying to solve Oseen equation.
> > >
> > > I tried using preconditioner PCILU(1) which works well.
> > > But for PCILU(0) it did not work, as well as PCBJACOBI.
> > > I have tried to insert zero on the diagonal, but it still does not work.
> > >
> > > In your opinion, what is the best parallel solver and preconditioner
> > > for the Oseen equation ?
> >
> >    Black box? I wish I did!
> >
> >    Matt, when are we going to add a "general purpose" Stokes solver to PETSc?
> > Does that question even make sense?
> 
> It makes sense if we know more about the discretization and weak form. There
> are a few good ways to solve Stokes: block smoothers on an element-by-element
> basis, block triangular preconditioning by field, efficient projection onto the
> null space of B.
> These all require that we can slice up the unknowns correctly.

   Please be specific here; do you mean more than just saying which values 
are in the lower block and which are not?

> Once people buy into my discretization framework, which will happen shortly
> after I finish coding it, we can start to get this going. I have a
> Stokes example
> now, without any of these nifty solvers :) They will get done this fall.
> 
>   Matt
> 
> >    Barry
> >
> > >
> > > Thanks for your reply.
> > > Liang
> > >
> > > On 8/12/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
> > > >
> > > >
> > > >   It is not really the BiCGstab Krylov solver that it complaining;
> > > > it is the default ILU or block Jacobi with ILU on the blocks that is
> > > > complaining.
> > > >
> > > >   You first need to make sure you insert 0 entries on the all the diagonal
> > > > entries that are 0. BUT given the structure of your matrix you may want
> > > > to think about solvers that specifically handle that type of matrix.
> > > >
> > > >    Barry
> > > >
> > > > Stokes type solvers?
> > > >
> > > >
> > > > On Mon, 13 Aug 2007, Zhu Liang wrote:
> > > >
> > > > > By the way, the block of my matrix is like :
> > > > >
> > > > > U ,     a
> > > > > A^T ,   0
> > > > >
> > > > >
> > > > >
> > > > > ---------- Forwarded message ----------
> > > > > From: Zhu Liang <liangcanada at gmail.com>
> > > > > Date: Aug 13, 2007 5:46 AM
> > > > > Subject: How can I use BICGStab on a matrix with zero entries on the
> > > > > diagonal
> > > > > To: petsc-users at mcs.anl.gov
> > > > >
> > > > >
> > > > > Dear petsc-users
> > > > >
> > > > > When I try to solve a linear equation Ax=b with BicgStab preconditioner,
> > > > I
> > > > > got
> > > > > an error "Matrix is missing diagonal number".  That is because I have
> > > > zeros
> > > > > on
> > > > > the diagonal of the matrix.
> > > > >
> > > > > I am wondering if there is some simple method to avoid that?
> > > > >
> > > > > Best,
> > > > > Liang
> > > > >
> > > >
> > > >
> > >
> >
> >
> 
> 
> 




More information about the petsc-users mailing list