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>
