<div dir='auto'>You need DMGlobalToLocal.<div dir="auto"><br></div><div dir="auto">VecGhost is a different thing.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Jun 12, 2020 13:17, Shashwat Tiwari <shaswat121994@gmail.com> wrote:<br type="attribution" /><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi, <br /></div><div>I am writing a first order 2D solver for unstructured grids with periodic boundaries using DMPlex. After generating the mesh, I use "DMSetPeriodicity" function to set periodicity in both directions. After which I partition the mesh (DMPlexDistribute), construct ghost cells (DMPlexConstructGhostCells), create a section, and set some initial values in the global vector. Then I use "VecGhostUpdateBegin" to start updating the boundary ghost cell values, but, I get the following error in case I use multiple processors:</div><div><br /></div><div>[0]PETSC ERROR: Invalid argument<br />[0]PETSC ERROR: Vector is not ghosted<br />[0]PETSC ERROR: See <a href="https://www.mcs.anl.gov/petsc/documentation/faq.html">https://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.</div><div><br /></div><div>if I run with a single process, there is no error but the values remain empty (zero) and are not updated. Kindly let me know, if I am missing some crucial step before I can update the ghost values in order to implement the periodic bc, or if there is any other approach to achieve it. I am attaching a small code to demonstrate the issue for your reference.</div><div><br /></div><div>Regards,</div><div>Shashwat<br /></div></div>
</blockquote></div><br></div>