[Dune] communication problem in ALUGrid

Arya Fallahi arya.fallahi at gmail.com
Tue Apr 15 16:46:28 CEST 2014


Dear Andreas,

Thanks for your reply. In fact, the code never worked with

grid_.communicate(dataHandle,InteriorBorder_All_Interface,BackwardCommunication)

I also thought of the All_All_Interface and ForwardCommunication. This
worked and that was all I needed.

I have another question about the definition of ghost elements. I always
used to communicate through the faces and I always considered that outer
elements sharing a face with the border are in the set of ghost elements.
However, my new code needs to communicate through nodes. Therefore, I have
an ambiguity if an element out of the processor domain sharing only a node
with the processor boundary is considered as a ghost element or not. Based
on the illustration in the Dune tutorial, it seems it is the case and the
element is considered as a ghost element. I will be thankful if you confirm
it.

Thanks in advance for your help and best regards,
Arya


On Mon, Apr 14, 2014 at 8:17 PM, Andreas Dedner <a.s.dedner at warwick.ac.uk>wrote:

>  Dear Arya.
> Its quite possible that there is a bug here - I have not yet tried to use
> the BackwardCommunication
> approach yet and I do not know if anybody has.
> ./space/common/cachedcommmanager.hhI think
>
> grid_.communicate(dataHandle,InteriorBorder_All_Interface,BackwardCommunication);
> should do the right thing though - so it probably is a bug in ALU. Have
> you tried it with any of the other
> grid managers for comparison? And a second question: Have you tried
> All_All and use entity.ghost() etc.
> to figure out what to do?
> A small test case showing the problem would help to find the bug.
> Sorry I can not say more at the moment
> Andreas
>
> On 05/04/14 17:16, Arya Fallahi wrote:
>
> Dear Dune,
>
>  I have since a couple of days a serious problem with communication in
> ALUGrid and I could not still solve it. I thought probably this email list
> can be as always helpful for my problem. The problem seems to be easy but I
> could not figure out how to solve it. It is described as follows:
>
>  Suppose an element P is a ghost element in processor I and an
> InteriorBorder element in processor J. In each processor there is a
> variable K corresponding to the element. The value of of K in processor I
> needs to be sent to processor J, added to K in processor J and saved there.
> This is what I need to do and I could not.
>
>  What I thought maybe correct to do is using the following parameters for
> communication function:
>
>
> grid_.communicate(dataHandle,InteriorBorder_All_Interface,BackwardCommunication);
>
>  This configuration should send values from all entities to buffer and
> then write to InteriorBorder elements. Is it correct?
>
>  I think if all entities send the values to buffer then processors I and
> J both send their K values to the buffer. Which one then is written?
>
>  I may have done a stupid mistake because I do not have a complete
> picture of these interfaces and directions. It will be very helpful if
> someone describes it for me.
>
>  Thank you very much for your help,
> Best regards,
> Arya Fallahi
>
>
> _______________________________________________
> Dune mailing listDune at dune-project.orghttp://lists.dune-project.org/mailman/listinfo/dune
>
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20140415/4786cd5d/attachment.htm>


More information about the Dune mailing list