<div dir="ltr">VecGetOwnershipRange()<div><br></div><div>You can use VecCreateMPIWithArray() using your own array preallocated to be as long as you want. If you profile, you'll probably find this is not a meaningful optimization.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 15, 2013 at 4:12 PM, Weston Lowrie <span dir="ltr"><<a href="mailto:wlowrie@uw.edu" target="_blank">wlowrie@uw.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<font face="verdana,sans-serif">Hi,</font><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">I have a problem where I want to grow the size of a Vec (or Mat) many times during program execution.  I think for efficiency purposes I would just want to allocate a maximum size, and then only use the portion that I need.  In the vector case, it is rather simple, just use the beginning of the vector, and add values to the end.</font></div>

<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">This leads to me to the problem of processor ownership ranges.  From a previous email I noticed one could use the PetscLayout object and keep adjusting it as the useful part of the vector grows.  Does this sound like a good approach?  </font></div>

<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">I noticed the PetscLayout is not available in Fortran bindings.  Any workarounds for this?  I suppose I can just manually calculate the processor ranges?</font></div>

<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Thanks for the help,</font></div><div><font face="verdana, sans-serif">Wes</font></div><div><font face="verdana, sans-serif"><br>

</font></div><div><font face="verdana, sans-serif"><br></font><div><font face="verdana,sans-serif"><br></font></div><div><font face="verdana,sans-serif"><br></font></div></div>
</blockquote></div><br></div>