1 |
lc_border = 0.4; |
2 |
lc_surf = 0.4; |
3 |
|
4 |
N=8; |
5 |
DTheta = 2*Pi/N; |
6 |
base_z = 0.0; |
7 |
top_z = 4.0; |
8 |
surf_top_z = 7.0; |
9 |
Theta = 0; |
10 |
rad_conduit = 1.5; |
11 |
rad_surf = 3.0; |
12 |
|
13 |
CenterPoint1 = newp; |
14 |
Point(CenterPoint1) = { 0.0,0.0,base_z,lc_border}; |
15 |
|
16 |
// Conduit bottom Circle |
17 |
For I In {1:N} |
18 |
PointList[I] = newp; |
19 |
Theta+=DTheta; |
20 |
Point( PointList[ I] ) = { rad_conduit*Cos(Theta) |
21 |
,rad_conduit*Sin(Theta), base_z, lc_border}; |
22 |
EndFor |
23 |
|
24 |
// Conduit Top Circle |
25 |
CenterPoint2 = newp; |
26 |
Point(CenterPoint2) = {0.0,0.0,top_z,lc_border}; |
27 |
Theta = 0.0; |
28 |
For I In {1:N} |
29 |
PointList2[I] = newp; |
30 |
Theta+=DTheta; |
31 |
Point( PointList2[ I] ) = { rad_conduit*Cos(Theta) |
32 |
,rad_conduit*Sin(Theta), top_z, lc_border}; |
33 |
EndFor |
34 |
|
35 |
// Bottom Surface Lines |
36 |
For I In {1:N} |
37 |
LineList[I] = newl; |
38 |
Line( LineList[I] ) = { PointList[I], CenterPoint1 }; |
39 |
EndFor |
40 |
For I In {1:N} |
41 |
CircleList[I] = newc; |
42 |
Circle( CircleList[I] ) = { PointList[I], CenterPoint1, |
43 |
PointList[(I%N) + 1] }; |
44 |
EndFor |
45 |
|
46 |
|
47 |
// Top Surface Lines |
48 |
//For I In {1:N} |
49 |
// LineList2[I] = newl; |
50 |
// Line( LineList2[I] ) = { PointList2[I], CenterPoint2 }; |
51 |
//EndFor |
52 |
For I In {1:N} |
53 |
CircleList2[I] = newc; |
54 |
Circle( CircleList2[I] ) = { PointList2[I], CenterPoint2, |
55 |
PointList2[(I%N) + 1] }; |
56 |
EndFor |
57 |
|
58 |
|
59 |
|
60 |
// Lines Connecting Top and Bottom Surfaces |
61 |
For I In {1:N} |
62 |
Line(newl) = { PointList[I], PointList2[I] }; |
63 |
EndFor |
64 |
|
65 |
|
66 |
|
67 |
// ****** DOME **************** |
68 |
// ****************************** |
69 |
|
70 |
// Surf Bot |
71 |
Theta = 0.0; |
72 |
For I In {1:N} |
73 |
SurfPoint1[I] = newp; |
74 |
Theta += DTheta; |
75 |
Point( SurfPoint1[I] ) = { rad_surf*Cos(Theta) |
76 |
,rad_surf*Sin(Theta), top_z, lc_surf }; |
77 |
EndFor |
78 |
|
79 |
|
80 |
|
81 |
// Surf Top |
82 |
CenterPoint3 = newp; |
83 |
Point(CenterPoint3) = {0.0,0.0,surf_top_z,lc_border}; |
84 |
Theta = 0.0; |
85 |
For I In {1:N} |
86 |
SurfPoint2[I] = newp; |
87 |
Theta+=DTheta; |
88 |
Point( SurfPoint2[ I] ) = { rad_surf*Cos(Theta) |
89 |
,rad_surf*Sin(Theta), surf_top_z, lc_surf}; |
90 |
EndFor |
91 |
|
92 |
// Lines Connecting Top and bottom |
93 |
For I In {1:N} |
94 |
Line(newl) = { SurfPoint1[I], SurfPoint2[I] }; |
95 |
EndFor |
96 |
|
97 |
// Lines connecting outer to inner circle on surface |
98 |
|
99 |
For I In {1:N} |
100 |
Line(newl) = { PointList2[I], SurfPoint1[I]}; |
101 |
EndFor |
102 |
|
103 |
|
104 |
|
105 |
// Bottom Surface Lines |
106 |
For I In {1:N} |
107 |
CircleList4[I] = newc; |
108 |
Circle(CircleList4[I] ) = { SurfPoint1[I], CenterPoint2, |
109 |
SurfPoint1[(I%N) + 1] }; |
110 |
EndFor |
111 |
|
112 |
|
113 |
|
114 |
// Top Surface Lid |
115 |
For I In {1:N} |
116 |
LineList3[I] = newl; |
117 |
Line( LineList3[I] ) = { SurfPoint2[I], CenterPoint3 }; |
118 |
EndFor |
119 |
For I In {1:N} |
120 |
CircleList3[I] = newc; |
121 |
Circle( CircleList3[I] ) = { SurfPoint2[I], CenterPoint3, |
122 |
SurfPoint2[(I%N) + 1] }; |
123 |
EndFor |
124 |
|
125 |
// ** BEGIN ** |
126 |
// conduit Bottom Surface |
127 |
Line Loop(73) = {4,-5,-12}; |
128 |
Plane Surface(74) = {73}; |
129 |
Line Loop(75) = {3,-4,-11}; |
130 |
Plane Surface(76) = {75}; |
131 |
Line Loop(77) = {10,3,-2}; |
132 |
Plane Surface(78) = {77}; |
133 |
Line Loop(79) = {9,2,-1}; |
134 |
Plane Surface(80) = {79}; |
135 |
Line Loop(81) = {16,1,-8}; |
136 |
Plane Surface(82) = {81}; |
137 |
Line Loop(83) = {15,8,-7}; |
138 |
Plane Surface(84) = {83}; |
139 |
Line Loop(85) = {14,7,-6}; |
140 |
Plane Surface(86) = {85}; |
141 |
Line Loop(87) = {5,-6,-13}; |
142 |
Plane Surface(88) = {87}; |
143 |
|
144 |
|
145 |
Physical Surface(153) = {82,80,78,76,74,88,86,84}; |
146 |
// ** END ** |
147 |
|
148 |
// ** BEGIN ** |
149 |
// Volcano Top Surface |
150 |
Line Loop(89) = {54,-47,-22,46}; |
151 |
Plane Surface(90) = {89}; |
152 |
Line Loop(91) = {48,-55,-47,23}; |
153 |
Plane Surface(92) = {91}; |
154 |
Line Loop(93) = {24,41,-56,-48}; |
155 |
Plane Surface(94) = {93}; |
156 |
Line Loop(95) = {49,-42,-17,41}; |
157 |
Plane Surface(96) = {95}; |
158 |
Line Loop(97) = {50,-43,-18,42}; |
159 |
Plane Surface(98) = {97}; |
160 |
Line Loop(99) = {51,-44,-19,43}; |
161 |
Plane Surface(100) = {99}; |
162 |
Line Loop(101) = {45,-52,-44,20}; |
163 |
Plane Surface(102) = {101}; |
164 |
Line Loop(103) = {53,-46,-21,45}; |
165 |
Plane Surface(104) = {103}; |
166 |
|
167 |
|
168 |
Physical Surface(154) = {90,92,94,96,104,102,100,116,98}; |
169 |
// ** END ** |
170 |
|
171 |
// ** BEGIN ** |
172 |
// Volcano Free Surface Top |
173 |
Line Loop(105) = {70,63,-62}; |
174 |
Plane Surface(106) = {105}; |
175 |
Line Loop(107) = {62,-61,69}; |
176 |
Plane Surface(108) = {107}; |
177 |
Line Loop(109) = {61,-60,68}; |
178 |
Plane Surface(110) = {109}; |
179 |
Line Loop(111) = {60,-59,67}; |
180 |
Plane Surface(112) = {111}; |
181 |
Line Loop(113) = {58,-59,-66}; |
182 |
Plane Surface(114) = {113}; |
183 |
Line Loop(115) = {57,-58,-65}; |
184 |
Plane Surface(116) = {115}; |
185 |
Line Loop(117) = {72,57,-64}; |
186 |
Plane Surface(118) = {117}; |
187 |
Line Loop(119) = {63,-64,-71}; |
188 |
Plane Surface(120) = {119}; |
189 |
|
190 |
|
191 |
Physical Surface(155) = {106,110,112,114,116,118,120,108}; |
192 |
// ** END ** |
193 |
|
194 |
|
195 |
// ** BEGIN ** |
196 |
// Conduit Outer Surface |
197 |
Line Loop(121) = {13,30,-21,-29}; |
198 |
Ruled Surface(122) = {121}; |
199 |
Line Loop(123) = {29,-20,-28,12}; |
200 |
Ruled Surface(124) = {123}; |
201 |
Line Loop(125) = {28,-19,-27,11}; |
202 |
Ruled Surface(126) = {125}; |
203 |
Line Loop(127) = {27,-18,-26,10}; |
204 |
Ruled Surface(128) = {127}; |
205 |
Line Loop(129) = {26,-17,-25,9}; |
206 |
Ruled Surface(130) = {129}; |
207 |
Line Loop(131) = {25,-24,-32,16}; |
208 |
Ruled Surface(132) = {131}; |
209 |
Line Loop(133) = {32,-23,-31,15}; |
210 |
Ruled Surface(134) = {133}; |
211 |
Line Loop(135) = {30,22,-31,-14}; |
212 |
Ruled Surface(136) = {135}; |
213 |
|
214 |
|
215 |
Physical Surface(156) = {134,136,122,126,128,130,132,124}; |
216 |
// ** END ** |
217 |
|
218 |
|
219 |
// ** BEGIN ** |
220 |
// Outer Free Surface Cylinder |
221 |
Line Loop(137) = {53,38,-69,-37}; |
222 |
Ruled Surface(138) = {137}; |
223 |
Line Loop(139) = {52,37,-68,-36}; |
224 |
Ruled Surface(140) = {139}; |
225 |
Line Loop(141) = {51,36,-67,-35}; |
226 |
Ruled Surface(142) = {141}; |
227 |
Line Loop(143) = {50,35,-66,-34}; |
228 |
Ruled Surface(144) = {143}; |
229 |
Line Loop(145) = {49,34,-65,-33}; |
230 |
Ruled Surface(146) = {145}; |
231 |
Line Loop(147) = {56,33,-72,-40}; |
232 |
Ruled Surface(148) = {147}; |
233 |
Line Loop(149) = {55,40,-71,-39}; |
234 |
Ruled Surface(150) = {149}; |
235 |
Line Loop(151) = {39,-70,-38,54}; |
236 |
Ruled Surface(152) = {151}; |
237 |
|
238 |
Physical Surface(157) = {138,148,144,142,140,150,146,152}; |
239 |
// ** End ** |
240 |
|
241 |
|
242 |
Surface Loop(158) = |
243 |
{134,132,130,128,126,124,122,88,74,76,-78,-80,-82,-84,-86,-136,-90,152,150,92,94,-96,146,144,-98,-100,142,140,102,-104,138,108,106,-120,118,148,-116,-114,112,110}; |
244 |
|
245 |
Volume(159) = {158}; |
246 |
Physical Volume(160) = { 159}; |