# [Gmsh] GMSH: 3D boundary layer

 Register Blogs Members List Search Today's Posts Mark Forums Read

 January 26, 2015, 09:51 GMSH: 3D boundary layer #1 New Member   Wouter Join Date: May 2014 Posts: 26 Rep Power: 11 Dear all, I am trying to create a 3D mesh of a flat plate with an structured part for the boundary layer. This is the code which I am using: Code: ```//Including Boudnary layer rsf = 1; plate_width = 0.05; plate_length = 0.1; Angle = 3 * Pi/180; bl_th = 3e-3; n_pl = 300; n_pw = 150; prog = 1.1; n = 40; elem_bl = 1e-2; elem_far = 5e-2; //Geomtrie Point(1) = {0,0,0,elem_bl}; //circle point for farfield conditions Point(100) = {0,0, plate_width/2, elem_bl}; Point(101) = {0,0,0, elem_bl}; Point(102) = {plate_length, 0, plate_width/2, elem_bl}; Point(103) = {plate_length, 0, 0, elem_bl}; Point(104) = {plate_length/2, -plate_length*Tan(Angle), plate_width/2, elem_bl}; Point(105) = {plate_length/2, -plate_length*Tan(Angle), 0, elem_bl}; Point(106) = {plate_length, -plate_length*Tan(Angle), plate_width/2, elem_bl}; Point(107) = {plate_length, -plate_length*Tan(Angle), 0, elem_bl}; Line(100) = {100,101}; Line(101) = {100,102}; Line(102) = {101,103}; Line(103) = {102,103}; Line(104) = {100,104}; Line(105) = {101,105}; Line(106) = {105,107}; Line(107) = {104,106}; Line(108) = {106,107}; Line(109) = {103,107}; Line(110) = {106,102}; Line(111) = {105,104}; Line Loop(100) = {100, 102, -103, -101}; Line Loop(101) = {101, -110, -107, -104}; Line Loop(102) = {103, 109, -108, 110}; Line Loop(103) = {102, 109, -106, -105}; Line Loop(104) = {100, 105, 111,-104}; Line Loop(105) = {111, 107, 108, -106}; Plane Surface(100) = {100}; Plane Surface(101) = {101}; Plane Surface(102) = {102}; Plane Surface(103) = {103}; Plane Surface(104) = {104}; Plane Surface(105) = {105}; //boundary layer Point(300) = {0, bl_th, plate_width/2, elem_bl}; Point(301) = {0, bl_th, 0, elem_bl}; Point(302) = {plate_length, bl_th, plate_width/2, elem_bl}; Point(303) = {plate_length, bl_th, 0, elem_bl}; Line(310) = {300,100}; Line(311) = {101,301}; Line(312) = {301,300}; Line(313) = {300,302}; Line(314) = {302,102}; Line(315) = {302,303}; Line(316) = {303,103}; Line(317) = {303,301}; Line Loop(300) = {100,311,312,310}; Line Loop(301) = {310,101,-314,-313}; Line Loop(302) = {103,-316,-315,314}; Line Loop(303) = {102,-316,317,-311}; Line Loop(304) = {312,313,315,317}; Plane Surface(300) = {300}; Plane Surface(301) = {301}; Plane Surface(302) = {302}; Plane Surface(303) = {303}; Plane Surface(304) = {304}; Transfinite Line{101,102} = n_pl; Transfinite Line{100,103} = n_pw; Transfinite Surface(100); Recombine Surface(100); Transfinite Line{313,317} = n_pl; Transfinite Line{312,315} = n_pw; Transfinite Surface(304); Recombine Surface(304); Transfinite Line{311,-310} = n Using Progression prog; Transfinite Line{312,100} = n_pw; Transfinite Surface(300); Recombine Surface(300); Transfinite Line{-314,-310} = n Using Progression prog; Transfinite Line{313,101} = n_pl; Transfinite Surface(301); Recombine Surface(301); Transfinite Line{-314,-316} = n Using Progression prog; Transfinite Line{315,103} = n_pw; Transfinite Surface(302); Recombine Surface(302); Transfinite Line{311,-316} = n Using Progression prog; Transfinite Line{317,102} = n_pl; Transfinite Surface(303); Recombine Surface(303); Surface Loop(1) = {300,301,302,304,101,102,104,105}; Surface Loop(300) = {100,304,300,301,302,303}; //farfield Point(20) = {-rsf, 0, 0, elem_far}; Point(21) = {0, rsf, 0, elem_far}; Point(22) = {rsf , 0, 0, elem_far}; Point(23) = {0, -rsf, 0, elem_far}; Point(24) = {0 , 0, rsf, elem_far}; Circle(21) = {20,1,21}; Circle(22) = {21,1,22}; Circle(23) = {22,1,23}; Circle(24) = {23,1,20}; Circle(25) = {20,1,24}; Circle(26) = {24,1,22}; Circle(29) = {24,1,21}; Circle(32) = {23,1,24}; Line Loop(21) = {-21,25,29}; Ruled Surface(21) = {21}; Line Loop(22) = {26,-22,-29}; Ruled Surface(22) = {22}; Line Loop(23) = {21,22,23,24}; Plane Surface(23) = {23,103,303}; Line Loop(25) = {26, 23, 32}; Ruled Surface(25) = {25}; Line Loop(26) = {25, -32, 24}; Ruled Surface(26) = {26}; Surface Loop(2) = {21,22,23,25,26}; Volume(1) = {2,1}; Volume(300) = {300}; Physical Volume(1) = {1,300}; Physical Surface("farfield") = {21,22,23,24,25,26,27,28}; Physical Surface("ns") = {100,101,102,104,105}; Physical Surface("sym") = {23};``` However when I "run" this code in GMSH I get the error: "Error: Cannot build pyramids on non manifold faces". Is there something wrong in my code, or is GMSH not capable of generating a structured and unstructured mesh in 3D? Thank you for your help!

 January 26, 2015, 10:45 #2 Senior Member   Alexey Matveichev Join Date: Aug 2011 Location: Nancy, France Posts: 1,930 Rep Power: 38 Hi, Second link in Google search "can not build pyramids on non manifold surfaces" http://www.geuz.org/pipermail/gmsh/2013/008232.html And follow-up by Christophe Geuzaine http://www.geuz.org/pipermail/gmsh/2013/008323.html

 February 4, 2015, 07:41 #3 New Member   Wouter Join Date: May 2014 Posts: 26 Rep Power: 11 Thank you for your reply. I didn't understand the tutorial (and that it contained the answer), I will look into it. I will post my final .geo file if i succeed.

 Tags boundary layer, gmsh, structured, unstructured