Dear All,

I have read through the GMSH lexx and yacc parser and found this syntax for the 
periodic surfaces

Periodic Surface(SURF_MASTER) {edges, of, master} = SURF_SLAVE {edges, of, 
slave};

And used that to construct my mesh for periodic layered cuboid. The surface 
meshes are constructed correctly and with no problems. The volume meshing 
appears to be correct, but throws several errors of the type

Error   : Cannot find periodic counterpart of face 302 303 5249  in face 39 
connected to 41

What are these errors caused by? Can one ignore them, or is something really 
wrong?

Regards,
Aleksejs Fomins

gridsize = 2.0; // prescribed mesh element size

rCube = {5.0, 7.0};
hCube = {0.0, 4.0, 7.0};

// Points LVL 1
p_lv1[0] = newp;  Point(p_lv1[0]) = {-rCube[0], -rCube[1], hCube[0], gridsize};
p_lv1[1] = newp;  Point(p_lv1[1]) = {rCube[0], -rCube[1], hCube[0], gridsize};
p_lv1[2] = newp;  Point(p_lv1[2]) = {rCube[0], rCube[1], hCube[0], gridsize};
p_lv1[3] = newp;  Point(p_lv1[3]) = {-rCube[0], rCube[1], hCube[0], gridsize};

// Points LVL 1
p_lv2[0] = newp;  Point(p_lv2[0]) = {-rCube[0], -rCube[1], hCube[1], gridsize / 
10.0};
p_lv2[1] = newp;  Point(p_lv2[1]) = {rCube[0], -rCube[1], hCube[1], gridsize / 
10.0};
p_lv2[2] = newp;  Point(p_lv2[2]) = {rCube[0], rCube[1], hCube[1], gridsize / 
10.0};
p_lv2[3] = newp;  Point(p_lv2[3]) = {-rCube[0], rCube[1], hCube[1], gridsize / 
10.0};

p_lv3[0] = newp;  Point(p_lv3[0]) = {-rCube[0], -rCube[1], hCube[2], gridsize};
p_lv3[1] = newp;  Point(p_lv3[1]) = {rCube[0], -rCube[1], hCube[2], gridsize};
p_lv3[2] = newp;  Point(p_lv3[2]) = {rCube[0], rCube[1], hCube[2], gridsize};
p_lv3[3] = newp;  Point(p_lv3[3]) = {-rCube[0], rCube[1], hCube[2], gridsize};

// Lines - Horizontal - LVL 1
linh_lv1[0] = newl;  Line(linh_lv1[0]) = {p_lv1[0], p_lv1[1]}; 
linh_lv1[1] = newl;  Line(linh_lv1[1]) = {p_lv1[1], p_lv1[2]};
linh_lv1[2] = newl;  Line(linh_lv1[2]) = {p_lv1[2], p_lv1[3]};
linh_lv1[3] = newl;  Line(linh_lv1[3]) = {p_lv1[3], p_lv1[0]};

// Lines - Horizontal - LVL 2
linh_lv2[0] = newl;  Line(linh_lv2[0]) = {p_lv2[0], p_lv2[1]}; 
linh_lv2[1] = newl;  Line(linh_lv2[1]) = {p_lv2[1], p_lv2[2]};
linh_lv2[2] = newl;  Line(linh_lv2[2]) = {p_lv2[2], p_lv2[3]};
linh_lv2[3] = newl;  Line(linh_lv2[3]) = {p_lv2[3], p_lv2[0]};

// Lines - Horizontal - LVL 3
linh_lv3[0] = newl;  Line(linh_lv3[0]) = {p_lv3[0], p_lv3[1]}; 
linh_lv3[1] = newl;  Line(linh_lv3[1]) = {p_lv3[1], p_lv3[2]};
linh_lv3[2] = newl;  Line(linh_lv3[2]) = {p_lv3[2], p_lv3[3]};
linh_lv3[3] = newl;  Line(linh_lv3[3]) = {p_lv3[3], p_lv3[0]};

// Lines - Vertical - LVL 1
linv_lv1[0] = newl;  Line(linv_lv1[0]) = {p_lv1[0], p_lv2[0]}; 
linv_lv1[1] = newl;  Line(linv_lv1[1]) = {p_lv1[1], p_lv2[1]};
linv_lv1[2] = newl;  Line(linv_lv1[2]) = {p_lv1[2], p_lv2[2]};
linv_lv1[3] = newl;  Line(linv_lv1[3]) = {p_lv1[3], p_lv2[3]};

// Lines - Vertical - LVL 2
linv_lv2[0] = newl;  Line(linv_lv2[0]) = {p_lv2[0], p_lv3[0]}; 
linv_lv2[1] = newl;  Line(linv_lv2[1]) = {p_lv2[1], p_lv3[1]};
linv_lv2[2] = newl;  Line(linv_lv2[2]) = {p_lv2[2], p_lv3[2]};
linv_lv2[3] = newl;  Line(linv_lv2[3]) = {p_lv2[3], p_lv3[3]};

Periodic Line {linh_lv1[0]} = {linh_lv3[0]};
Periodic Line {linh_lv1[1]} = {linh_lv3[1]};
Periodic Line {linh_lv1[2]} = {linh_lv3[2]};
Periodic Line {linh_lv1[3]} = {linh_lv3[3]};

Periodic Line {linh_lv1[0]} = {-linh_lv1[2]};
Periodic Line {linh_lv1[1]} = {-linh_lv1[3]};
Periodic Line {linh_lv2[0]} = {-linh_lv2[2]};
Periodic Line {linh_lv2[1]} = {-linh_lv2[3]};
Periodic Line {linh_lv3[0]} = {-linh_lv3[2]};
Periodic Line {linh_lv3[1]} = {-linh_lv3[3]};

