Source code for openaerostruct.geometry.CRM_definitions

import numpy as np


[docs] def get_crm_points(wing_type): """ Return the raw CRM points for a specific flight condition. Any AoA from [2.50, 2.75, 3.00, 3.25, 3.50, 3.75, 4.00]. Or 'jig' or 'jig_wind_tunnel', for the undeformed wing based on the initial paper definition and the wind tunnel model, respectively. Parameters ---------- wing_type : string Description of the wing type to use. Example is `CRM:alpha_2.75`. Can use `CRM` for just the jig shape Returns ------- raw_crm_points[n, 6] : numpy array The actual data points describing the CRM wing for the OpenAeroStruct formatted definition at n spanwise slices. """ if "2.50" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_2.50.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 2.50. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7133720472, 121.2598425197, 175.5806919685, 4.2703749015, 466.4424696512], [0.1475622617, 1030.0131779528, 170.5099362598, 176.8145874409, 3.5906161801, 437.2208804746], [0.1901841486, 1067.3508566929, 219.7600300000, 177.1734909449, 3.0722535277, 408.1217692565], [0.2328060355, 1104.8788448819, 269.0101237402, 177.6540599606, 2.4247665985, 379.0575056036], [0.2754279225, 1142.4141614173, 318.2602174803, 178.3661920472, 1.7397239459, 350.0486593920], [0.3180498094, 1179.9045023622, 367.5103112205, 179.5618736220, 1.1338378802, 321.1285470198], [0.3606716964, 1217.4137074803, 416.7604051181, 181.2638461811, 0.6426495030, 292.2665819632], [0.4032935833, 1254.9195842520, 466.0104988189, 183.3368159843, 0.1145012201, 276.4325401825], [0.4459154702, 1292.4185145669, 515.2605925197, 186.1374787795, -0.4133244517, 264.3915920322], [0.4885373571, 1329.9177980315, 564.5106862205, 189.5874755512, -0.8613285269, 252.3661917736], [0.5311592440, 1367.4232401575, 613.7607799213, 193.9273737402, -1.1789942200, 240.3406240250], [0.5737811308, 1404.9274842520, 663.0108736220, 198.9160642520, -1.4400475650, 228.3156604767], [0.6164030177, 1442.4341519685, 712.2609673228, 204.3928406693, -1.7334642513, 216.2917930294], [0.6590249046, 1479.9447094488, 761.5110610236, 210.6020626378, -1.9996967155, 204.2672081429], [0.7016467915, 1517.4598960630, 810.7611547244, 217.5159629921, -2.2208033706, 192.2355877315], [0.7442686784, 1554.9809149606, 860.0112484252, 225.2470738583, -2.4296644189, 180.1927605931], [0.7868905656, 1592.4879830709, 909.2613425197, 233.5962840157, -2.6730246510, 168.1622158499], [0.8295124525, 1630.0160791339, 958.5114362205, 242.6969757874, -2.9183466572, 156.1148297967], [0.8721343394, 1667.5396468504, 1007.7615299213, 252.3841504331, -3.1722962960, 144.0746066886], [0.9147562262, 1705.0680330709, 1057.0116236220, 262.5914150394, -3.5618728840, 132.0496338269], [0.9573781131, 1742.5951838583, 1106.2617173228, 273.1393196457, -4.0663236918, 120.0391703030], [1.0000000000, 1780.1390358268, 1155.5118110236, 283.7659304724, -4.6017689717, 108.0075050728], ] ) elif "2.75" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_2.75.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 2.75. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7138118110, 121.2598425197, 175.8828985433, 4.3064288580, 466.4631457464], [0.1475622617, 1030.0125685039, 170.5099362598, 176.8216161417, 3.5899506711, 437.2201981238], [0.1901841486, 1067.3502531496, 219.7600300000, 177.1741468504, 3.0704027125, 408.1221709540], [0.2328060355, 1104.8785736220, 269.0101237402, 177.6574524409, 2.4218173307, 379.0574671904], [0.2754279225, 1142.4137122047, 318.2602174803, 178.3693226772, 1.7348508885, 350.0486268673], [0.3180498094, 1179.9041996063, 367.5103112205, 179.5740685039, 1.1260783099, 321.1282460136], [0.3606716964, 1217.4135641732, 416.7604051181, 181.3039487402, 0.6320326304, 292.2667642082], [0.4032935833, 1254.9198700787, 466.0104988189, 183.4083569685, 0.1001945603, 276.4326600724], [0.4459154702, 1292.4185027559, 515.2605925197, 186.2613112205, -0.4313792294, 264.3934743324], [0.4885373571, 1329.9177011811, 564.5106862205, 189.7670859055, -0.8832854545, 252.3697629697], [0.5311592440, 1367.4235448819, 613.7607799213, 194.1769490157, -1.2064052719, 240.3458791762], [0.5737811308, 1404.9283440945, 663.0108736220, 199.1855426378, -1.4882476942, 228.3242182875], [0.6164030177, 1442.4362011811, 712.2609673228, 204.8247526772, -1.7694295897, 216.3000209815], [0.6590249046, 1479.9483543307, 761.5110610236, 211.1363005512, -2.0434689434, 204.2772529463], [0.7016467915, 1517.4654637795, 810.7611547244, 218.1652856693, -2.2699133205, 192.2467756712], [0.7442686784, 1554.9898948819, 860.0112484252, 226.0318298031, -2.4841677570, 180.2040428725], [0.7868905656, 1592.4996003937, 909.2613425197, 234.5204538976, -2.7327835422, 168.1745654077], [0.8295124525, 1630.0325484252, 958.5114362205, 243.7741411811, -2.9822838340, 156.1260647832], [0.8721343394, 1667.5602492126, 1007.7615299213, 253.6186485827, -3.2409127562, 144.0854789941], [0.9147562262, 1705.0931177165, 1057.0116236220, 263.9955130315, -3.6316327683, 132.0598826266], [0.9573781131, 1742.6251350394, 1106.2617173228, 274.7061785039, -4.1417911628, 120.0493724390], [1.0000000000, 1780.1757874016, 1155.5118110236, 285.5045883858, -4.6778406881, 108.0150257616], ] ) elif "3.00" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_3.00.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.00. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7038641732, 121.2598425197, 175.7827130709, 4.3075557714, 466.4764329228], [0.1475622617, 1029.9985307087, 170.5099362598, 176.6924088976, 3.5837020567, 437.2343927979], [0.1901841486, 1067.3517220472, 219.7600300000, 177.1061114173, 3.0666868976, 408.1191375555], [0.2328060355, 1104.8850712598, 269.0101237402, 177.6370900000, 2.4197353916, 379.0499527333], [0.2754279225, 1142.4175724409, 318.2602174803, 178.3719658268, 1.7306823429, 350.0439869441], [0.3180498094, 1179.9051893701, 367.5103112205, 179.5961155118, 1.1194301456, 321.1268101117], [0.3606716964, 1217.4141429134, 416.7604051181, 181.3509205512, 0.6234113521, 292.2656248630], [0.4032935833, 1254.9200535433, 466.0104988189, 183.4706485827, 0.0857857562, 276.4329559082], [0.4459154702, 1292.4186220472, 515.2605925197, 186.3742367717, -0.4503252531, 264.3952069143], [0.4885373571, 1329.9178976378, 564.5106862205, 189.9180974803, -0.9040283220, 252.3728395311], [0.5311592440, 1367.4241153543, 613.7607799213, 194.3945537008, -1.2296537640, 240.3502351264], [0.5737811308, 1404.9293543307, 663.0108736220, 199.5300370079, -1.5006302827, 228.3285271445], [0.6164030177, 1442.4383322835, 712.2609673228, 205.1834300394, -1.8017015125, 216.3071277163], [0.6590249046, 1479.9518830709, 761.5110610236, 211.5865619291, -2.0800475240, 204.2856743769], [0.7016467915, 1517.4707196850, 810.7611547244, 218.7116104331, -2.3102936984, 192.2560559430], [0.7442686784, 1554.9981220472, 860.0112484252, 226.6881706693, -2.5293419514, 180.2134536102], [0.7868905656, 1592.5102980315, 909.2613425197, 235.2924776378, -2.7820751214, 168.1847222691], [0.8295124525, 1630.0473594488, 958.5114362205, 244.6706752756, -3.0358315019, 156.1354993545], [0.8721343394, 1667.5787094488, 1007.7615299213, 254.6492317323, -3.2975705963, 144.0945690800], [0.9147562262, 1705.1156228346, 1057.0116236220, 265.1579912992, -3.6932834024, 132.0690364635], [0.9573781131, 1742.6519578740, 1106.2617173228, 276.0179823228, -4.2031461412, 120.0579632049], [1.0000000000, 1780.2088291339, 1155.5118110236, 286.9649092913, -4.7396721550, 108.0212862292], ] ) elif "3.25" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_3.25.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.25. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7057893701, 121.2598425197, 175.5048127953, 4.2703139588, 466.4515287235], [0.1475622617, 1030.0011145669, 170.5099362598, 176.7260716142, 3.5839644606, 437.2323233705], [0.1901841486, 1067.3522637795, 219.7600300000, 177.1351140157, 3.0653457060, 408.1181204007], [0.2328060355, 1104.8849381890, 269.0101237402, 177.6648706299, 2.4175917490, 379.0498711092], [0.2754279225, 1142.4172299213, 318.2602174803, 178.3970880315, 1.7272577123, 350.0440793418], [0.3180498094, 1179.9049173228, 367.5103112205, 179.6256672047, 1.1140135284, 321.1267566241], [0.3606716964, 1217.4141311024, 416.7604051181, 181.3994741732, 0.6162705293, 292.2654709605], [0.4032935833, 1254.9204062992, 466.0104988189, 183.5492022835, 0.0782483582, 276.4329495216], [0.4459154702, 1292.4187807087, 515.2605925197, 186.4779172441, -0.4582251712, 264.3961999147], [0.4885373571, 1329.9182051181, 564.5106862205, 190.0596587402, -0.9165621304, 252.3747826182], [0.5311592440, 1367.4245551181, 613.7607799213, 194.6373069685, -1.2308245526, 240.3520232694], [0.5737811308, 1404.9298011811, 663.0108736220, 199.7570963780, -1.5198519521, 228.3330743564], [0.6164030177, 1442.4396232283, 712.2609673228, 205.4659762992, -1.8234621284, 216.3124434703], [0.6590249046, 1479.9542724409, 761.5110610236, 211.9303011417, -2.1055522951, 204.2919577059], [0.7016467915, 1517.4744023622, 810.7611547244, 219.1210777953, -2.3391258535, 192.2629950733], [0.7442686784, 1555.0040834646, 860.0112484252, 227.1779492520, -2.5607826784, 180.2203655618], [0.7868905656, 1592.5181023622, 909.2613425197, 235.8639951181, -2.8166211968, 168.1922184664], [0.8295124525, 1630.0584334646, 958.5114362205, 245.3350319291, -3.0726457954, 156.1422594669], [0.8721343394, 1667.5926291339, 1007.7615299213, 255.4097173228, -3.3371593666, 144.1011262037], [0.9147562262, 1705.1329011811, 1057.0116236220, 265.9919918898, -3.7474163557, 132.0771147785], [0.9573781131, 1742.6719956693, 1106.2617173228, 276.9902019685, -4.2468819339, 120.0648002765], [1.0000000000, 1780.2328665354, 1155.5118110236, 288.0259510236, -4.7974152121, 108.0297548646], ] ) elif "3.50" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_3.50.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.50. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7060960630, 121.2598425197, 175.8080457874, 4.3063886486, 466.4731932322], [0.1475622617, 1030.0005854331, 170.5099362598, 176.7267902756, 3.5842954769, 437.2338298993], [0.1901841486, 1067.3504637795, 219.7600300000, 177.1198209449, 3.0646312891, 408.1208116074], [0.2328060355, 1104.8828748031, 269.0101237402, 177.6543988583, 2.4146965506, 379.0514650598], [0.2754279225, 1142.4173011811, 318.2602174803, 178.4104430709, 1.7233970176, 350.0434003828], [0.3180498094, 1179.9062519685, 367.5103112205, 179.6665424803, 1.1103807392, 321.1250784236], [0.3606716964, 1217.4150070866, 416.7604051181, 181.4564288976, 0.6115964897, 292.2644508668], [0.4032935833, 1254.9207590551, 466.0104988189, 183.6193822835, 0.0715052603, 276.4329589742], [0.4459154702, 1292.4189031496, 515.2605925197, 186.5704349606, -0.4664945357, 264.3971704792], [0.4885373571, 1329.9184385827, 564.5106862205, 190.1751474016, -0.9267050543, 252.3764026380], [0.5311592440, 1367.4251059055, 613.7607799213, 194.7831345276, -1.2426622930, 240.3542014957], [0.5737811308, 1404.9306062992, 663.0108736220, 199.9355476772, -1.5337417723, 228.3359935668], [0.6164030177, 1442.4409893701, 712.2609673228, 205.6811490157, -1.8394244172, 216.3159846570], [0.6590249046, 1479.9563905512, 761.5110610236, 212.1891420866, -2.1233509106, 204.2960961270], [0.7016467915, 1517.4774318898, 810.7611547244, 219.4248066142, -2.3591815848, 192.2675527481], [0.7442686784, 1555.0086649606, 860.0112484252, 227.5369712992, -2.5825802722, 180.2250084581], [0.7868905656, 1592.5241094488, 909.2613425197, 236.2797945276, -2.8403768169, 168.1971393078], [0.8295124525, 1630.0666433071, 958.5114362205, 245.8156161811, -3.0984085527, 156.1469702441], [0.8721343394, 1667.6027086614, 1007.7615299213, 255.9603673228, -3.3645308588, 144.1058770062], [0.9147562262, 1705.1453523622, 1057.0116236220, 266.6171500787, -3.7762196747, 132.0818024433], [0.9573781131, 1742.6868826772, 1106.2617173228, 277.6976031890, -4.2775802982, 120.0697833827], [1.0000000000, 1780.2516090551, 1155.5118110236, 288.8227916535, -4.8276435471, 108.0339004029], ] ) elif "3.75" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_3.75.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.75. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7068271654, 121.2598425197, 175.8116903937, 4.3061383334, 466.4724368918], [0.1475622617, 1030.0009200787, 170.5099362598, 176.7334996063, 3.5843979101, 437.2336800502], [0.1901841486, 1067.3506440945, 219.7600300000, 177.1234724409, 3.0639309946, 408.1205000212], [0.2328060355, 1104.8834641732, 269.0101237402, 177.6661000394, 2.4130528962, 379.0503667325], [0.2754279225, 1142.4179011811, 318.2602174803, 178.4372910236, 1.7211510974, 350.0424044729], [0.3180498094, 1179.9072051181, 367.5103112205, 179.7099525591, 1.1077974691, 321.1238467672], [0.3606716964, 1217.4156019685, 416.7604051181, 181.5135654724, 0.6082216745, 292.2637778178], [0.4032935833, 1254.9210232283, 466.0104988189, 183.6942635039, 0.0678093125, 276.4329963505], [0.4459154702, 1292.4190913386, 515.2605925197, 186.6582589370, -0.4756300385, 264.3979670977], [0.4885373571, 1329.9186460630, 564.5106862205, 190.2808065354, -0.9339995806, 252.3776347476], [0.5311592440, 1367.4255090551, 613.7607799213, 194.9141264567, -1.2506502838, 240.3558478657], [0.5737811308, 1404.9313578740, 663.0108736220, 200.0879814961, -1.5440052234, 228.3381128471], [0.6164030177, 1442.4421877953, 712.2609673228, 205.8610069685, -1.8512289716, 216.3185337155], [0.6590249046, 1479.9581492126, 761.5110610236, 212.4012033465, -2.1367035412, 204.2991284312], [0.7016467915, 1517.4800338583, 810.7611547244, 219.6794649213, -2.3715297672, 192.2703952644], [0.7442686784, 1555.0122326772, 860.0112484252, 227.8236198819, -2.5990414986, 180.2284742362], [0.7868905656, 1592.5287263780, 909.2613425197, 236.6110509055, -2.8577884736, 168.2008179660], [0.8295124525, 1630.0729570866, 958.5114362205, 246.1936238583, -3.1182904611, 156.1506010986], [0.8721343394, 1667.6105854331, 1007.7615299213, 256.3929897638, -3.3854283696, 144.1094936779], [0.9147562262, 1705.1550342520, 1057.0116236220, 267.1070771260, -3.7988159897, 132.0855626416], [0.9573781131, 1742.6987248031, 1106.2617173228, 278.2531065354, -4.3015808587, 120.0737174893], [1.0000000000, 1780.2670854331, 1155.5118110236, 289.4512046063, -4.8515102425, 108.0367497582], ] ) elif "4.00" in wing_type: # eta, xle, yle, zle, twist, chord # Info taken from `dpw6_ae_4.00.cgns` by taking slices in TecPlot # Processed using `get_all_slices.py`. # This corresponds to the CRM shape in the wind tunnel when alpha is set to 4.00. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403748, 993.7056925197, 121.2598425197, 175.8055594882, 4.3062989746, 466.4735034602], [0.1475622617, 1029.9999881890, 170.5099362598, 176.7326250394, 3.5838764625, 437.2328268659], [0.1901841486, 1067.3517685039, 219.7600300000, 177.1374396457, 3.0640359095, 408.1185742207], [0.2328060355, 1104.8846188976, 269.0101237402, 177.6921194488, 2.4128270541, 379.0491121656], [0.2754279225, 1142.4188688976, 318.2602174803, 178.4716350394, 1.7204938512, 350.0411423794], [0.3180498094, 1179.9075559055, 367.5103112205, 179.7534834646, 1.1063030558, 321.1232265616], [0.3606716964, 1217.4158460630, 416.7604051181, 181.5697217717, 0.6057546886, 292.2637476539], [0.4032935833, 1254.9214303150, 466.0104988189, 183.7639667323, 0.0644397367, 276.4327689268], [0.4459154702, 1292.4192366142, 515.2605925197, 186.7448148425, -0.4768719508, 264.3984493960], [0.4885373571, 1329.9188374016, 564.5106862205, 190.3840371260, -0.9399639132, 252.3787605769], [0.5311592440, 1367.4259456693, 613.7607799213, 195.0386488189, -1.2580064617, 240.3573682403], [0.5737811308, 1404.9319606299, 663.0108736220, 200.2349537402, -1.5530968674, 228.3402014235], [0.6164030177, 1442.4432480315, 712.2609673228, 206.0332424409, -1.8620291612, 216.3210254021], [0.6590249046, 1479.9598161417, 761.5110610236, 212.6031379921, -2.1492751988, 204.3020279567], [0.7016467915, 1517.4824059055, 810.7611547244, 219.9115042126, -2.3862496809, 192.2736409199], [0.7442686784, 1555.0157543307, 860.0112484252, 228.0939818110, -2.6152023293, 180.2317415624], [0.7868905656, 1592.5332405512, 909.2613425197, 236.9198453150, -2.8761133777, 168.2044309229], [0.8295124525, 1630.0790141732, 958.5114362205, 246.5479013780, -3.1382062546, 156.1540966624], [0.8721343394, 1667.6180830709, 1007.7615299213, 256.7963355118, -3.4069180477, 144.1130724117], [0.9147562262, 1705.1643637795, 1057.0116236220, 267.5634429921, -3.8218206254, 132.0891046095], [0.9573781131, 1742.7099129921, 1106.2617173228, 278.7689766929, -4.3261943504, 120.0775722754], [1.0000000000, 1780.2803842520, 1155.5118110236, 290.0330695276, -4.8761258072, 108.0407026390], ] ) elif "jig_wind_tunnel" in wing_type: # eta, xle, yle, zle, twist, chord # This corresponds to the CRM jig shape for the wind tunnel model. # # Note that the first line is copied from the jig shape because we do not # have information about the wing section inside of the fuselage # because the cgns file has the wing-body together with cut meshes. raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1049403708, 993.5692165354, 121.2598395276, 175.8654098819, 4.3199256335, 466.5860999823], [0.1475622525, 1029.9003779528, 170.5099278740, 176.6012972835, 3.5802452139, 437.2786755946], [0.1901841505, 1067.2118720472, 219.7600349606, 176.8844897244, 3.0547850948, 408.2083865772], [0.2328060321, 1104.7381303150, 269.0101233071, 177.4452239370, 2.4438518217, 379.1585553218], [0.2754279301, 1142.2658905512, 318.2602304331, 178.1761176772, 1.7996363879, 350.1656331299], [0.3180497955, 1179.7541519685, 367.5103000000, 179.2136139764, 1.2276224430, 321.2485677861], [0.3606716935, 1217.2680952756, 416.7604070866, 180.5531884646, 0.7613387542, 292.3807561748], [0.4032935914, 1254.7701736220, 466.0105141732, 182.2970983465, 0.3064736738, 276.4787953887], [0.4459154569, 1292.2751059055, 515.2605838583, 184.5150669685, -0.1774773151, 264.4186614476], [0.4885373548, 1329.7735799213, 564.5106909449, 187.4023722835, -0.5506036937, 252.3783577064], [0.5311592527, 1367.2786622047, 613.7607980315, 190.9011555512, -0.8070946481, 240.3362553898], [0.5737811507, 1404.7832940945, 663.0109051181, 194.8889597244, -1.0130749164, 228.2941035657], [0.6164030162, 1442.2849220472, 712.2609748031, 199.3089961417, -1.2369897956, 216.2539213411], [0.6590248814, 1479.7901543307, 761.5110440945, 204.2338228740, -1.4376439528, 204.2117105270], [0.7016468120, 1517.2977897638, 810.7611889764, 209.8330738189, -1.5879398064, 192.1655815764], [0.7442686772, 1554.7973153543, 860.0112582677, 216.0224951969, -1.7313527064, 180.1207714256], [0.7868905428, 1592.2909834646, 909.2613279528, 222.7967930709, -1.8977752266, 168.0774904617], [0.8295124734, 1629.7900582677, 958.5114728346, 230.1377386614, -2.0945127705, 156.0349538684], [0.8721343386, 1667.2937889764, 1007.7615421260, 238.2089772441, -2.2145151358, 143.9824437607], [0.9147562042, 1704.7921129921, 1057.0116118110, 246.4570961417, -2.5772473732, 131.9604036611], [0.9573780697, 1742.2943417323, 1106.2616814961, 254.9872060630, -3.0701697145, 119.9459942819], [1.0000000000, 1779.7950685039, 1155.5118259843, 263.5766389764, -3.6142545059, 107.9325590260], ] ) elif wing_type == "uCRM_based": # Modified CRM points to match the uCRM span # Made the z-corrdinates constant for 30% span and beyond # For more precise points use the uCRM geometry files on the modlab website # eta, xle, yle, zle, twist, chord raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1, 989.505, 115.675, 175.722, 4.4402, 468.511], [0.15, 1032.133, 173.513, 176.834, 3.6063, 434.764], [0.2, 1076.030, 231.351, 177.912, 2.2419, 400.835], [0.25, 1120.128, 289.188, 177.912, 2.2419, 366.996], [0.3, 1164.153, 347.026, 178.0, 1.5252, 333.157], [0.35, 1208.203, 404.864, 178.0, 0.9379, 299.317], # 6 yehudi break [0.4, 1252.246, 462.701, 178.0, 0.4285, 277.288], [0.45, 1296.289, 520.539, 178.0, -0.2621, 263], [0.5, 1340.329, 578.377, 178.0, -0.6782, 248.973], [0.55, 1384.375, 636.214, 178.0, -0.9436, 234.816], [0.60, 1428.416, 694.052, 178.0, -1.2067, 220.658], [0.65, 1472.458, 751.890, 178.0, -1.4526, 206.501], [0.7, 1516.504, 809.727, 178.0, -1.6350, 192.344], [0.75, 1560.544, 867.565, 178.0, -1.8158, 178.186], [0.8, 1604.576, 925.402, 178.0, -2.0301, 164.029], [0.85, 1648.616, 983.240, 178.0, -2.2772, 149.872], [0.9, 1692.659, 1041.078, 178.0, -2.5773, 135.714], [0.95, 1736.710, 1098.915, 178.0, -3.1248, 121.557], [1.0, 1780.737, 1158.5, 178.0, -3.75, 107.4], # 19 ] ) else: # This is the jig CRM shape from the actual aircraft scale, not # the wind tunnel model. # eta, xle, yle, zle, twist, chord # Info taken from AIAA paper 2008-6919 by Vassberg raw_crm_points = np.array( [ [0.0, 904.294, 0.0, 174.126, 6.7166, 536.181], # 0 [0.1, 989.505, 115.675, 175.722, 4.4402, 468.511], [0.15, 1032.133, 173.513, 176.834, 3.6063, 434.764], [0.2, 1076.030, 231.351, 177.912, 2.2419, 400.835], [0.25, 1120.128, 289.188, 177.912, 2.2419, 366.996], [0.3, 1164.153, 347.026, 178.886, 1.5252, 333.157], [0.35, 1208.203, 404.864, 180.359, 0.9379, 299.317], # 6 yehudi break [0.4, 1252.246, 462.701, 182.289, 0.4285, 277.288], [0.45, 1296.289, 520.539, 184.904, -0.2621, 263], [0.5, 1340.329, 578.377, 188.389, -0.6782, 248.973], [0.55, 1384.375, 636.214, 192.736, -0.9436, 234.816], [0.60, 1428.416, 694.052, 197.689, -1.2067, 220.658], [0.65, 1472.458, 751.890, 203.294, -1.4526, 206.501], [0.7, 1516.504, 809.727, 209.794, -1.6350, 192.344], [0.75, 1560.544, 867.565, 217.084, -1.8158, 178.186], [0.8, 1604.576, 925.402, 225.188, -2.0301, 164.029], [0.85, 1648.616, 983.240, 234.082, -2.2772, 149.872], [0.9, 1692.659, 1041.078, 243.625, -2.5773, 135.714], [0.95, 1736.710, 1098.915, 253.691, -3.1248, 121.557], [1.0, 1780.737, 1156.753, 263.827, -3.75, 107.4], # 19 ] ) return raw_crm_points