:orphan: # DMPlexSetClosurePermutationTensor Create a permutation from the default (BFS) point ordering in the closure, to a lexicographic ordering over the tensor product cell (i.e., line, quad, hex, etc.), and set this permutation in the section provided (or the section of the `DM`). ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexSetClosurePermutationTensor(DM dm, PetscInt point, PetscSection section) ``` ## Input Parameters - ***dm -*** The `DM` - ***point -*** Either a cell (highest dim point) or an edge (dim 1 point), or `PETSC_DETERMINE` - ***section -*** The `PetscSection` to reorder, or `NULL` for the default section ## Example A typical interpolated single-quad mesh might order points as ```none [c0, v1, v2, v3, v4, e5, e6, e7, e8] v4 -- e6 -- v3 | | e7 c0 e8 | | v1 -- e5 -- v2 ``` (There is no significance to the ordering described here.) The default section for a Q3 quad might typically assign dofs in the order of points, e.g., ```none c0 -> [0,1,2,3] v1 -> [4] ... e5 -> [8, 9] ``` which corresponds to the dofs ```none 6 10 11 7 13 2 3 15 12 0 1 14 4 8 9 5 ``` The closure in BFS ordering works through height strata (cells, edges, vertices) to produce the ordering ```none 0 1 2 3 8 9 14 15 11 10 13 12 4 5 7 6 ``` After calling DMPlexSetClosurePermutationTensor(), the closure will be ordered lexicographically, ```none 4 8 9 5 12 0 1 14 13 2 3 15 6 10 11 7 ``` ## Note The point is used to determine the number of dofs/field on an edge. For SEM, this is related to the polynomial degree of the basis. ## See Also [](ch_unstructured), `DM`, `DMPLEX`, `DMGetLocalSection()`, `PetscSectionSetClosurePermutation()`, `DMSetGlobalSection()` ## Level developer ## Location src/dm/impls/plex/plex.c ## Examples src/dm/impls/plex/tutorials/ex6.c
src/dm/impls/plex/tutorials/ex8.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plex.c) [Index of all DMPlex routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)