[petsc-dev] DMPlex with vertical numbering?

Michael Lange michael.lange at imperial.ac.uk
Thu Nov 7 11:30:20 CST 2013


I am trying to integrate an application code with DMPlex and I'm hitting 
the following problem: The application code requires owned and ghost 
DoFs to be numbered contiguously, whereas DMPlex numbers them by entity 
class, so that the vertex dofs and edge dofs are disjoint. In order to 
get around this problem I am trying to re-order the DMPlex object 
vertically by using DMPlexPermute() with a custom mapping such that the 
closure of cells is numbered contiguously (except for repeated sieve 
points). This, however, causes DMPlexCreateSection() to create wrong 
sections, because the depth/height strata are not contiguous anymore; 
although I can create the appropriate section from the original DMPlex 
and permute it with the same mapping to get the correct section. From 
this I am now trying to extract the appropriate information for my halo 
exchange via the DefaultSF and the LocalToGlobalMap, and what I was 
wondering is:

1) Is there an easy way to re-create the appropriate DefaultSF and 
LocalToGlobalMap after the permutation, since these are ignored in 

2) Is it possible to use DMLabelGetStratumIS with the "depth" label 
instead of DMPlexGetDepthStratum in DMPlexCreateSection() in order to 
make this work with a vertically numbered DMPlex?

Kind regards,

Michael Lange

More information about the petsc-dev mailing list