[petsc-dev] Multigrid is confusing

Barry Smith bsmith at mcs.anl.gov
Fri May 25 07:35:59 CDT 2012


On May 24, 2012, at 10:35 PM, Jed Brown wrote:

> On Thu, May 24, 2012 at 10:19 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
>  I think I've fixed PCPre/PostSolve_Eisenstat() to work properly with kspest but seems to be with ex19 a much worse smoother than SOR (both with Cheby). I'm not sure why. With SOR we are essentially doing a few Chebyshev iterations with
> (U+D)^-1 (L+D)^-1 A  x  = b while with Eisenstat it is (L+D)^-1 A (U + D)^-1 y = (L+D)^-1 b.  Well no time to think about it now.
> 
>   Mark,
> 
>          Has anyone looked at using Cheby Eisentat smoothing as opposed to Cheby SOR smoothing?
> 
> Aren't they supposed to be the same?

  Well one is left preconditioning while the other is "split" preconditioning so iterates could be different.   There might also some difference with diagonal scalings?

   Barry

>  
> 
>    Barry
> 
> On May 24, 2012, at 1:20 PM, Jed Brown wrote:
> 
> > On Wed, May 23, 2012 at 2:52 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> > On Wed, May 23, 2012 at 2:26 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> >  Note that you could use -pc_type eisenstat perhaps in this case instead. Might save lots of flops?  I've often wondered about doing Mark's favorite chebyshev smoother with Eisenstat, seems like it should be a good match.
> >
> > [0]PETSC ERROR: --------------------- Error Message ------------------------------------
> > [0]PETSC ERROR: No support for this operation for this object type!
> > [0]PETSC ERROR: Cannot have different mat and pmat!
> >
> > Also, I'm having trouble getting Eisenstat to be more than very marginally faster than SOR.
> >
> >
> > I think we should later be getting the eigenvalue estimate by applying the preconditioned operator to a few random vectors, then orthogonalizing. The basic algorithm is to generate a random matrix X (say 5 or 10 columns), compute
> >
> > Y = (P^{-1} A)^q X
> >
> > where q is 1 or 2 or 3, then compute
> >
> > Q R = Y
> >
> > and compute the largest singular value of the small matrix R. The orthogonalization can be done in one reduction and all the MatMults can be done together. Whenever we manage to implement a MatMMult and PCMApply or whatever (names inspired by VecMDot), this will provide a very low communication way to get the eigenvalue estimates.
> >
> >
> > I want to turn off norms in Chebyshev by default (they are very wasteful), but how should I make -mg_levels_ksp_monitor turn them back on? I'm already tired of typing -mg_levels_ksp_norm_type unpreconditioned.
> 
> 




More information about the petsc-dev mailing list