<div class="gmail_quote">On Fri, May 18, 2012 at 3:26 PM, Andrew Spott <span dir="ltr">&lt;<a href="mailto:andrew.spott@gmail.com" target="_blank">andrew.spott@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">
I have a couple of questions about how to deal with the nonzero structure.<br>
<br>
0)  Is the &quot;nonzero structure&quot; the same as &quot;number of non zeros per row&quot;? Or are they different?<br></blockquote><div><br></div><div>Yes, for parallel *AIJ matrices, it&#39;s the number of nonzeros in the diagonal part and in the off-diagonal part. Preallocation can optionally also set the column indices, but it&#39;s not critical.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
1)  How much of a speedup do you get for copying/creating/loading matrices when you set the number of non zeros per row beforehand? (if the nonzero structure is different from the number of non zeros per row, what about the nonzero structure)<br>
</blockquote><div><br></div><div>a million</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
2)  If I have a matrix, how do I add to the nonzero structure, without actually adding nonzero values, do I just add &quot;0.0&quot;? (the matrix will have values there, but doesn&#39;t at the moment)<br></blockquote><div>
<br></div><div>Mat*AIJSetPreallocation(), then reassemble.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
As usual, thanks for all the help<br>
<span class="HOEnZb"><font color="#888888"><br>
-Andrew</font></span></blockquote></div><br>