wgvanveen |
January 26, 2015 08:51 |
GMSH: 3D boundary layer
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!
|