[Gmsh] Numbering of higher order elements

Aleksejs Fomins aleksejs.fomins at lspr.ch
Wed Jul 16 17:54:57 CEST 2014


Thanks Martin,

However, it would be great to hear from one of the developers the answer
for the following questions:

Will GMSH occasionally create an incomplete triangle in a tetrahedral
mesh? Can it be told not to do so? What is the advantage of including
such triangles in the triangular mesh.

Thanks again,
Aleksejs


On 07/16/2014 05:33 PM, Martin Vymazal wrote:
> Hi Aleksejs,
> 
>  I don't have experience with this, but I think you should google for 
> 'serendipity element'.
> 
> Incomplete elements can also be used in 3D - typically hexahedra, but I 
> suppose you could do the same with tetrahedra as well.
> 
> Best regards,
> 
>  Martin Vymazal
> 
> 
> On Wednesday 16 of July 2014 16:41:01 Aleksejs Fomins wrote:
>> Dear GMSH,
>>
>> Martin, you helped me a lot, thank you :)
>>
>>
>> I have another question. There seem to be some higher order triangles in
>> the manual that are called "incomplete", in the sense that they have
>> less than usual DoF's by not putting any DoF's on the faces. I have 2
>> questions:
>>
>> 1) What does it mean from interpolatory point of view - are triangles
>> interpolated only using a subset of the lagrange polynomials required to
>> satisfy a given order?
>>
>> 2) Is this only a 2D concept, or can such triangles be integrated into
>> tetrahedral mesh as well? At the moment I do not see that being possible
>> since there are no incomplete tetrahedra in the description,
>> but I just wanted to check
>>
>> Cheers,
>> Aleksejs
>>
>> On 07/16/2014 04:17 PM, Benedikt Oswald wrote:
>>>> From: Martin Vymazal <martin.vymazal at vki.ac.be>
>>>> Subject: Re: [Gmsh] Numbering of higher order elements
>>>> Date: 16 Jul 2014 16:15:47 GMT+2
>>>> To: gmsh at geuz.org
>>>>
>>>> Hi Aleksejs,
>>>>
>>>> Below is a long explanation of what section 9.3.2 ('High Order Elements')
>>>> in the GMSH reference manual means according to my understanding. I'm
>>>> not a GMSH developer so please use the information below at your own
>>>> risk.
>>>>
>>>> I will give you an example for tetrahedra. In the following, I suppose
>>>> that
>>>> the local numbering of DOFs starts from 0.
>>>>
>>>> You have to apply recursively the following one rule in order to
>>>> enumerate
>>>> your degrees of freedom:
>>>>
>>>> Labeling all DOFs processes all topological sub-entities of the reference
>>>> element going from dimension 0 to higher dimensions.
>>>>
>>>> This means that:
>>>>
>>>> 0) First you number all vertices: 0,1,2,3
>>>> 1) Then you number all remaining degrees of freedom on edges (1D
>>>> entities)
>>>>
>>>> 	of the tetrahedron:
>>>> 	1a) edge 0-1 will have interior DOFs 4, ..., 3 + (P-1), going from
>>>> 	vertex 0
>>>> 	
>>>> 		towards vertex 1;  P is polynomial order of your reference element
>>>> 		
>>>>        1b) edge 1-2 will have interior DOFS 3+ (P-1) + 1, ..., 3 +
>>>>        2*(P-1)
>>>>        1c) edge 2-0
>>>>        1d) edge 3-0
>>>>        1e) edge 3-2
>>>>        1f)  edge 3-1
>>>>
>>>> At this point, all vertices and interior nodes on edges have assigned
>>>> numbers.
>>>>
>>>> The next step is numbering the faces (2D entities) of the tetrahedon.
>>>> Since
>>>> each face already has numbers assigned, you only need to label interior
>>>> face nodes. The interior itself is in fact a triangle of lower order, so
>>>> you recursively apply the rule I mentioned above: label all vertices of
>>>> this lower order triangle, then all edges. If there's anything left in
>>>> the interior, repeat.
>>>>
>>>> The faces are processed in the following order:
>>>>
>>>> 2a) 0, 2, 1, where 0, 2 and 1 are vertices of the face
>>>> 2b) 0, 1, 3
>>>> 2c) 0, 3, 2
>>>> 2d) 3, 1, 2
>>>>
>>>> Now you have assigned numbers to all nodes on the 'skin' of your
>>>> high-order
>>>> tetra, and you can apply all of the above to the lower-order tetrahedron
>>>> which is left inside.
>>>>
>>>> For more information, look in the source code: Geo/MTetrahedron.h
>>>>
>>>> What helped me a lot for code testing (I also needed to read GMSH files
>>>> with high-order elements), was to generate a high-order mesh with a
>>>> single element. Then I looked at what the *.msh file contains and
>>>> compared with what I saw in the GUI. Don't forget that GMSH numbers the
>>>> nodes in msh files starting from 1.
>>>>
>>>> Best regards,
>>>>
>>>>    Martin Vymazal
>>>>
>>>> On Wednesday 16 of July 2014 13:16:53 Aleksejs Fomins wrote:
>>>>> Dear GMSH developers,
>>>>>
>>>>> I am currently trying to write a .MSH reader application for our finite
>>>>> element code. I would like to read higher order curvilinear elements
>>>>> (triangles and tetrahedrons). For that I would like to know the exact
>>>>> ordering of nodes within a higher order element for each element order
>>>>> (1 to 5).
>>>>>
>>>>> In section 9.3.1 of the reference I found exactly what I needed for
>>>>> orders 1 and 2. Unfortunately, I am unable to understand the exact
>>>>> ordering mechanism for other orders from section 9.3.2.
>>>>>
>>>>> Can you please help me with this?
>>>>>
>>>>> Regards,
>>>>> Aleksejs Fomins
>>>>
>>>> _______________________________________________
>>>> gmsh mailing list
>>>> gmsh at geuz.org
>>>> http://www.geuz.org/mailman/listinfo/gmsh
> 
> 
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 551 bytes
Desc: OpenPGP digital signature
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20140716/fc6789e7/attachment.asc>