> On 1 Oct 2019, at 10:48, Matthew Knepley <knepley@gmail.com> wrote:
> 
> On Mon, Sep 30, 2019 at 10:46 PM Sentz, Peter <sentz2@illinois.edu> wrote:
> So is there a way to return how the global degrees of freedom are distributed across processors?
> 
> I would recommend changing your workflow so that you do not need this, since it complicates everything.
> 
> However, if you still really want to do this, you can
> 
>   1) Tell the DM to constructs mappings back to the original ordering
>       https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/DM/DMSetUseNatural.html
> 
>   2) After distribution, map a vector back to that ordering
>       https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/DMPLEX/DMPlexGlobalToNaturalBegin.html
> 
>   3) Output that vector using view()
FWIW, I would be a little bit careful checking that this all DTRT. We don't set a Section on the DMPlex before distribution, so (as I understand the code) the global-to-natural SF won't be built.
Ah, you are correct. Crap.
 
Aside: why does the interface in PETSc not build an SF for the permutation of the topology to natural ordering, and then you would do:
We could have if we had thought of it. I did not write it and I missed that in review.
  Thanks,
     Matt
 
DMGlobalToNatural(dm, Vec global, Section layout, Vec natural);
Peter, perhaps you can explain why you need a consistent ordering and we can figure out a way to achieve the same thing without doing this dance. As Matt says, it does make lots of things more complicated.
Thanks,
Lawrence