<div class="gmail_quote">On Thu, Oct 7, 2010 at 11:45, Sylvain Barbot <span dir="ltr">&lt;<a href="mailto:sylbar.vainbot@gmail.com">sylbar.vainbot@gmail.com</a>&gt;</span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

questions:<br>
1) is it at all possible to specify this mode of operation, from the<br>
finest to the coarser level, and back? Any examples out there?<br></blockquote><div><br></div><div>-pc_mg_type multiplicative, or</div><div><br></div><div>  PCMGSetType(pc,PC_MG_MULTIPLICATIVE);</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
2) is it readily possible to use matrix shells with DMMG? I imagine<br>
the Jacobian matrix may simply be provided as a matrix shell. Is there<br>
any examples of multi-grid methods with shell matrices online?<br></blockquote><div><br></div><div>You can do this, but you will have to define a custom smoother.  For Jacobi, you can have your MatShell implement MatGetDiagonal and it will work.  I thought you could implement MatGetDiagonalBlock for PBJacobi, but it&#39;s not currently written that way (though it should be and that would be an easy change to make).  If you want to use a multiplicative relaxation like SOR, you would have to implement it yourself.  If you need something like ILU for a smoother, then you will have to pay for a matrix.  Note that one possibility is to assemble a matrix on all but the finest level so you can use stronger smoothers there, then make do with Jacobi on the finest level.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
3) to deal with non-uniform sampling: can I provide the coordinates of<br>
the finest grid with DASetCoordinates, then expect DMMG to provide the<br>
subsampled coordinates at the coarser levels?</blockquote><div><br></div><div>Currently no, you have to set them on each level.  Perhaps you could do this by rolling a loop over levels and applying MatRestrict using the restriction matrix from DMMG (this might not be the sampling that you want).</div>
<div><br></div><div>Jed</div></div>