On Jun 9, 2012, at 7:51 PM, Jed Brown wrote:

> 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?

O(20)

> 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 reverse.

I can have two sets of ISs and avoid the reverse flag.  I was avoiding that 
option but now that I think about it it simplifies the control code.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120610/45791542/attachment.html>

Reply via email to