On Tue, Jan 28, 2014 at 8:57 AM, Michael Lange <[email protected] > wrote:
> 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. > This is true, but unfortunately not what everyone wants. FVM people want just what is there now. This same choice comes up in preallocation. There I have put in the "center dimension" which says what kind of point do you use for the center, vertex or face? I guess we need that here as well. Matt > Kind regards > Michael Lange > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
