<div dir="ltr">Hello. I have some confusions about the results given by ISLocalToGlobalMappingView. <div><br></div><div>After reading a simple mesh and associate each vertex with a scalar dof, the test code uses DMPlexDistribute to get a distributed dm. Then I use the following calls </div><div><br></div><div><div> call DMGetLocalToGlobalMapping(dm,ltog,ierr)</div></div><div><div> call ISLocalToGlobalMappingView(ltog, PETSC_VIEWER_STDOUT_WORLD, ierr);</div></div><div><br></div><div>and get following results for l2g. (MatGetOwnershipRange gives [0 3] for rank 0 and [3 9] for rank 1)</div><div><br></div><div><div>ISLocalToGlobalMapping Object: 2 MPI processes</div><div>  type: basic</div><div>[0] 0 0</div><div>[0] 1 1</div><div>[0] 2 5</div><div>[0] 3 2</div><div>[0] 4 6</div><div>[0] 5 8</div><div>[1] 0 3</div><div>[1] 1 4</div><div>[1] 2 5</div><div>[1] 3 6</div><div>[1] 4 7</div><div>[1] 5 8</div></div><div><br></div><div><br></div><div>The question is why, on rank 0,  the global indices (I assume the third column) are not grouped into local chunks and ghost chunks. I understand how to do local to global mapping without any concern of the actual ordering, but I have some impression that in PETSC the ghost information is always coming later in the local vector. </div><div> In this case, on rank 0, global index 5 should appear later than 0,1,2, because it is ghost vertex for rank 0. <br></div><div><br></div><div>I'm not trying to use this for FEM, but instead using the mesh management in dmplex for other tasks. So I need to know more details.</div><div><br></div><div>Thank you.</div><div><br></div><div>QW</div></div>