[petsc-dev] Parallel Gauss - Seidel

Jed Brown jedbrown at mcs.anl.gov
Sat Jun 9 18:51:54 CDT 2012

On Sat, Jun 9, 2012 at 6:43 PM, Mark F. Adams <mark.adams at columbia.edu>wrote:

> 1) I need a G-S kernel that takes an IS of indices to process and a flag
> to process them in forward or reverse order.  How should I proceed to do
> this.  Should I just clone sor?

You are going to have several of these index sets? You could have a
PCSORSetIS(). Probably need to add a MatOp for MatSORIS(). Barry might have
other ideas.

> 2) I don't want to use Richardson iterations for G-S.  Should I make a G-S
> KPS method?  I don't want to take a residual in the iterator (KSP) and if
> symmetric G-S is requested then it should drive this I think.

Look at PCApplyRichardson_SOR().

>  SOR does two sweeps in each application; I'm not wild about that because
> a good way to run G-S in a V(1,1) cycle is to do a forward sweep in pre
> smoothing and a backward sweep in post smoothing.

Well, MatSOR() has this flag MatSORType that can specify forward and
reverse. You have one PC for the down-smoother and another for the
up-smoother, then configure one to be a forward sweep and the other to be
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120609/13b5956c/attachment.html>

More information about the petsc-dev mailing list