Hi,

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 DMPlexPermute()?

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

Reply via email to