<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>hi<br>
</p>
<div class="moz-cite-prefix">On 15/06/21 12:21 pm, Matthew Knepley
wrote:<br>
</div>
<blockquote type="cite" cite="mid:CAMYG4GmMDwM2bZvoertRbuA2VAZKOnEz5DhBCwdKpVfRamo9rw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote"><br>
<div>I admit that it is becoming complicated, but this can
also be handled.</div>
<div><br>
</div>
<div>The corner case only shows up when we distribute with
overlap. Thus we could,</div>
<div><br>
</div>
<div>1) Distribute the mesh without overlap</div>
<div><br>
</div>
<div>2) Mark the global boundary using the former algorithm</div>
<div><br>
</div>
<div>3) Distribute overlap = 1 using
DMPlexDistributeOverlap(). DMPlexDistribute() just does
these two steps at once if you ask for overlap.</div>
<div><br>
</div>
<div>4) Use the former algorithm, with the boundary label we
just made, to mark flux faces.</div>
</div>
</div>
</blockquote>
<p>That sounds like it might work. Do you think this perhaps
slightly simpler version might also work?</p>
<p>1) distribute mesh without overlap</p>
<p>2) label boundary faces using DMPlexMarkBoundaryFaces()</p>
<p>3) DMPlexDistributeOverlap()</p>
<p>4) Un-label boundary faces with support size > 1 (i.e. the
shared faces on the non-overlapped mesh- I think) - so the
boundary label is now just the global boundary<br>
</p>
<p>5) loop over faces as in my original algorithm, labelling flux
faces if they are either on the open boundary, or are not on the
global boundary</p>
<p>Unfortunately I can't test this at the moment - it looks like the
Fortran interface for DMPlexDistributeOverlap() is missing?</p>
<p>- Adrian<br>
</p>
--
<pre class="moz-signature" cols="72">Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: <a class="moz-txt-link-abbreviated" href="mailto:a.croucher@auckland.ac.nz">a.croucher@auckland.ac.nz</a>
tel: +64 (0)9 923 4611</pre>
</body>
</html>