Hi Francesco,

Your description is almost correct: the overlap defines the topological depth of shared entities as counted in "neighboring cells", where a cell counts as a neighbor of an owned cell according to the defined adjacency style. So for overlap=0 only facets, edges and vertices may be shared along the partition boundary, whereas for overlap=1 you can expect one additional "layer" of cells around each partition (the partitioning is done based on cell connectivity). For second neighbors, however, you need overlap=2. And yes, there is conceptually no upper bound on the overlap.

Hope this helps,

Michael


On 05/04/17 10:27, Francesco Caimmi wrote:
Dear all,

I was playing with DMPlex objects and I was trying to exactly figure out what
the `overlap` parameter in DMPlexDistribute does.

 From the tutorial "Flexible, Scalable Mesh and Data Management
using PETSc DMPlex" (slide 10) and from the work by Knepley et al.
"Unstructured Overlapping Mesh Distribution in Parallel" I somehow got the
idea that it should control the "depth" of the mesh overlap.
That is, given the partition boundary, if overlay is set to 0 only the
entities adjacent (in the DMPlex topological sense and with the "style" defined
by the AdjacencyUse routines) to entities at the boundary are shared, if
overlay is 1 the first and the second neighbors (always in the DMPlex
topological sense) are shared and so on, up to the point were we have a full
duplicate of the mesh on each process (i.e. there is no upper bound on
`overlap`).

Is this correct or am I -totally- misunderstanding the meaning of the
parameter?

I am asking this because I see some behavior I cannot explain at varying the
value of the overlap, but before going into the details I would like to be
sure to understand  exactly what the overlap parameter is supposed to do.

Many thanks,

Reply via email to