<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Feb 17, 2015 at 7:46 AM, Gideon Simpson <span dir="ltr"><<a href="mailto:gideon.simpson@gmail.com" target="_blank">gideon.simpson@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 style="word-wrap:break-word">Suppose I have data in Vec x and Vec y, and I want to interpolate this onto Vec xx, storing the values in Vec yy.  All vectors have the same layout.  The problem is that, for example, some of the values in xx on processor 0 may need the values of x and y on processor 1, and so on.  Aside from just using sequential vectors, so that everything is local, is there a reasonable way to make this computation?</div></blockquote><div><br></div><div>At the most basic linear algebra level, you would construct a VecScatter which mapped the pieces you need from other processes into a local vector along with the local portion, and you would use that to calculate values, which you then put back into your owned portion of a global vector. Thus local vectors have halos and global vectors do not.</div><div><br></div><div>If you halo regions (values you need from other processes) have a common topology, then we have simpler</div><div>support that will make the VecScatter for you. For example, if your values lie on a Cartesian grid and you</div><div>just need neighbors within distance k, you can use a DMDA to express this and automatically make the</div><div>VecScatter. Likewise, if you values lie on an unstructured mesh and you need a distance k adjacency,</div><div>DMPlex can create the scatter for you.</div><div><br></div><div>If you are creating the VecScatter yourself, it might be easier to use the new PetscSF instead since it only needs one-sided information, and performs the same job. This is what DMPlex uses to do the communication.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class="HOEnZb"><font color="#888888"><div><div>
<span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">-gideon</span>

</div>
<br></div></font></span></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>