<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Apr 2, 2012, at 11:37 AM, Karin&amp;NiKo wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Dear Jed and Mark.<br><br>Thank you for your quick answers.<br>1. I am stuck to petsc-3.2 since I am using PETSc in a production software. For the next release, I'll give GAMG a try (I have been a satisfied user of Prometheus).<br></blockquote><div><br></div><div>3.2 should work ...&nbsp;</div><br><blockquote type="cite">
2. It seems to me that ML does not support block matrices, doesn't it?<br></blockquote><div><br></div><div>The ML interface does get the block size of the matrix. &nbsp;So it does the right thing.</div><div><br></div><div>Mark</div><br><blockquote type="cite">3. I would like to give ML the information about the vector nature of my problem in order that all 3 dofs of a given node be treated in the same manner (in the coarsening phase for instance).<br>

<br>Nicolas<br><br><div class="gmail_quote">2012/4/2 Mark F. Adams <span dir="ltr">&lt;<a href="mailto:mark.adams@columbia.edu" target="_blank">mark.adams@columbia.edu</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word">FYI, you can try GAMG also. &nbsp;It uses the same algorithm as ML:<div><br></div><div>Here are parameters:<br><br>-pc_type gamg&nbsp;<br>-pc_gamg_type agg&nbsp;<br>-pc_gamg_agg_nsmooths 1 &nbsp;&nbsp;&nbsp;&nbsp;! this is good for elliptic problems<br>

-pc_gamg_verbose 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;! this will help me to give a quick sanity check<br>-pc_gamg_threshold .05 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;! for 3D problems this parameter can be useful for optimization<br>-pc_gamg_coarse_eq_limit 50 &nbsp;! a detail but you can keep in your input deck<br>

<div><br></div><div>The vector Lapacian has 6 null space vectors (3 translational, 3 rotational). &nbsp;GAMG will construct these with the a setCoordinates method (see the ksp tutorial example ex56.c). &nbsp;&nbsp;If you prefer to give me the null space vectors explicitly there is the MatSetNearNullSpace() method that Jed mentioned. &nbsp;GAMG has not implemented this but I should at some point so if you want to use it I can implement it.<br>

<br>If you do not give it coordinates it will construct the 3 translational null space vectors (don't need anything to compute these) and it can be OK. &nbsp;At least a good place to start.</div><span><font color="#888888"><div>

<br></div><div>Mark</div></font></span><div><div><div><br><div><div>On Apr 2, 2012, at 10:44 AM, Jed Brown wrote:</div><br><blockquote type="cite"><div class="gmail_quote">On Mon, Apr 2, 2012 at 06:59, Karin&amp;NiKo <span dir="ltr">&lt;<a href="mailto:niko.karin@gmail.com" target="_blank">niko.karin@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>I would like to use ML as a preconditioner for a linear elasticity problem.<br>I wonder if there is a way to indicate ML that it is dealing with a vector problem. <br>I know that when using Prometheus, one must use a block matrix, and I would like to know if there is a trick <br>



in order to use ML in an optimal manner for vector problems.</div></blockquote></div><br><div>The block size is used if you don't provide any other information. The preferred approach with petsc-dev is to use MatSetNearNullSpace(). (I'll make sure this is currently working with ML and reply to this message.)</div>


</blockquote></div><br></div></div></div></div></div></blockquote></div><br>
</blockquote></div><br></body></html>