Matthew Knepley <[email protected]> writes: >> PetscSectionSetUp currently calculates offsets by walking the points in >> order. I'd like to be able to walk them in a different ordering, perhaps >> specified via an IS permutation, which could be computed using >> MATORDERINGRCM or directly via BFS of a closure (saves building a Mat). >> > > You can do this using > > > https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PetscSection/PetscSectionSetPermutation.html > > This is what Lawrence is doing. He permutes the points so that interior > points come first, then points that are not > shared but touch shared points, then shared points.
Cool, this sounds easy enough now. What user interface would you like to use to have DMPlex apply an ordering when constructing a section after DMAddField()? DMPlexSetDofOrderingType(DM, MatOrderingType) To be set before DMSetUp with "natural" as default and "rcm" (or a new "bfs") taking a fast path that just walks the closure instead of building a matrix?
