<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px;">
<div style="font-family: Calibri, sans-serif;">I have a very simple unstructured mesh composed of two triangles (four vertices) with one shared edge using a DMPlex:</div>
<div><font face="Courier"><br>
</font></div>
<div><font face="Courier"> /|\</font></div>
<div><font face="Courier">/ | \</font></div>
<div><font face="Courier">\ | /</font></div>
<div><font face="Courier"> \|/</font></div>
<div style="font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-family: Calibri, sans-serif;">After distributing this mesh to two processes, each process owns a triangle. However one process owns tree vertices, while the last vertex is owned by the other process.</div>
<div style="font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-family: Calibri, sans-serif;">The problem occurs after uniformly refining the dm. The mesh now looks like this: </div>
<div style="font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-family: Calibri, sans-serif;">
<div style="font-family: -webkit-standard;"><font face="Courier"> /|\</font></div>
<div style="font-family: -webkit-standard;"><font face="Courier">/\|/\</font></div>
<div style="font-family: -webkit-standard;"><font face="Courier">\/|\/</font></div>
<div style="font-family: -webkit-standard;"><font face="Courier"> \|/</font></div>
<div style="font-family: -webkit-standard;"><font face="Courier"><br>
</font></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;">The new center vertex is now not listed as a ghost vertex but instead exists as two individual points.</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;"><br>
</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;">Is there any way that this new center vertex could be created as a ghost vertex during refinement?</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;"><br>
</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;">Kind regards,</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;">Morten</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;"><br>
</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;">Ps. Here are some code snippets for getting global point index and test of point is a ghost point:</span></div>
<div style="font-family: -webkit-standard;"><span style="font-family: Calibri, sans-serif;"><br>
</span></div>
<div style="font-family: -webkit-standard;">
<pre style="background-color: rgb(255, 255, 255); font-family: Menlo; font-size: 9pt;"><span style="color:#000080;font-weight:bold;">int </span>localToGlobal(DM dm, PetscInt point){<br>    <span style="color:#000080;font-weight:bold;">const </span>PetscInt* array;<br>    ISLocalToGlobalMapping ltogm;<br>    DMGetLocalToGlobalMapping(dm,&ltogm);<br>    ISLocalToGlobalMappingGetIndices(ltogm, &array);<br>    PetscInt res = array[point];<br>    <span style="color:#000080;font-weight:bold;">if </span>(res < <span style="color:#0000ff;">0</span>){ <span style="color:#808080;font-style:italic;">// if ghost<br></span><span style="color:#808080;font-style:italic;">        </span>res = -res +<span style="color:#0000ff;">1</span>;<br>    }<br>    <span style="color:#000080;font-weight:bold;">return </span>res;<br>}<br><br><span style="color:#000080;font-weight:bold;">bool </span>isGhost(DM dm, PetscInt point){<br>    <span style="color:#000080;font-weight:bold;">const </span>PetscInt* array;<br>    ISLocalToGlobalMapping ltogm;<br>    DMGetLocalToGlobalMapping(dm,&ltogm);<br>    ISLocalToGlobalMappingGetIndices(ltogm, &array);<br>    <span style="color:#000080;font-weight:bold;">return </span>array[point]<<span style="color:#0000ff;">0</span>;<br>}</pre>
</div>
</div>
<div style="font-family: Calibri, sans-serif;">
<div id="MAC_OUTLOOK_SIGNATURE"></div>
</div>
</body>
</html>