<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Oct 17, 2018 at 12:29 AM Josh L <<a href="mailto:ysjosh.lo@gmail.com">ysjosh.lo@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>My problem has an irregular domain and for the nodes I have to apply boundary condition, I only know their node number in nature ordering. </div><div>How do I apply BC(zero out the corresponding entries in global Vec and Mat) after DMPlexDistribute when it is all in global ordering?</div><div><br></div><div>If using DMLabel, how do I add those nodes to the label If I only have their number in nature ordering?</div></div></blockquote><div><br></div><div>I will help you do whatever you want to do. However, first I would like to encourage you not to do what you are doing.</div><div><br></div><div><paperclip talking>It looks like you want to add  a boundary condition to your continuum model?</paperclip talking></div><div><br></div><div>First, you need a way to describe the boundary that is invariant to mesh transformations, such as redistribution, adaptation, and coordinate remapping.. For this you can use DMLabel. Those transformations update the label so that the same topological piece of the mesh is marked after the transformation.</div><div><br></div><div>Second, you should also specify your boundary condition in a way that is invariant to these transformations. This function</div><div><br></div><div>  <a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMAddBoundary.html">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMAddBoundary.html</a></div><div><br></div><div>encourages you to write boundary conditions as pointwise functions, which can easily be projected into a finite element space</div><div>along a given DMLabel using DMProjectFunctionLabelLocal(). You can also use a finite element function instead using DMProjectFieldLabelLocal(). These functions are used internally by DMPlexInsertBoundaryValues().</div><div><br></div><div>Could you use that kind of a scheme?</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks,</div><div>Josh</div><div><br></div><div><br></div><div> </div><div><br></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>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><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div></div></div></div>