Matthew Knepley <
knepley@gmail.com> writes:
We use it to identify that the mesh is periodic and in what directions, and
use the length if we have to figure out the coordinates.
Jed may argue that he wants you to retain the far point and use L2G to
eliminate it, but that sounds like a lot more work.
Computational work or implementation work?
implementation.
I think this is more implicit DMPlex assumptions than a fundamental issue.
I already have logic in DMStag to support something related, which was
required for L2G with INSERT_VALUES in the periodic, 1-rank case, where
multiple local points can respond to the same global point. So building the
local coordinates with the far point and then doing L2G doesn't sound bad
to implement, at least.
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMSTAG/DMStagPopulateLocalToGlobalInjective.html
That may work. It is a problem in Plex because that strategy destroys the
topological queries. However, it sounds like you do not have that problem.
Patrick, if you're still in early stages, I would encourage you to support nodally affine maps in the L2G, which allows things like rotated periodicity for vector-valued fields.
https://gitlab.com/petsc/petsc/-/issues/566