CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [Gmsh] GMSH: 3D boundary layer (https://www.cfd-online.com/Forums/openfoam-meshing/147644-gmsh-3d-boundary-layer.html)

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!

alexeym January 26, 2015 09:45

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

wgvanveen February 4, 2015 06:41

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.


All times are GMT -4. The time now is 05:44.