<br><br><div class="gmail_quote">On Fri, Feb 10, 2012 at 12:01 AM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@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">

<div class="im"><div class="gmail_quote">On Thu, Feb 9, 2012 at 23:55, Dmitry Karpeev <span dir="ltr"><<a href="mailto:karpeev@mcs.anl.gov" target="_blank">karpeev@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">


<div>In a somewhat related matter, it appears that I cannot duplicate a preallocated MATXXXAIJ until it has been assembled:<div>if my DM implementation keeps a preallocated MATSEQAIJ, which it wants to duplicate on every call to DMGetMatrix,</div>




<div>it would have to put in fake entries before any duplication is possible.</div></div></blockquote></div><br></div><div>Doesn't it already do this (inserting 0)?</div></blockquote><div>I don't think so.  Preallocating doesn't set any values and seems to leave the matrix marked !assembled.</div>

<div>MatDuplicate for such a matrix will fail.  Assemblying it before setting values (just to force an assembled flag)</div><div>will squeeze out the extra values, won't it?  I think it would just be reasonable to allow to duplicate unassembled</div>

<div>matrices, or, better yet, have a matrix be "assembled" by default until MatSetValues has been called.</div><div>But I'm not sure whether either solution will break something else.</div><div><br></div><div>

Dmitry. </div></div><br>