[Dune] How to iterate over Process Boundary edges
Aleksejs Fomins
aleksejs.fomins at lspr.ch
Mon Apr 13 09:34:59 CEST 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Dear Martin,
Thank you for clearing this up! I was a little lost in the notation, and I agree that it does follow from the dune-paper that Border only contains entities that are shared by multiple processes if any.
Regards,
Aleksejs
On 10/04/15 16:25, Martin Nolte wrote:
> Hi Aleksejs,
>
> the partition types apply _only_ to the parallel interface. In a serial grid, all entities are considered interior (including those on the domain boundary).
>
> In parallel, the elements are distributed onto multiple processes. Each element is interior on exactly one process. Entities of higher codimension are interior if and only if they all elements "containing" them are interior. Likewise they are overlap or ghost if and only if all elements "containing" them are overlap or ghost respectively. Otherwise they are border or front, depending on whether they are "contained" in an interior element.
>
> I apologize for the sloppy term "contained", but at this point my personal view disagrees with the dune-grid paper. In the paper, "contained" means corresponds to the subset relation of the geometric realization. From my point of view, it should be the topologigal subentity relation. There is a tiny difference between them and I am not sure all grid implementations conform the the paper, here.
>
> Anyway: You simply want the border entities!
>
> Best,
>
> Martin
>
> PS: Maybe I should just have posted the link to the dune-grid paper ;-). But one really has to read that carefully...
>
> On 04/10/2015 01:28 PM, Aleksejs Fomins wrote:
> Dear Christian,
>
> My primary target is the curvilinear VTK writer that I wrote. When inserting entities into the writer, I like to mark them with one of the following types
>
> 1) Interior - The entities that belong only to this process, excluding the ones on the boundary
> 2) DomainBoundary - The entities that belong only to this process, and are on the boundary of the global computational domain
> 3) Ghost - The entities that are not normally present on this process, but are subentities of elements neighboring the elements on this process.
> 4) ProcessBoundary - The entities obtained by intersection of Interior and Ghost elements, that is, faces, edges and vertices, which are present on two or more processes regardless of whether the ghost elements are even defined.
>
> In Dune, as I understand now, there is only the Partition type Border, which in my understanding is Border = DomainBoundary + ProcessBoundary. I find it very useful for visualization being able to switch off DomainBoundaries but keep ProcessBoundaries in VTK.
>
>
> I already have an iterator which performs this operation internally inside the grid, but it requires using an extension of standard grid API. I wanted to perform this operation with just using the existing GridAPI functionality.
>
> If my Dune-definition of the word ProcessorBoundary is different from the one above, could you hint me to what it means in the Dune context.
>
> Regards,
> Aleksejs
>
>
> On 10/04/15 13:10, Christian Engwer wrote:
>>>> Dear Aleksejs,
>>>>
>>>> OK, this now clearifies a lot :-)
>>>>
>>>>> According to the picture in dune-grid-howto, the faces and edges shared by Interior and Ghost at the same time are considered Border.
>>>>>
>>>>> So in Dune-terminology, I would like to iterate over all edges on
>>>>> partition Border, and select only those that are found on multiple
>>>>> processors (ProcessorBoundary), excluding the ones that are found
>>>>> only on one process (DomainBoundary).
>>>>
>>>> This is something totally different from iterating over the processor
>>>> boundary.
>>>>
>>>> As Martin suggested, the easiest way to is us the grid functionality
>>>> and us a communicate. During scatter you can tag your entities, store
>>>> the other processor ids, or what ever you think is appropriate.
>>>>
>>>> Perhaps it would be helpful to understand what you are trying to
>>>> achieve in the end, because I don't think that your primary intent is
>>>> to iterator over those edges?!
>>>>
>>>> Ciao
>>>> Christian
>>>>
>>
>> _______________________________________________
>> Dune mailing list
>> Dune at dune-project.org
>> http://lists.dune-project.org/mailman/listinfo/dune
>>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAEBAgAGBQJVK3GjAAoJEDkNM7UOEwMZkNoQAMc70xvuufP7BptSOqXAQbKm
xQsO+aw5uvVAzYLmuNm93knriK9kERNrIjctAcAjZpFwbWArzrYRs0mzbPDM+Xsp
nVPqhRRgEROmGlwCBIka3NLsAr4xFPSk2luDUhRnDeWUgpwDzxHcrUICG1T05hjO
qYxdZRu+xlgX7IBa2sHfy6CRfGh4G0pXeBrigA2IAbScPqgJ+P2s/s2dhxViwSaj
WYVKopJv00IWemoCIu706yYw8mi+TSXtKcauEsWblYqEGJYKtWDcNC7kQBbzdqly
TNEgmq1yvd9S9EToy8vuBKLNdhVdCPRIf3mE6qoAUpeSgKlBNzTL/F49FDiUkI9a
IE0t+yxbS10QAwaewIHP0mtob5eCSeKkNHKDmPEzoeboNZQgeoVXNEdH/bc4S5td
wqUXWho3OEvR1sLmbMIazvqNf2TwScXiENGI719kDO9gwZAw75OQjhVr/VldsBCL
m7ikgC8MaaL1HQVtTeX/IrVCmK3HZo+kHJ5DD6UAI87V1zn4pVpE1AXhRt6YPHWm
BlYDIVxWfQmwySCY5PySryX/KILQaUUSHz79B770sRURccVdKHOsY+f1vfVNlmfS
4RPU6SribRn9B5cE/gHm23GlQhnoYMnALeBBOj4EfAj0fzKTBAteimOudpbUFxMi
bgH2D0ZnH4JuqXNDj7Ok
=xeFv
-----END PGP SIGNATURE-----
More information about the Dune
mailing list