diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 54aa87ccccb3de6daa92d482822df73c4823471f..3c5ebdcb6f16ff46d70aa1a639428bc8d7b84b17 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1122,7 +1122,7 @@ static const yytype_uint16 yyrline[] = 3561, 3565, 3569, 3573, 3579, 3585, 3589, 3593, 3597, 3601, 3620, 3633, 3636, 3652, 3655, 3672, 3675, 3681, 3684, 3691, 3694, 3701, 3757, 3827, 3832, 3899, 3935, 3943, 3986, 4025, - 4045, 4075, 4101, 4127, 4153, 4179, 4205, 4227, 4255, 4283, + 4045, 4074, 4101, 4127, 4153, 4179, 4205, 4227, 4255, 4283, 4287, 4291, 4319, 4358, 4397, 4418, 4439, 4466, 4470, 4480, 4515, 4516, 4517, 4521, 4527, 4539, 4557, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4600, 4601, 4602, 4603, @@ -9539,20 +9539,19 @@ yyreduce: } else{ if (List_Nbr((yyvsp[(10) - (11)].l)) < 12){ + // FIXME Koen restore full automatic case here if List_Nbr($10) == 0) yymsg(0, "Affine transformation requires at least 12 entries"); } else { - std::vector<double> transfo(16,0); - for(int i = 0; i < List_Nbr((yyvsp[(10) - (11)].l)); i++) List_Read((yyvsp[(10) - (11)].l), i, &transfo[i]); - + for(int i = 0; i < List_Nbr((yyvsp[(10) - (11)].l)); i++) + List_Read((yyvsp[(10) - (11)].l), i, &transfo[i]); for(int i = 0; i < List_Nbr((yyvsp[(4) - (11)].l)); i++){ double d_master, d_slave; List_Read((yyvsp[(8) - (11)].l), i, &d_master); List_Read((yyvsp[(4) - (11)].l), i, &d_slave); int j_master = (int)d_master; int j_slave = (int)d_slave; - addPeriodicEdge(j_slave,j_master,transfo); } } @@ -9564,7 +9563,7 @@ yyreduce: case 321: /* Line 1787 of yacc.c */ -#line 4077 "Gmsh.y" +#line 4076 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -9572,12 +9571,13 @@ yyreduce: } else{ if (List_Nbr((yyvsp[(10) - (11)].l)) < 12){ + // FIXME Koen restore full automatic case here if List_Nbr($10) == 0) yymsg(0, "Affine transformation requires at least 12 entries"); } else { std::vector<double> transfo(16,0); - for(int i = 0; i < List_Nbr((yyvsp[(10) - (11)].l)); i++) List_Read((yyvsp[(10) - (11)].l), i, &transfo[i]); - + for(int i = 0; i < List_Nbr((yyvsp[(10) - (11)].l)); i++) + List_Read((yyvsp[(10) - (11)].l), i, &transfo[i]); for(int i = 0; i < List_Nbr((yyvsp[(4) - (11)].l)); i++){ double d_master, d_slave; List_Read((yyvsp[(8) - (11)].l), i, &d_master); diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 1d116925144bbdc54717873eae88d3c3b0a7cbed..e11bfb22772aa922ce5749c390a2da2e5853a1b5 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -4051,20 +4051,19 @@ Constraints : } else{ if (List_Nbr($10) < 12){ + // FIXME Koen restore full automatic case here if List_Nbr($10) == 0) yymsg(0, "Affine transformation requires at least 12 entries"); } else { - std::vector<double> transfo(16,0); - for(int i = 0; i < List_Nbr($10); i++) List_Read($10, i, &transfo[i]); - + for(int i = 0; i < List_Nbr($10); i++) + List_Read($10, i, &transfo[i]); for(int i = 0; i < List_Nbr($4); i++){ double d_master, d_slave; List_Read($8, i, &d_master); List_Read($4, i, &d_slave); int j_master = (int)d_master; int j_slave = (int)d_slave; - addPeriodicEdge(j_slave,j_master,transfo); } } @@ -4081,12 +4080,13 @@ Constraints : } else{ if (List_Nbr($10) < 12){ + // FIXME Koen restore full automatic case here if List_Nbr($10) == 0) yymsg(0, "Affine transformation requires at least 12 entries"); } else { std::vector<double> transfo(16,0); - for(int i = 0; i < List_Nbr($10); i++) List_Read($10, i, &transfo[i]); - + for(int i = 0; i < List_Nbr($10); i++) + List_Read($10, i, &transfo[i]); for(int i = 0; i < List_Nbr($4); i++){ double d_master, d_slave; List_Read($8, i, &d_master); diff --git a/benchmarks/2d/periodic_rotation_on_axis.geo b/benchmarks/2d/periodic_rotation_on_axis.geo index 6c113fcbef8219a2e09026a303df2866ee92a6f7..337da076fc67dd2904d9fb97b35bd2b277837ac9 100644 --- a/benchmarks/2d/periodic_rotation_on_axis.geo +++ b/benchmarks/2d/periodic_rotation_on_axis.geo @@ -36,7 +36,7 @@ Line Loop(s2b)= {l0, l022b, -l1b, -l011b}; Ruled Surface(s2b)= {s2b}; //Plane Surface(s2b)= {s2b}; -//Periodic Line {l1b, l011b, l022b} = {l1, l011, l022}; +Periodic Line {l1b, l011b, l022b} = {l1, l011, l022}; // Periodic Surface seems to work properly only with Ruled Surfaces (meshing problem with Plane Surface) Periodic Surface s2b {Boundary{Surface{s2b};}} = s2 {Boundary{Surface{s2};}};