[Dune] Extract neighbouring element opposite to a certain vertex

Andreas Dedner a.s.dedner at warwick.ac.uk
Thu Feb 25 17:33:50 CET 2016


Are we talking about the left picture for the 3d simplex?
There the vertex right at the top is number 3 and that is opposite of 
the face called bottom which is number 0.
The vertex right at the back is 2 and that is opposite of the front face 
(number 1). Alll of this seems to follow the
    face=3-vertex
formula, doesn't it?
Andreas

On 25/02/16 16:25, Agnese, Marco wrote:
>  From the picture it seems that the vertex 3 is opposite to the so called front face (which has index 1) and that vertex 2 is opposite to the bottom one (index 0). It looks that the bottom face is defined by the vertices 0, 1 and 3 and that the vertex 2 is outside the plane of the screen. Obviously if the bottom face is defined by the vertices 0, 1 and 2 everything works fine. But since there aren't any dashed lines, it means that all edges are visible and necessary 2 is the "top''of the pyramid pointing outside the screen.
>
>
> Or the fading numbers are the one covered by the faces? In that case everything is correct. But this isn't a very standard notation, at least for me, so, looking at the picture it comes automatically to me the first configuration which is wrong.
>
> I don't know if it will be formatted correctly in the mailing list but the reference element should be drawn like this:
>              
>
>             3
>           ,/|`\
>         ,/  |  `\
>       ,/    '.   `\
>     ,/       |     `\
>   ,/         |       `\
> 0-----------'.-----2
>   `\.         |      ,/
>      `\.      |    ,/
>         `\.   '. ,/
>            `\. |/
>               `1
>                 
>
> Hope to have been sufficiently clear :)
> Cheers,
> Maco
>
> ________________________________________
> From: Carsten Gräser <graeser at mi.fu-berlin.de>
> Sent: 25 February 2016 16:04
> To: Agnese, Marco; dune at dune-project.org
> Subject: Re: [Dune] Extract neighbouring element opposite to a certain vertex
>
> Am 25.02.2016 um 15:59 schrieb Agnese, Marco:
>> Hi Martin,
>>
>>
>> yes I am using conforming meshes.
>>
>>
>> By the way
>> https://www.dune-project.org/doc-2.2.1/doxygen/html/group__GeometryGenericReferenceElements.html seems
>> wrong for the 3d simplex (section 3.). Shouldn't be 1 bottom and 0 front
>> in the face numbering picture? Otherwise vertex_idx+oppsite_face_idx !=
>> entity_dimension for vertex_idx=3 or 2.
> I can't see any problem here, it's
>
>    3(top vertex) + 0(bottom face) = 3
>
> and
>
>    2(back vertex) + 1 (front face) = 3,
>
> exactly as stated by Martin.
>
> Best,
> Carsten
>
>>
>> Thank you very much,
>>
>> Marco
>>
>>
>>
>> ------------------------------------------------------------------------
>> *From:* Martin Nolte <nolte at mathematik.uni-freiburg.de>
>> *Sent:* 25 February 2016 14:41
>> *To:* dune at dune-project.org
>> *Subject:* Re: [Dune] Extract neighbouring element opposite to a certain
>> vertex
>>
>> Hi Marco,
>>
>> yes, you have to iterate over all intersections to find the corresponding
>> neighboring entity (I assume you are using a conforming grid, otherwise the
>> neighbor will not be unique).
>>
>> You seek the intersection satisfying
>>
>> indexInIndide() == Entity::dimension - vtxIdx.
>>
>> Note that, in general, the world dimension does not coincide with the
>> dimension (though I guess it does in your case).
>>
>> As to your second question: There is no guarantee on the order the faces
>> are
>> traversed in.
>>
>> Best,
>>
>> Martin
>>
>> On 02/25/2016 03:29 PM, Agnese, Marco wrote:
>>> Hi,
>>>
>>> I have a simplex entity and I want to extract the neighbouring element
>>> opposite to the vertex with local index vtxIdx.
>>>
>>> Therefore I need to find the intersection opposite to this vertex.
>>>
>>> This intersection has local index faceIdx=worlddim-vtxIdx. Is it right?
>>>
>>>
>>> So if I extract entity.template subEntity<1>(faceIdx) I should be able to
>>> extract this face. Am I correct? But the face extracted in this way is not an
>>> intersection therefore I can't use it to find the neighbouring entity. Is
>>> there a solution here?
>>>
>>>
>>> The other solution is to loop over the intersections and extract the vtxIdx-th
>>> one. But does it work always? Or which is the ordering of this intersections?
>>>
>>> I would expect to have them sorted accordingly the face local index (so
>>> faceIdx) but that seems not to be the case. What am I missing?
>>>
>>>
>>> Thank you very much for your help,
>>>
>>> cheers,
>>>
>>> Marco.
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune





More information about the Dune mailing list