Dear Barry,<br><br>Thank you very much for your quick answer.<br>I am searching for
MatRelax_Inode in PETSc src directory using grep. <br>But I just can't find it! Please note I am using 2.3.3p6<br>Could you please tell me where this routine is?<br><br>Nicoals<br><br><div><span class="gmail_quote">2008/3/20, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br> Nicolas,<br> <br> Actually we are very close to this. Check out the routine<br> MatRelax_Inode() which is for AIJ matrices.<br> For the block size it uses the inode size. If your matrix has inodes<br> that match the blocks you want<br>
then everything is there already just use the PCSOR.<br> <br> If you do not have inodes then you can mimic the MatRelax_Inode()<br> code to make a new<br> routine MatPBRelax_SeqAIJ(). If you do implement this we'd love to add<br>
it to PETSc.<br> <br> <br> Please let us know if you have additional questions.<br> <br><br> Barry<br> <br><br> <br> <br> On Mar 20, 2008, at 1:07 PM, Nicolas Tardieu wrote:<br> <br> > Dear PETSc experts,<br> ><br>
> I am currently designing a multigrid PC that needs to operate on<br> > variable block size matrices. I know PETSc does not support this<br> > feature.<br> > So, I will do it "by hand". Neverthless I would like to be able to<br>
> use some smoothers like Jacobi or SOR in their block version.<br> ><br> > What is the best solution that would work both in sequential and<br> > parallel?<br> ><br> > - define some MATSHELL that handle variable block size<br>
> -> will I be able to use in some way a block Jacobi or SOR?<br> > -> would it be possible to use CSR inside the MATSHELL and<br> > manage the variable blocks.<br> ><br> > - use a AIJ matrix and manage the blocks using some indirection<br>
> mechanism and reprogram Jacobi or SOR<br> ><br> ><br> ><br> > Thank you,<br> ><br> > Nicolas<br> ><br> <br> </blockquote></div><br>