<div dir="auto"><div>I'm solving a coupled set of equations, so each "block" corresponds to a set of unknowns for a particular spatial cell.  The matrix is structured such that all of the unknowns for a given spatial cell have adjacent global matrix indices (i.e., they're next to each other in the global solution vector).  Effectively, I want to do red-black Gauss Seidel, but with blocks.  Alternatively, it's the same as applying block Jacobi for all the red cells and then applying block Jacobi for all the black cells.</div><div dir="auto"><br></div><div dir="auto">The color of the block is determined from the geometry of the problem which is stored in various structures in the code I'm working on, independent of petsc.  (Physically, I generally have a nice 3d cartesian spatial grid and the coloring is just a checkerboard in that case.)</div><div dir="auto"><br></div><div dir="auto">The reason I want to do this is for research purposes.  I've implemented my own interpolation matrices for PCMG, and, in my simpler 1d codes and convergence analyses, I've found that doing a red-black smoothing significantly improved convergence for my particular problem (though I'm aware that this generally leads to poor cache efficiency).<br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On Aug 29, 2017 7:33 PM, "Barry Smith" <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
  Ben,<br>
<br>
   Please explain more what you mean by "a red-black block Jacobi smoother". What is your matrix structure? What are the blocks? How do you decide which ones are which color?  Why do you wish to use some a smoother.<br>
<font color="#888888"><br>
  Barry<br>
</font><div class="elided-text"><br>
> On Aug 29, 2017, at 6:19 PM, Ben Yee <<a href="mailto:bcyee@umich.edu">bcyee@umich.edu</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> For the smoother in PCMG, I want to use a red-black block Jacobi smoother.  Is this available with the existing PETSc options?  If so, how do I designate which blocks are red and which are black?<br>
><br>
> If it is not possible, what would be the best way to implement this?  Would I use KSPRICHARDSON+PCSHELL?<br>
><br>
> Thanks!<br>
><br>
> --<br>
> Ben Yee<br>
><br>
> NERS PhD Candidate, University of Michigan<br>
> B.S. Mech. & Nuclear Eng., U.C. Berkeley<br>
<br>
</div></blockquote></div><br></div></div></div>