<div class="gmail_quote">On Wed, Mar 16, 2011 at 00:09, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Why not pass your Mat (maybe a global MPIAIJ) as the mat and pass your MatNest as your pmat and have some of the subblocks in the MatNest be defined by submatrices of of the MPIAIJ matrix.</blockquote></div><br><div>That's what I had in mind.</div>
<div><br></div><div><br></div><div>By retaining ownership, I mean get rid of this awkward MAT_INITIAL_MATRIX stuff, have the original matrix save the submatrix in a private table (isrow, iscol, submat), and return a reference. Then if two users ask for the same submatrix, it would only be extracted once and this reference would be returned. If you need an _exclusive_ copy of a submatrix (you plan to modify it in a way that would make shared copies incorrect), then you would copy it [1], but I think that is much more rare.</div>
<div><br></div><div>[1] Or use a flag that says that you want an exclusive copy.</div>