Periodic Line {linv_lv1[0]} = {linv_lv1[3]};
Periodic Line {linv_lv1[1]} = {linv_lv1[2]};
Periodic Line {linv_lv1[1]} = {linv_lv1[0]};
Periodic Line {linv_lv1[2]} = {linv_lv1[3]};

Periodic Line {linv_lv2[0]} = {linv_lv2[3]};
Periodic Line {linv_lv2[1]} = {linv_lv2[2]};
Periodic Line {linv_lv2[1]} = {linv_lv2[0]};
Periodic Line {linv_lv2[2]} = {linv_lv2[3]};

llh_lv1[0] = newreg;  Line Loop(llh_lv1[0]) = {linh_lv1[]};
llh_lv2[0] = newreg;  Line Loop(llh_lv2[0]) = {linh_lv2[]};
llh_lv3[0] = newreg;  Line Loop(llh_lv3[0]) = {linh_lv3[]};

llv_lv1[0] = newreg;  Line Loop(llv_lv1[0]) = {linh_lv1[0], linv_lv1[1], 
-linh_lv2[0], -linv_lv1[0]};
llv_lv1[1] = newreg;  Line Loop(llv_lv1[1]) = {linh_lv1[1], linv_lv1[2], 
-linh_lv2[1], -linv_lv1[1]};
llv_lv1[2] = newreg;  Line Loop(llv_lv1[2]) = {linh_lv1[2], linv_lv1[3], 
-linh_lv2[2], -linv_lv1[2]};
llv_lv1[3] = newreg;  Line Loop(llv_lv1[3]) = {linh_lv1[3], linv_lv1[0], 
-linh_lv2[3], -linv_lv1[3]};

llv_lv2[0] = newreg;  Line Loop(llv_lv2[0]) = {linh_lv2[0], linv_lv2[1], 
-linh_lv3[0], -linv_lv2[0]};
llv_lv2[1] = newreg;  Line Loop(llv_lv2[1]) = {linh_lv2[1], linv_lv2[2], 
-linh_lv3[1], -linv_lv2[1]};
llv_lv2[2] = newreg;  Line Loop(llv_lv2[2]) = {linh_lv2[2], linv_lv2[3], 
-linh_lv3[2], -linv_lv2[2]};
llv_lv2[3] = newreg;  Line Loop(llv_lv2[3]) = {linh_lv2[3], linv_lv2[0], 
-linh_lv3[3], -linv_lv2[3]};

sh_lv1[0] = news;  Plane Surface(sh_lv1[0]) = {llh_lv1[0]};
sh_lv2[0] = news;  Plane Surface(sh_lv2[0]) = {llh_lv2[0]};
sh_lv3[0] = news;  Plane Surface(sh_lv3[0]) = {llh_lv3[0]};
sv_lv1[0] = news;  Plane Surface(sv_lv1[0]) = {llv_lv1[0]};
sv_lv1[1] = news;  Plane Surface(sv_lv1[1]) = {llv_lv1[1]};
sv_lv1[2] = news;  Plane Surface(sv_lv1[2]) = {llv_lv1[2]};
sv_lv1[3] = news;  Plane Surface(sv_lv1[3]) = {llv_lv1[3]};
sv_lv2[0] = news;  Plane Surface(sv_lv2[0]) = {llv_lv2[0]};
sv_lv2[1] = news;  Plane Surface(sv_lv2[1]) = {llv_lv2[1]};
sv_lv2[2] = news;  Plane Surface(sv_lv2[2]) = {llv_lv2[2]};
sv_lv2[3] = news;  Plane Surface(sv_lv2[3]) = {llv_lv2[3]};

Periodic Surface(sh_lv1[0]) {linh_lv1[]} = sh_lv3[0] {linh_lv3[]};
Periodic Surface(sv_lv1[0]) {linh_lv1[0], linv_lv1[1], -linh_lv2[0], 
-linv_lv1[0]} = sv_lv1[2] {-linh_lv1[2], linv_lv1[2], linh_lv2[2], -linv_lv1[3] 
};
Periodic Surface(sv_lv1[1]) {linh_lv1[1], linv_lv1[2], -linh_lv2[1], 
-linv_lv1[1]} = sv_lv1[3] {-linh_lv1[3], linv_lv1[3], linh_lv2[3], -linv_lv1[0] 
};
Periodic Surface(sv_lv2[0]) {linh_lv2[0], linv_lv2[1], -linh_lv3[0], 
-linv_lv2[0]} = sv_lv2[2] {-linh_lv2[2], linv_lv2[2], linh_lv3[2], -linv_lv2[3] 
};
Periodic Surface(sv_lv2[1]) {linh_lv2[1], linv_lv2[2], -linh_lv3[1], 
-linv_lv2[1]} = sv_lv2[3] {-linh_lv2[3], linv_lv2[3], linh_lv3[3], -linv_lv2[0] 
};

//Periodic Surface {sv_lv1[0]} = {-sv_lv1[2]};
//Periodic Surface {sv_lv1[1]} = {-sv_lv1[3]};

sl[0] = newreg;  Surface Loop(sl[0]) = {sh_lv1[], sh_lv2[], sv_lv1[]};
sl[1] = newreg;  Surface Loop(sl[1]) = {sh_lv2[], sh_lv3[], sv_lv2[]};
vol[0] = newv;   Volume(vol[0]) = {sl[0]};
vol[1] = newv;   Volume(vol[1]) = {sl[1]};

_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to