<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 7:24 PM, Jed Brown wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Mon, Apr 2, 2012 at 07:44, Jed Brown <span dir="ltr">&lt;<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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.)</blockquote>
</div><br><div>I pushed ML support for user-provided null spaces to petsc-dev. Call MatSetNearNullSpace() to provide the information. You can use MatNullSpaceCreateRigidBody() if you have nodal coordinates.</div><div><br>
</div><div><br></div><div>Mark, what is the best way to make PCGAMG use this interface?</div>
</blockquote></div><div><br></div><div>It looks like you are adding this to the Mat, so I can check to see if coordinates have been set and if not check the matrix. &nbsp;This should be easy to do; I'll look at the ML code to clone the API.</div><div><br></div><div>One thing to keep in mind is that diagonal scaling breaks the null space (ie, the rigid body modes have to be scaled appropriately). &nbsp;Who owns the diagonal scaling? If it is Mat then we might want&nbsp;MatSetNearNullSpace to do this, otherwise we should think of a good way to deal with this. &nbsp;It is very error prone to not do the right thing here, we should at least throw an error.</div><div><br></div><div><br></div></body></html>