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