<div dir="ltr"><div><div><div>Hello,<br><br></div>When I call DMPlexUninterpolate(...) on a distributed mesh (say 2 processors), it seems to overwrite the "ghost" points (i.e., the points not locally owned by the processor) and treats all points as if they are local to the processor.<br><br></div>Say I have this 2D cell-vertex mesh:<br><br></div>14----15-----16<div>| \  5  | \ 7   |<br>|   \   |   \   |<br>|  4  \ |  6  \ |</div><div>11----12-----13<br>| \  1  | \ 3   |<br>|   \   |   \   |<br>|  0  \ |  2  \ |</div><div>8------9------10<br><br></div><div>Which results in the following DM:<br><br>DM Object: 2 MPI processes<br>  type: plex<br>DM_0x84000004_0 in 2 dimensions:<br>  0-cells: 9 0<br>  2-cells: 8 0<br>Labels:<br>  marker: 1 strata of sizes (8)<br>  depth: 2 strata of sizes (9, 8)<br><br>I proceed by interpolating this DM:<br><br>DM Object: 2 MPI processes<br>  type: plex<br>DM_0x84000004_1 in 2 dimensions:<br>  0-cells: 9 0<br>  1-cells: 16 0<br>  2-cells: 8 0<br>Labels:<br>  marker: 1 strata of sizes (16)<br>  depth: 3 strata of sizes (9, 16, 8)<br><br></div><div>Then distributing across 2 processors:<br><br>DM Object:Parallel Mesh 2 MPI processes<br>  type: plex<br>Parallel Mesh in 2 dimensions:<br>  0-cells: 6 6<br>  1-cells: 9 9<br>  2-cells: 4 4<br>Labels:<br>  marker: 1 strata of sizes (9)<br>  depth: 3 strata of sizes (6, 9, 4)<br><br></div><div>I have the option of uniformly refining the mesh here but I choose not to for now. If my dofs are vertex based, then the global size of my DM vector is 9 and the local sizes for ranks 0 and 1 are 3 and 6 respectively. However, if I choose to uninterpolate the mesh by calling DMPlexUninterpolate(...), I get this:<br><br>DM Object: 2 MPI processes<br>  type: plex<br>DM_0x84000004_2 in 2 dimensions:<br>  0-cells: 6 6<br>  2-cells: 4 4<br>Labels:<br>  marker: 1 strata of sizes (5)<br>  depth: 2 strata of sizes (6, 4)<br><br></div><div>And the global size of my DM vector becomes 12 and the local size for both ranks is 6. It looks like the ghost points in rank 0 have been duplicated, which is not suppose to happen.<br><br></div><div>Is there a way to capture the ghost point information when uninterpolating the DM?<br><br></div><div>Thanks,<br></div><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div><div>Justin Chang<br></div>PhD Candidate, Civil Engineering - Computational Sciences<br></div>University of Houston, Department of Civil and Environmental Engineering<br></div>Houston, TX 77004<br>(512) 963-3262<br></div></div></div>