[Gmsh] Hybrid mesh and combine triangles in quadrilaterals

Christophe Geuzaine cgeuzaine at ulg.ac.be
Wed Nov 5 21:44:34 CET 2008


Fabian wrote:
> Hi Christophe,
> 
> thanks a lot!
> 
> Actually, it seems that I wasted a lot of time to create a hex mesh for 
> a room airflow setup with a jet just in the middle of one wall.
> I attached my approach. It looks like, that I could have done it a lot 
> easier and with much less transfinite surfaces/volumnes using 'Extrude'. 
> Though, do you think that it could be a problem to expand the inlet 
> section just like in my attached approach using extrude? The middle 
> section should expand, whereas the other part of the room would become 
> smaller in the x-direction...

Hi Fabian - Unfortunately no... But I don't think it would be too 
complicated to add such a feature(?)

In the meantime we've added an automatic way to compute the corners of 
the transfinite interpolation for surfaces. (You can now just use 
"Transfinite Surface{1,2,3,4};" if the surfaces 1...4 are simple 
surfaces that only have 3 or 4 bounding vertices. For more complicated 
surfaces you'll still need to specify the corners by hand. Idem for 
volumes.). The patch should be available in tomorrow's nightly build.


> 
> Regards!
> Fabian
> 
> 
> Christophe Geuzaine wrote:
>> Fabian wrote:
>>  
>>> Hi Christophe,
>>>
>>> Christophe Geuzaine wrote:
>>>    
>>>> Fabian wrote:
>>>>  
>>>>      
>>>>> Hi,
>>>>>
>>>>> I just saw the geometry and wonder, if there is a chance to extrude 
>>>>> the             
>>>> sure: cf. attached file.
>>>>         
>>> Oh, thanks! Am I able to declare any progression or bump to the 
>>> extrude volume as well? Would be great.
>>>
>>>     
>>
>> You can specify the number of elements and the relative height of each
>> extruded layer. For example:
>>
>> Extrude {0, 0, 1} {
>>    Surface{9, 1};
>>    Layers{{1,1,1,1,1,1}, {0.05,0.15,0.5,0.85,0.95,1}};
>>    Recombine;
>> }
>>
>> You could thus generate a progression with something like this:
>>
>> n = 6;
>> r = 2;
>> a = (r - 1) / (r^n - 1);
>> one[0] = 1;
>> layer[0] = a;
>> For i In {1:n-1}
>>    one[i] = 1;
>>    layer[i] = layer[i-1] + a * r^i;
>> EndFor
>> Extrude {0, 0, 1} { Surface{9, 1}; Layers{one[], layer[]}; Recombine; }
>>
>>
>>
>>
>>
>>  
>>> Fabian
>>>
>>>
>>>    
>>>>  
>>>>      
>>>>> surfaces and create a transfinite volume?
>>>>> It's probably not working due to more than six surfaces building 
>>>>> the volumen!? Would be nice, if this would work, though...
>>>>>
>>>>> Fabian
>>>>>
>>>>> Christophe Geuzaine wrote:
>>>>>           
>>>>>> Durufle Marc wrote:
>>>>>>                 
>>>>>>> Hi,
>>>>>>> I have two questions :
>>>>>>>
>>>>>>> 1- How do you create hybrid meshes in 2-D (quad-dominant with a 
>>>>>>> few triangles) ?
>>>>>>> Until now, I am using the Recombine option, but often I get 
>>>>>>> non-convex quadrilaterals.
>>>>>>> In the picture attached to this message, you can see that two 
>>>>>>> elements (in black) are non-convex
>>>>>>> quads and that's a problem ... So, often I change the 
>>>>>>> characterisc length in the hope that I will have only
>>>>>>> fine quadrilaterals. Is it possible to require that all 
>>>>>>> quadrilaterals are convex ?
>>>>>>>
>>>>>>>                         
>>>>>> Yes. In your file you use
>>>>>>
>>>>>> Recombine Surface {1,s0[0]} = 100;
>>>>>>
>>>>>> which means that you allow quads with angles between 90-100 and 
>>>>>> 90+100 degrees (which does not make sense).
>>>>>>
>>>>>> Use
>>>>>>
>>>>>> Recombine Surface {1,s0[0]} = 45;
>>>>>>
>>>>>> instead, which will allow angles between 90-45=45 and 90+45=135 
>>>>>> degrees. (45 is the default if you don't specify anything, i.e., 
>>>>>> with just "Recombine Surface {1,s0[0]}".)
>>>>>>
>>>>>> We are working on an automatic full quad algorithm, but it's not 
>>>>>> ready yet. In the meantime for simple geometries you could also 
>>>>>> use Transfinite meshes to generate a full quad mesh (see attached 
>>>>>> file).
>>>>>>
>>>>>>
>>>>>>                 
>>>>>>> 2- In 3-D, when I try "Recombine Volume", it doesn't work. So, 
>>>>>>> how is it possible with gmsh
>>>>>>> to create 3-D hexahedral-dominant meshes (with some tets, 
>>>>>>> pyramids and wedges) ?
>>>>>>>                         
>>>>>> Non. Your only choices for generating hex/prism/pyramid meshes are 
>>>>>> extruded (see "Extrude Surface") or transfinite (see "Transfinite 
>>>>>> Volume") grids.
>>>>>>
>>>>>>
>>>>>>
>>>>>>                 
>>>>>>> Thank you for your help.
>>>>>>>
>>>>>>> PS : I am using gmsh 2.24
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------ 
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>>                 
>>>>> _______________________________________________
>>>>> gmsh mailing list
>>>>> gmsh at geuz.org
>>>>> http://www.geuz.org/mailman/listinfo/gmsh
>>>>>
>>>>>
>>>>>             
>>>>         
>>>
>>>     
>>
>>
>>   
> 


-- 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science
http://www.montefiore.ulg.ac.be/~geuzaine