<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Is there a computational cost to using a sparse matrix that is much bigger than it should be?<div><br></div><div>for example, say you have a matrix that is n x n, but you only store anything in the first m rows and columns (m &lt; n). &nbsp;</div><div><br></div><div>Also, would you then have to redo the matrix distribution among nodes by hand, or will PETSC do it for you?</div><div><br></div><div>Thanks for the quick reply</div><div><br></div><div>-Andrew</div><div><div><br><div><div>On May 14, 2012, at 9:38 PM, Jed Brown wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Mon, May 14, 2012 at 9:33 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">
What is the best way to selectively add/remove columns/rows of a Mat?<br>
<br>
Is there a way to do it in place, or does it require essentially moving the values to a new matrix?<br></blockquote><div><br></div><div>If you only need to add/remove a small number of values, it's best to allocate for all that might be present and just store explicit zeros.</div>
<div><br></div><div>To add or remove rows, you are also changing the vector size that can be multiplied against, and the data structure must be rebuilt. This is why it's frequently preferable to use MatZeroRows (or a variant) instead of removing them from the data structure.</div>
</div>
</blockquote></div><br></div></div></body></html>