Matthew Knepley <knep...@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