[Dune] How to iterate over Process Boundary edges

Aleksejs Fomins aleksejs.fomins at lspr.ch
Fri Apr 10 13:28:38 CEST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJVJ7PmAAoJEDkNM7UOEwMZNfUP/R6q4WSSbm2XLAs8OvHGJgL1
FspJyxc3VKRZBaTb9KY85pwfUAj3JDf3YX3SaJdAGzThEr97ciQGQG2dhQ7StrrT
jaxQ+bpAe7va008YJvGUhVaFVf0udipq/BzAIQtqTqkLMqQpDcb9VPyZlv2/CXqC
f4RqrS9RbbxdZOJBJjFoRv8y5kBSuSRj3F6bJYBO8ea2LepGSoqbvaHH97EKLlYn
eOC5e7VinZbd+a+RDTyCTb8yspJ2viw8yyZraiFz+K3fLTXKnzFUPHiko9cUcMaH
UWXOIRhNam9AQYBzgtmyu6hxhvYvNBZSd5NmZFykbiu9fUVpgroDGQvnZNVZ/F+z
ZR4xUoYdJ/BdmWthyE930OzCtcx6PLYOWgjhE7zcuzBlERhT46hl5eD76Zl3aHRH
MzC0nteCvI6ln5sxsAjQZ9yeMe+SnvDK+F6orkPbgcrIe2Tl7xKnzzXbwV5w69/Z
31cImhTfuZyeK92L3TjHTf1LeDFh7DIGv/Ot8oUxq0b2zZrchrCoDlFF46Z6l5uP
XaaUvE05xm3xjOLqwW39eWw4vziD/OAVP98dO3SuS7YVCTgSkP9YXtg8Hq0QkRkB
OHDc1FseGy2fOoZnwaKoTwPoy6Xy/DKMn0Olk/Q8rdFu1+71YD0LyKL2P68hgHFB
9dIy7OSeBagq7OhpLs5u
=KQ6k
-----END PGP SIGNATURE-----




More information about the Dune mailing list