Hi Matthew,
we did it with PetscSFCreateInverseSF !
It is working well without overlap, so we can go forward with this and compute the overlap afterward with DMPlexDistributeOverlap.
Thanks,
Eric
On 2021-07-20 10:39 p.m., Eric Chamberland wrote:
On 2021-07-14 6:42 p.m., Matthew Knepley wrote:
Ah, there was a confusion of intent. GlobalToNatural() is for people that want data transformed back into the originalorder. I thought that was what you wanted. If you just want mesh points in the original order, we give you thetransformation as part of the output of DMPlexDistribute(). The migrationSF that is output maps the original point tothe distributed point. You run it backwards to get the original ordering.
Thanks,
MattHi,
that seems to work better! However, if I understand well the migrationSF is giving information on the originating process where the elements have been migrated from.
Is there a PETSc way to either:
1) send back the information to the originating process (somewhat "inverting" the migrationSF) ? So I can retrieve the "partitioning array" (just like the "part" parameter in ParMETIS_V3_PartMeshKway) on the sender process.
or
2) Have the pre-migrationSF: I mean I would like to extract the "where are the elements going to be sent?" (again like "part" parameter)
If not, I can always build the communication myself...
Thanks,
Eric
-- Eric Chamberland, ing., M. Ing Professionnel de recherche GIREF/Université Laval (418) 656-2131 poste 41 22 42