xref: /honee/examples/meshes/cylinder.geo (revision 06a5ac53626430a4276dd06d3a46a2bdadb65d35)
1*fc37ad8cSJames WrightDefineConstant[
2*fc37ad8cSJames Wright  zspan = {0.2, Min .1, Max 10, Step .1,
3*fc37ad8cSJames Wright    Name "Parameters/Zspan"}
4*fc37ad8cSJames Wright];
5*fc37ad8cSJames Wright
6*fc37ad8cSJames WrightDefineConstant[
7*fc37ad8cSJames Wright  H = {4.5, Min 1, Max 10, Step .1,
8*fc37ad8cSJames Wright    Name "Parameters/Height"}
9*fc37ad8cSJames Wright];
10*fc37ad8cSJames Wright
11*fc37ad8cSJames WrightDefineConstant[
12*fc37ad8cSJames Wright  xL = {4.5, Min 1, Max 10, Step .1,
13*fc37ad8cSJames Wright    Name "Parameters/XL"}
14*fc37ad8cSJames Wright];
15*fc37ad8cSJames Wright
16*fc37ad8cSJames WrightDefineConstant[
17*fc37ad8cSJames Wright  xR = {11, Min .2, Max 30, Step .1,
18*fc37ad8cSJames Wright    Name "Parameters/XR"}
19*fc37ad8cSJames Wright];
20*fc37ad8cSJames Wright
21*fc37ad8cSJames WrightDefineConstant[
22*fc37ad8cSJames Wright  cyldiameter = {1.0, Min .1, Max 1.0, Step .1,
23*fc37ad8cSJames Wright    Name "Parameters/CylDiameter"}
24*fc37ad8cSJames Wright];
25*fc37ad8cSJames Wright
26*fc37ad8cSJames WrightDefineConstant[
27*fc37ad8cSJames Wright  N = {20, Min 2, Max 80, Step 2,
28*fc37ad8cSJames Wright    Name "Parameters/ElementsPerQuadrant"}
29*fc37ad8cSJames Wright];
30*fc37ad8cSJames Wright
31*fc37ad8cSJames WrightDefineConstant[
32*fc37ad8cSJames Wright  RadialRatio = {1, Min .2, Max 5, Step .1,
33*fc37ad8cSJames Wright  Name "Parameters/RadialRatio"}
34*fc37ad8cSJames Wright];
35*fc37ad8cSJames WrightDefineConstant[
36*fc37ad8cSJames Wright  Rb = {.9, Min .5, Max 2, Step .05,
37*fc37ad8cSJames Wright  Name "Parameters/RadialProgression"}
38*fc37ad8cSJames Wright];
39*fc37ad8cSJames Wright
40*fc37ad8cSJames WrightNx1 = N + 1; Rx1 = 1.00;
41*fc37ad8cSJames WrightNx2 = Ceil(N * 9 / 11 * xR / (2*xL)) + 1; Rx2 = 1.00;
42*fc37ad8cSJames WrightNy  = N + 1; Ry = 2.00;
43*fc37ad8cSJames WrightNb  = Ceil(RadialRatio * N) + 1;
44*fc37ad8cSJames WrightNc  = N + 1; Rc = 1.00;
45*fc37ad8cSJames Wright
46*fc37ad8cSJames Wright// Characteristic element length
47*fc37ad8cSJames Wrighth = 2 * H / N;
48*fc37ad8cSJames Wright
49*fc37ad8cSJames Wright// Exterior corners
50*fc37ad8cSJames WrightPoint(1) = {-xL, -H, 0};
51*fc37ad8cSJames WrightPoint(2) = {xL, -H, 0};
52*fc37ad8cSJames WrightPoint(3) = {xL + xR, -H, 0};
53*fc37ad8cSJames WrightPoint(4) = {-xL, H, 0};
54*fc37ad8cSJames WrightPoint(5) = {xL, H, 0};
55*fc37ad8cSJames WrightPoint(6) = {xL + xR, H, 0};
56*fc37ad8cSJames Wright
57*fc37ad8cSJames Wright// Coordinates for Cylinder points
58*fc37ad8cSJames WrightPoint(7) = {-cyldiameter/Sqrt(8), -cyldiameter/Sqrt(8), 0};
59*fc37ad8cSJames WrightPoint(8) = {cyldiameter/Sqrt(8), -cyldiameter/Sqrt(8), 0};
60*fc37ad8cSJames WrightPoint(9) = {-cyldiameter/Sqrt(8), cyldiameter/Sqrt(8), 0};
61*fc37ad8cSJames WrightPoint(10) = {cyldiameter/Sqrt(8), cyldiameter/Sqrt(8), 0};
62*fc37ad8cSJames WrightPoint(11) = {0, 0, 0};
63*fc37ad8cSJames Wright
64*fc37ad8cSJames Wright// Top and bottom edges
65*fc37ad8cSJames WrightLine(1) = {1, 2}; Transfinite Curve {1} = Nx1 Using Progression Rx1;
66*fc37ad8cSJames WrightLine(2) = {2, 3}; Transfinite Curve {2} = Nx2 Using Progression Rx2;
67*fc37ad8cSJames WrightLine(3) = {4, 5}; Transfinite Curve {3} = Nx1 Using Progression Rx1;
68*fc37ad8cSJames WrightLine(4) = {5, 6}; Transfinite Curve {4} = Nx2 Using Progression Rx2;
69*fc37ad8cSJames Wright// Vertical edges and internal interface
70*fc37ad8cSJames WrightLine(5) = {4, 1}; Transfinite Curve {5} = Ny Using Bump Ry;
71*fc37ad8cSJames WrightLine(6) = {5, 2}; Transfinite Curve {6} = Ny Using Bump Ry;
72*fc37ad8cSJames WrightLine(7) = {6, 3}; Transfinite Curve {7} = Ny Using Bump Ry;
73*fc37ad8cSJames Wright
74*fc37ad8cSJames Wright// Cylinder arcs
75*fc37ad8cSJames WrightCircle(8) = {7, 11, 8}; Transfinite Curve {8} = Nc Using Progression Rc;
76*fc37ad8cSJames WrightCircle(9) = {8, 11, 10}; Transfinite Curve {9} = Nc Using Progression Rc;
77*fc37ad8cSJames WrightCircle(10) = {10, 11, 9}; Transfinite Curve {10} = Nc Using Progression Rc;
78*fc37ad8cSJames WrightCircle(11) = {9, 11, 7}; Transfinite Curve {11} = Nc Using Progression Rc;
79*fc37ad8cSJames Wright
80*fc37ad8cSJames Wright// Radial lines
81*fc37ad8cSJames WrightLine(12) = {1, 7}; Transfinite Curve {12} = Nb Using Progression Rb;
82*fc37ad8cSJames WrightLine(13) = {2, 8}; Transfinite Curve {13} = Nb Using Progression Rb;
83*fc37ad8cSJames WrightLine(14) = {5, 10}; Transfinite Curve {14} = Nb Using Progression Rb;
84*fc37ad8cSJames WrightLine(15) = {4, 9}; Transfinite Curve {15} = Nb Using Progression Rb;
85*fc37ad8cSJames Wright
86*fc37ad8cSJames Wright// surfaces
87*fc37ad8cSJames WrightCurve Loop(1) = {12, 8, -13, -1};
88*fc37ad8cSJames WrightPlane Surface(1) = {1};
89*fc37ad8cSJames WrightCurve Loop(2) = {13, 9, -14, 6};
90*fc37ad8cSJames WrightPlane Surface(2) = {2};
91*fc37ad8cSJames WrightCurve Loop(3) = {14, 10, -15, 3};
92*fc37ad8cSJames WrightPlane Surface(3) = {3};
93*fc37ad8cSJames WrightCurve Loop(4) = {15, 11, -12, -5};
94*fc37ad8cSJames WrightPlane Surface(4) = {4};
95*fc37ad8cSJames WrightCurve Loop(5) = {2, -7, -4, 6};
96*fc37ad8cSJames WrightPlane Surface(5) = {5};
97*fc37ad8cSJames WrightTransfinite Surface {1};
98*fc37ad8cSJames WrightTransfinite Surface {2};
99*fc37ad8cSJames WrightTransfinite Surface {3};
100*fc37ad8cSJames WrightTransfinite Surface {4};
101*fc37ad8cSJames WrightTransfinite Surface {5};
102*fc37ad8cSJames WrightRecombine Surface {1};
103*fc37ad8cSJames WrightRecombine Surface {2};
104*fc37ad8cSJames WrightRecombine Surface {3};
105*fc37ad8cSJames WrightRecombine Surface {4};
106*fc37ad8cSJames WrightRecombine Surface {5};
107*fc37ad8cSJames WrightExtrude {0, 0, zspan} {
108*fc37ad8cSJames Wright  Surface{1, 2, 3, 4, 5};
109*fc37ad8cSJames Wright  Layers {Ceil(zspan / h)};
110*fc37ad8cSJames Wright  Recombine;
111*fc37ad8cSJames Wright}
112*fc37ad8cSJames Wright
113*fc37ad8cSJames WrightPhysical Surface("inlet") = {102}; // inlet
114*fc37ad8cSJames WrightPhysical Surface("outlet") = {116}; // outlet
115*fc37ad8cSJames WrightPhysical Surface("top") = {80, 120}; // top
116*fc37ad8cSJames WrightPhysical Surface("bottom") = {36, 112}; // bottom
117*fc37ad8cSJames WrightPhysical Surface("cylinderwalls") = {94, 28, 50, 72}; // cylinderwalls
118*fc37ad8cSJames WrightPhysical Surface("frontandback") = {37, 1, 4, 103, 3, 81, 2, 59, 5, 125}; // frontandback
119*fc37ad8cSJames WrightPhysical Volume("mesh") = {1:5};
120