On Sun, May 6, 2012 at 8:34 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
  I think it belongs in the DM (or the matrix if it was put in the matrix). When you select a subpart of the DM that new DM should contain the near null space for the subpart.  The DM associated with the field defining IS is where all properties should go, not the IS itself. Of course, we really have not yet solidified the getting of the new DM for the field yet, maybe after the release.</blockquote>
<div><br></div><div>I do not necessarily disagree in principle, but right now we don;t give smaller DMs, we give ISes. So I think my proposal is the</div><div>one that works now.</div><div><br></div><div>Second, I think we should be very careful using opaque objects for this. I consider this a failure when I did it for parts of the system</div>
<div>for preconditioning, which was later changed to ISes in FieldSplit. Talking to PETSc, the Lord of Linear Algebra, in sets of integers</div><div>is the right thing to do. It allows other people to stick their own stuff in place of ours easily, without junking it up with a lots of</div>
<div>wrapper objects.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>

   Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On May 6, 2012, at 6:30 PM, Matthew Knepley wrote:<br>
<br>
> On Sun, May 6, 2012 at 7:15 PM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>> wrote:<br>
> Matt introduced this concept, he says the IS is a better place to attach things.<br>
><br>
> <a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/2ad289ac99e0" target="_blank">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/2ad289ac99e0</a><br>
><br>
> I don't understand why the IS is better (because it's mostly immutable?). I'm worried that putting it there is going to be fragile because the near null space is not a property of an IS at all.<br>
><br>
> Its not a property of your matrix either, or you would not need me to tell you. Its a property of the operator. The operator<br>
> is defined by the DM. The near null space is actually a property of a suboperator, defined by the DM using a field (we are<br>
> not allowing arbitrary divisions). The representation of a field in PETSc is an IS (<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/DM/DMCreateFieldIS.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/DM/DMCreateFieldIS.html</a>) so it makes sense to attach field information to the IS. Moreover, it<br>

> makes a hell of a lat more sense to attach an auxiliary operator (like L_p) to this IS than to a matrix.<br>
><br>
> Furthermore, this scheme is completely workable in a nested context. The user can specify the IS, or pull out the DM IS<br>
> and play with it, without a bunch of cumbersome copies hanging around that we do not want and can't destroy. That is what<br>
> would happen with persistent submatrices. Lastly, I am running this for PyLith and it works great.<br>
><br>
>    Matt<br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> -- Norbert Wiener<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>