[Dune] dune-alugrid: why insertProcessBorder improves efficiency
Aleksejs Fomins
aleksejs.fomins at lspr.ch
Tue Oct 7 09:34:59 CEST 2014
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 551 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20141007/b6a9e8fa/attachment.sig>
More information about the Dune
mailing list