Mannually specify a diagonal matrix as a preconditioner?

Shi Jin jinzishuai at yahoo.com
Mon Mar 31 17:44:32 CDT 2008


> Then my answer is the same as my second answer. To first order, I think the time
> is completely negligible, so just use an AIJ matrix. If, after measuring the
> performance, you are unhappy, then put the diagonal matrix in a vector and
> wrap MatDiagonalScale() in a MatShell.
> 
>   Matt
Thank you.  I think I am OK with AIJ matrix and it is working fine.
But I still want to ask the first question about specifying a preconditioning matrix. Right now I am testing a first order element case since I know what it should look like and it should improve performance.  But when I do 

> > >  ierr = KSPSetOperators( solMP, M, lumpedM, SAME_PRECONDITIONER);

The solver takes more iterations to converge.  It this the correct way to specify the lumped matrix?
Thank you very much.

Shi

> > >
> > > However, instead of giving faster convergence, it actually takes more
> > > iterations to convergence than the regular one. Therefore, I wonder if
> > > setting lumpedM as Pmat is the correct way to do it. Could you please
> > > advice? I think right now lumpedM is taken as the input to compute the
> > > preconditioning matrix, using whatever method is specified by -pc_type .
> > > What I really want to do is to simply set lumpedM as the precondition
> > > matrix, without spending time to compute anything.
> > > Thank you very much.





      ____________________________________________________________________________________
Like movies? Here's a limited-time offer: Blockbuster Total Access for one month at no cost. 
http://tc.deals.yahoo.com/tc/blockbuster/text4.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20080331/5fc2b74f/attachment.htm>


More information about the petsc-users mailing list