<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'><div>By default, PETSc uses a row distribution with the first m rows on processor 0, next m rows on processor 1, and so on.</div>If the order is not important, then you could remove rows/columns from each processor instead of removing the last n-m rows on the last processor. Thus, the load balance would still be even.<div><br></div><div>Shri<br><br><hr id="zwchr"><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;"><div>I'm solving the schrodinger equation in a basis state method and looking at adding the azimuthal quantum numbers (the m's) to my basis so I can look at circularly polarized light.</div><div><br></div><div>However, when I do this, I'll need to do some sort of convergence study to make sure I add enough of them. &nbsp;The way my code is structured, it will probably be easier to just remove rows and columns from a bigger matrix, instead of adding them to a smaller matrix. &nbsp;However, depending on the way I structure the matrix, I could end up removing all the values (or a significant portion of them) from a processor when I do that.</div><div><br></div><div>Speaking more on that, is the "PETSC_DECIDE" way of finding the local distribution smart in any way? or does it just assume an even distribution of values? &nbsp;(I assume that it assumes a even distribution of values before the assembly, but does it redistribute during assembly?)</div><div><br></div><div>Thanks,</div><div><br></div><div>-Andrew</div><br><div><div>On May 15, 2012, at 6:40 AM, Jed Brown wrote:</div><br class="Apple-interchange-newline"><blockquote><div class="gmail_quote">On Mon, May 14, 2012 at 10:39 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">
<div style="word-wrap:break-word">That is what I figure.<div><br></div><div>I'm curious though if you need to manually determine the local row distribution after you do that. &nbsp;(for example, say you completely remove all the values from the local range of one processor… that processor wouldn't be utilized unless you redistribute the matrix)</div>
</div></blockquote><div><br></div><div>What sizes and method are we talking about? Usually additional (compact) basis functions only make sense to add to one of a small number of processes.</div></div>
</blockquote></div><br></blockquote><br></div></div></body></html>