[petsc-dev] Cell overlap in DMPlexDistribute

Michael Lange michael.lange at imperial.ac.uk
Tue Jan 28 08:57:43 CST 2014


Hi,

I noticed that the cell overlap created during DMPlexDistribute does not 
include cells that only share a vertex but no edge with an owned cell. 
This causes problems when performing local assembly 
(MAT_IGNORE_OFF_PROC_ENTRIES) based on information from the plex, 
because one contribution to the shared vertex is missing.

As an example consider the 2x2 square with 8 cells (attached). When 
partitioned across two ranks with overlap=1 each rank owns 4 cells and 
in the current version knows about 2 halo cells, giving a total of 6 
cells. The central vertex, however, touches 3 owned and 3 non-owned 
cells, one of which doesn't share an edge with any owned cells. So, in 
order to correctly assemble the central vertex locally, the rank owning 
it needs to know about 7 cells in total.

I have attached a patch that fixes this problem by going over the 
inverse closure of all vertices associated with a given cell instead of 
using the provided edge graph. Please tell me what you think and whether 
there might be an easier way to fix this.

Kind regards
Michael Lange
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-dmplex-cell-overlap.patch
Type: text/x-patch
Size: 3382 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20140128/735c9383/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: plex_square.c
Type: text/x-csrc
Size: 1335 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20140128/735c9383/attachment-0001.bin>


More information about the petsc-dev mailing list