hi Matt,

On 29/06/19 12:07 AM, Matthew Knepley wrote:

Okay, I ran through this. I am attaching my C version which was easier for me to play with in the debugger, but it should not be hard to put the few lines into yours. The problem comes from using overlap in the redistribution. You can see this by running

  mpiexec -n 2 ./distgeom2 -overlap 1 -overlap2 0

which works fine. If overlap2 is 1, then the face data is shifted.


Yes, that's the same thing I found.

Something in DistributeField() does not know that we changed
the topology after we distributed by adding overlap cells. This is strange since DMPlexMigrate() works on the coordinates for the overlapped mesh, however they always start at 0 in the vector, so it must be that some offset is missing. I am looking for it now.


It looked to me like the problem might lie not in DMPlexDistributeField() but in DMPlexDistribute(), because if you view the redistribution SF coming out of the second call to DMPlexDistribute() it looks wrong.

DMPlexDistributeField() appeared to be doing what it was told, but the SF it was given didn't look right to me.

- Adrian

--
Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: [email protected]
tel: +64 (0)9 923 4611

Reply via email to