[Dune] dune-alugrid: why insertProcessBorder improves efficiency
Martin Nolte
nolte at mathematik.uni-freiburg.de
Tue Oct 7 10:41:14 CEST 2014
Hi Aleksejs,
unfortunately, DUNE does not force you to insert all domain boundary segments.
Hence, you cannot distinguish process borders from domain boundaries without
actually matching them.
If you actually know all domain boundaries, you can use your simple algorithm
to detect the process borders and insert them by hand (with the given method).
That's what the method is provided for!
Internally, ALUGrid's grid factory will use exactly the same algorithm to find
all boundaries of the local grid that have not been inserted by the user. To
find out which of these are actually domain boundaries and which ones are
process borders, these are then gathered on all processes. Each process then
removes the _received_ set of boundaries from his map. What remains are
actually domain boundaries. Yeah, it is a lot of work for a small interface
deficiency ;-).
But: Are you really sure you need to know this?
Best,
Martin
On 10/07/2014 09:34 AM, Aleksejs Fomins wrote:
> Dear Dune,
>
> I was thinking of calculating the process borders to pass to alugrid
> constructor, and I do not understand why this operation requires global
> communication as stated in the dune-alugrid paper.
>
> I propose the algorithm (3D):
> 1) Make an std::set of faces (face = indices of all facial vertices
> sorted in ascending order)
> 2) Go over all elements on this process
> 3) For all faces of each element, put face in the set
> 4) If the set already contains this face, remove face from set instead
> of inserting it
> 5) Resulting set should contain only process borders and domain boundaries
> 6) Subtract domain boundaries that were inserted using
> insertBoundarySegment on this process.
>
> No global communication, get interprocessor boundaries with complexity
> O(N log N) where N is number of elements on the process.
>
>
> Can somebody please hint me to what I am missing?
>
> Best,
> Aleksejs
>
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
>
--
Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>
Universität Freiburg phone: +49-761-203-5630
Abteilung für angewandte Mathematik fax: +49-761-203-5632
Hermann-Herder-Straße 10
79104 Freiburg, Germany
More information about the Dune
mailing list