<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 21, 2013 at 1:10 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Yes, he needs the local to global scatters. Rich, I think the easiest way to do this now may be</div><div>to define your data layout as a PetscSection (these are all local) using DMSetDefaultSection(),</div>

<div>and record who owns which point using a PetscSF with DMSetPointSF().</div><div><br></div><div>Using this information, the DM will automatically construct a scatter between local and global,</div><div>
and the CreateLocal/GlobalVector() functions will also work right. This is what its is designed for.</div><div><br></div><div>Does this make sense?</div></blockquote></div><br><br></div><div class="gmail_extra">Rich, this will work fine if you don't mind having PETSc do the communication. It will be done using PetscSFBcastBegin/End, which should have similar performance to VecScatterBegin/End. (I should do a performance test of that.) If you want to use your own internal communication routines, then we need to add the DMShell functions to get your functions called.<br>
</div></div>