[Gmsh] Periodic surfaces not working for second-order elements in gmsh4

Christophe Geuzaine cgeuzaine at uliege.be
Sat Nov 24 16:56:42 CET 2018



> On 23 Nov 2018, at 18:37, cgeuzaine at uliege.be wrote:
> 
> Dear Martien,
> 
> Indeed, the more advanced periodic meshing features introduced in Gmsh 4 currently require the transformation to be specified explicitly for high order meshes. 
> 
> @Koen - would it be possible to implement a fallback (that just assumes that the parametrizations are compatible, without checking) in your new algo, to restore Gmsh 3 compatibility for simple geometries?

I have made the new optimization pass for high-order perdiodic meshes optional - using the same option that we already use for optimizing non-periodic high-order meshes. This should provide better backward compatibility with Gmsh 3.

Can you test the latest snapshot and let us know?

Christophe


> 
> Christophe
> 
>> On 23 Nov 2018, at 18:31, Hulsen, M.A. <M.A.Hulsen at tue.nl> wrote:
>> 
>> Hi,
>> 
>> The following geo file is not working correctly with gmsh -3 -order 2 (I am using 4.0.5) whereas it used to work in gmsh3.0.6.
>> 
>> ox = 0.0;
>> oy = 0.0;
>> oz = 0.0;
>> lx = 4.0;
>> ly = 4.0;
>> lz = 4.0;
>> dx_box = 0.6;
>> Point(1) = {ox,    oy,    oz,    dx_box};
>> Point(2) = {ox+lx, oy,    oz,    dx_box};
>> Point(3) = {ox+lx, oy,    oz+lz, dx_box};
>> Point(4) = {ox,    oy,    oz+lz, dx_box};
>> Point(5) = {ox,    oy+ly, oz,    dx_box};
>> Point(6) = {ox+lx, oy+ly, oz,    dx_box};
>> Point(7) = {ox+lx, oy+ly, oz+lz, dx_box};
>> Point(8) = {ox,    oy+ly, oz+lz, dx_box};
>> For i In {1:8}
>> Physical Point(i) = i;
>> EndFor
>> Line(1) = {1, 2};
>> Line(2) = {2, 3};
>> Line(3) = {3, 4};
>> Line(4) = {4, 1};
>> Line(5) = {3, 7};
>> Line(6) = {7, 6};
>> Line(7) = {6, 2};
>> Line(8) = {1, 5};
>> Line(9) = {5, 8};
>> Line(10) = {8, 4};
>> Line(11) = {8, 7};
>> Line(12) = {6, 5};
>> Line Loop(1) = {1, 2, 3, 4};
>> Line Loop(2) = {2, 5, 6, 7};
>> Line Loop(3) = {12, 9, 11, 6};
>> Line Loop(4) = {4, 8, 9, 10};
>> Line Loop(5) = {3, -10, 11, -5};
>> Line Loop(6) = {1, -7, 12, -8};
>> For i In {1:6}
>> Plane Surface(i) = {i};
>> Physical Surface(i) = i;
>> EndFor
>> Periodic Surface 2{2,5,6,7} = 4{-4,-10,-9,-8};
>> Periodic Surface 6{1,-7,12,-8} = 5{-3,5,-11,10};
>> Periodic Surface 3{12,9,11,6}= 1{-1,-4,-3,-2};
>> surf_loop[0] = newsl;
>> Surface Loop(surf_loop[0]) = {1, 2, 3, 4, 5, 6};
>> Volume(1) = {surf_loop[]} ;
>> Physical Volume(1) = {1};
>> 
>> Replacing the line loops with:
>> 
>> Line Loop(1) = {-1,-4,-3,-2};
>> Line Loop(2) = {2, 5, 6, 7};
>> Line Loop(3) = {12, 9, 11, 6};
>> Line Loop(4) = {-4,-10,-9,-8};
>> Line Loop(5) = {-3,5,-11,10};
>> Line Loop(6) = {1, -7, 12, -8};
>> 
>> and the periodic surfaces with:
>> 
>> Periodic Surface {2} = {4} Translate{lx,0,0};
>> Periodic Surface {3} = {1} Translate{0,ly,0};
>> Periodic Surface {5} = {6} Translate{0,0,lz};
>> 
>> works both in gmsh3 and gmsh4. So I do have a workaround, but incompatibilities between 3 and 4 can lead to users avoiding the new version.
>> 
>> Martien Hulsen
>> 
>> 
>> _______________________________________________
>> gmsh mailing list
>> gmsh at onelab.info
>> http://onelab.info/mailman/listinfo/gmsh

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

Free software: http://gmsh.info | http://getdp.info | http://onelab.info




More information about the gmsh mailing list