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,