Dear Jozsef, Can you try the latest development snapshot? I think this should be fixed.
Christophe > On 25 Jun 2019, at 09:23, Kópházi József <[email protected]> wrote: > > Dear Gmsh users, > > I created a simple extruded model in gmsh and the mesh was written into a > legacy format file (2.2). Then I'm trying to load the very same mesh into the > same version of gmsh and it keeps complaining about missing periodic features. > > Typical error messages: > > Info : Could not find periodic slave entity 5 of dimension 0 > Info : Could not find periodic master entity 2 of dimension 0 > ... several more like these ... > Info : Could not find periodic slave entity 30 of dimension 1 > Info : Could not find periodic master entity 6 of dimension 1 > Info : Could not find copy of vertex 6 in face 26, looking in entity 17 of > dimension 2 > Error : Could not find copy of vertex 6 in 26 nor in 17 > > The problem occurs with gmsh 4.2.2 and 4.3.0 as well. If I use file format > 4.1 or revert to an older version of gmsh (3.0.1) the problem disappears. > > I never tried or wanted to produce any periodic information in the mesh file. > Is there any way to disable emission of periodic information? > > Thank you, > > J > > > Input file: > > // Set the defaults > If ( !Exists( divisions ) ) > divisions = 5; > EndIf > If( !Exists( base_structured ) ) > base_structured=0; > EndIf > If( !Exists( steel_hex ) ) > steel_hex=1; > EndIf > If( !Exists( lead_hex ) ) > lead_hex=1; > EndIf > > // Points > internal_point = newp; Point( internal_point) = { 0.00 , 0.00, > 0.00, 1.0}; > middle_point = newp; Point( middle_point) = { 2.00 , 0.00, > 0.00, 1.0}; > external_point = newp; Point( external_point) = { 12.06 , 0.00, > 0.00, 1.0}; > > > // Lines > steel_line = newl; Line( steel_line) = {internal_point, middle_point}; > lead_line = newl; Line( lead_line) = {middle_point, external_point}; > > // Extrude the whole thing to form the disk we need > If( base_structured == 1 ) > > If( steel_hex == 1 ) > sout[] = Extrude{ { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 0.0 }, Pi/2 } > { Line { steel_line }; > Layers{ 5*divisions }; > Recombine; }; > Else > sout[] = Extrude{ { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 0.0 }, Pi/2 } > { Line { steel_line }; > Layers{ 5*divisions }; }; > EndIf > > If( lead_hex == 1 ) > lout[] = Extrude{ { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 0.0 }, Pi/2 } > { Line { lead_line }; > Layers{ 5*divisions }; > Recombine; }; > Else > lout[] = Extrude{ { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 0.0 }, Pi/2 } > { Line { lead_line }; > Layers{ 5*divisions }; }; > EndIf > > Else > > sout[] = Extrude{ { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 0.0 }, Pi/2 } > { Line { steel_line }; }; > If( steel_hex == 1 ) > Recombine Surface{sout[1]}; > EndIf > > lout[] = Extrude{ { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 0.0 }, Pi/2 } > { Line { lead_line }; }; > If( lead_hex == 1 ) > Recombine Surface{lout[1]}; > EndIf > > EndIf > > Coherence; > > // Pick up new entities > //Printf( "%f %f %f %f", sout[0], sout[1], sout[2], sout[3] ); > steel_otherside_line = sout[0]; > steel_surface = sout[1]; > > //Printf( "%f %f %f %f", lout[0], lout[1], lout[2], lout[3] ); > lead_otherside_line = lout[0]; > lead_surface = lout[1]; > > middle_line = sout[2]; > external_line = lout[2]; > > // Transfinite settings > Transfinite Line { steel_line} = 1*divisions +1 Using > Progression 1.; > Transfinite Line { lead_line} = 5*divisions +1 Using > Progression 1.; > > Transfinite Line { steel_otherside_line} = 1*divisions +1 Using > Progression 1.; > Transfinite Line { lead_otherside_line} = 5*divisions +1 Using > Progression 1.; > > If( !(base_structured == 1) ) > Transfinite Line { middle_line} = 1.5*1*divisions +1 Using > Progression 1.; > Transfinite Line { external_line} = 1.5*5*divisions +1 Using > Progression 1.; > EndIf > > > // Extrude everything vertically > vout = Extrude{ 0.0, 0.0, 2.0 } > { Surface{ steel_surface, lead_surface }; > Layers{ divisions }; > Recombine; }; > > // Pick up new surfaces and volumes > steel_top_surface = vout[0]; > steel_volume = vout[1]; > steel_left_surface = vout[2]; > middle_surface = vout[3]; > steel_back_surface = vout[4]; > > lead_top_surface = vout[5]; > lead_volume = vout[6]; > lead_left_surface = vout[7]; > external_surface = vout[8]; > lead_back_surface = vout[9]; > > > // Physical domains > Physical Surface("ExternalSurface") = {external_surface}; > Physical Surface("MiddleSurface") = {middle_surface}; > > Physical Surface("SteelLeftSurface") = {steel_left_surface}; > Physical Surface("LeadLeftSurface") = {lead_left_surface}; > Physical Surface("SteelOtherSurface") = {steel_back_surface}; > Physical Surface("LeadOtherSurface") = {lead_back_surface}; > > Physical Surface("SteelBottomSurface") = {steel_surface}; > Physical Surface("SteelTopSurface") = {steel_top_surface}; > > Physical Surface("LeadlBottomSurface") = {lead_surface}; > Physical Surface("LeadTopSurface") = {lead_top_surface}; > > Physical Volume("SteelVolume") = {steel_volume}; > Physical Volume("LeadVolume") = {lead_volume}; > > > > // Save it in old format > Mesh.MshFileVersion = 2.2; > > > > _______________________________________________ > gmsh mailing list > [email protected] > http://onelab.info/mailman/listinfo/gmsh — Prof. Christophe Geuzaine University of Liege, Electrical Engineering and Computer Science http://www.montefiore.ulg.ac.be/~geuzaine _______________________________________________ gmsh mailing list [email protected] http://onelab.info/mailman/listinfo/gmsh
