__author__ = 'patrickjmcd' import math import numpy as np import scipy.interpolate # setting up constants E = 30.5 * 10**6 A = math.pi/4 * (0.75)**2 L = 2000 Gc = 32.2 Rho = 490 T = 15 M = 100 NT = 360 C = 0.8 F = [4085.7, 3969.1, 3852.4, 3774.7, 3697, 3736, 3814, 3891.9, 3969.7, 4047.7, 4008.9, 3931.1, 3853.3, 3775.6, 3658.9, 3581.2, 3581.3, 3659.3, 3737.3, 3815.2, 3893.1, 3970.9, 4048.9, 4126.8, 4204.7, 4282.6, 4360.5, 4477.3, 4555.3, 4633.2, 4672.1, 4788.9, 4866.8, 4944.7, 5061.4, 5139.4, 5256.2, 5334, 5411.8, 5528.6, 5606.5, 5684.4, 5801.3, 5879.2, 5918.3, 5918.6, 5879.9, 5841.2, 5880.2, 5919.3, 5997.3, 6075.2, 6153.1, 6231, 6308.9, 6386.7, 6503.6, 6581.5, 6659.3, 6776.2, 6854.1, 6932, 6971.1, 6932.5, 6893.7, 6855, 6777.3, 6738.6, 6699.8, 6699.9, 6739.1, 6778.3, 6778.6, 6778.8, 6779.2, 6818.4, 6896.4, 6974.3, 7052.2, 7169, 7285.9, 7441.6, 7597.4, 7675.3, 7792.2, 7986.8, 8103.7, 8220.5, 8337.3, 8454.1, 8571, 8649, 8726.9, 8766, 8688.4, 8610.7, 8533, 8455.3, 8377.6, 8261, 8183.3, 8105.7, 8067, 8067.2, 8106.3, 8145.5, 8145.7, 8145.9, 8107.2, 8068.5, 8029.9, 7991.3, 7991.5, 7991.7, 7992, 7914.4, 7836.8, 7759, 7681.3, 7603.6, 7448.1, 7331.5, 7253.8, 7137.2, 7020.5, 6865, 6670.6, 6515, 6398.4, 6281.8, 6165.2, 6048.6, 5970.9, 5932.2, 5971.3, 6049.2, 6127.2, 6205.1, 6283, 6361.1, 6400.2, 6439.3, 6400.8, 6362.1, 6323.4, 6323.6, 6323.8, 6363.1, 6363.3, 6363.5, 6363.7, 6325.1, 6325.2, 6403.2, 6442.2, 6520.2, 6598.1, 6676, 6754, 6870.8, 6987.6, 7143.4, 7260.2, 7416, 7610.7, 7766.4, 7922.2, 8000.1, 8078, 8078.1, 8039.4, 8000.6, 7922.9, 7845.2, 7767.5, 7689.8, 7651, 7612.3, 7612.5, 7651.7, 7690.7, 7690.9, 7652.4, 7613.8, 7614, 7653.1, 7653.4, 7575.8, 7498, 7420.3, 7342.6, 7226, 7109.4, 6992.7, 6876, 6720.5, 6526.1, 6370.5, 6253.8, 6137.2, 6020.6, 5981.8, 6020.9, 6098.8, 6176.8, 6254.7, 6332.8, 6333, 6294.4, 6294.7, 6295, 6295.2, 6256.6, 6334.6, 6451.5, 6568.3, 6685.1, 6801.9, 6957.7, 7152.3, 7269, 7502.6, 7619.5, 7697.4, 7658.7, 7581, 7503.2, 7425.6, 7425.8, 7464.8, 7426.2, 7387.6, 7387.8, 7310.1, 7193.5, 7037.8, 6687.6, 6843.4, 6687.7, 6532.1, 6415.5, 6298.7, 6182, 6182.2, 6182.5, 6182.8, 6338.6, 6416.4, 6572, 6688.7, 6844.4, 7038.9, 7155.7, 7311.2, 7116.5, 6999.8, 6844.2, 6727.3, 6571.8, 6454.8, 6338, 5987.8, 5832.1, 5676.4, 5442.8, 5326, 5209.2, 5364.7, 5559.1, 5714.7, 5870.2, 5947.8, 5869.7, 5830.6, 5791.5, 5674.6, 5596.7, 5518.8, 5440.7, 5401.6, 5479.2, 5556.8, 5478.7, 5361.9, 5206.1, 5128.3, 5011.5, 4816.9, 4622.3, 4349.8, 4155.1, 3882.6, 3726.9, 3610.1, 3493, 3414.9, 3336.8, 3258.7, 3219.5, 3219.3, 3218.9, 3179.7, 3101.7, 2984.7, 2906.9, 2751, 2595.2, 2517.2, 2400.4, 2322.5, 2322.2, 2438.7, 2555.4, 2672, 2749.7, 2866.3, 2944, 3021.6, 3021.4, 2943.5, 2787.6, 2631.8, 2476.1, 2242.4, 2008.7, 1814.1, 1697.2, 1619.3, 1580, 1579.8, 1579.6, 1579.4, 1579.1, 1656.6, 1695.2, 1811.7, 1928.2, 2122.6, 2278, 2394.6, 2472.2, 2511, 2510.8, 2432.7, 2315.8, 2159.9, 2004, 1926, 1964.6, 2081.1, 2236.5, 2392, 2547.6, 2741.9, 2936.3, 3130.6, 3247.2, 3286, 3324.7, 3402.3, 3402, 3440.6, 3401.3, 3362.1, 3283.9, 3205.9, 3089.1, 3011.1, 2933.2, 2855.3, 2777.3, 2699.4, 2660.3, 2660, 2698.7, 2815.2, 3009.6, 3126.1, 3242.6, 3281.4, 3281.2, 3203.1, 3125.2, 3008.3, 2852.5, 2735.6, 2618.8, 2502, 2385.1, 2268.2, 2190.2, 2151.1, 2111.8, 2111.4, 2111.1, 2188.4, 2266, 2382.5, 2538.1, 2615.8, 2693.5, 2810, 2887.7, 2926.4, 2887.3, 2809.2, 2731.3, 2614.4, 2536.5, 2458.5, 2419.3, 2496.9, 2574.6, 2652.4, 2769, 2924.5, 3080, 3118.8, 3274.4, 3429.9, 3468.7, 3546.4, 3585.1, 3662.7, 3701.3, 3701, 3700.8, 3661.6, 3466.8, 3349.9, 3233.1, 3155.1, 3193.7, 3271.5, 3388.1, 3504.7, 3621.3, 3660.1, 3698.9, 3659.8, 3542.9, 3426.1, 3270.3, 3153.5, 2997.7, 2880.9, 2802.9, 2763.6, 2841.1, 2957.8, 3074.6, 3191.2, 3269, 3346.7, 3346.6, 3346.4 ] X = [0.10168, 0.2756, 0.44953, 0.62278, 0.79604, 0.96729, 1.1379, 1.3084, 1.3071, 1.4777, 1.6503, 1.8235, 1.8249, 1.9981, 2.0001, 2.1734, 2.3453, 2.6878, 2.8584, 3.029, 3.1995, 3.1982, 3.3688, 3.5394, 3.7099, 3.7086, 3.8792, 4.0491, 4.2197, 4.3903, 4.3896, 4.5595, 4.5582, 4.7287, 4.7267, 4.8973, 5.0672, 5.0659, 5.0646, 5.0625, 5.2331, 5.4037, 5.5736, 5.7442, 6.0874, 6.4312, 6.7757, 7.1202, 7.2915, 7.6346, 7.8052, 7.9758, 8.1464, 8.145, 8.3156, 8.3143, 8.4842, 8.6548, 8.6534, 8.8233, 8.9939, 9.1645, 9.5077, 9.8522, 10.025, 10.369, 10.543, 10.887, 11.06, 11.232, 11.747, 12.09, 12.606, 12.949, 13.465, 13.98, 14.323, 14.321, 14.492, 14.662, 14.832, 15.001, 15.17, 15.341, 15.511, 15.679, 15.849, 16.019, 16.189, 16.187, 16.529, 16.699, 16.87, 17.213, 17.558, 17.732, 17.905, 18.078, 18.251, 18.425, 18.599, 18.944, 19.288, 19.632, 19.975, 20.318, 20.662, 21.006, 21.351, 21.695, 22.04, 22.556, 22.9, 23.244, 23.588, 23.933, 24.278, 24.451, 24.624, 24.798, 24.972, 25.146, 25.319, 25.493, 25.667, 25.842, 26.017, 26.192, 26.366, 26.54, 26.713, 26.887, 27.061, 27.405, 27.748, 27.919, 28.09, 28.26, 28.431, 28.773, 29.116, 29.459, 29.976, 30.32, 30.665, 31.009, 31.353, 31.868, 32.212, 32.555, 32.899, 33.244, 33.416, 33.758, 33.929, 34.1, 34.271, 34.441, 34.612, 34.782, 34.952, 35.121, 35.291, 35.46, 35.628, 35.798, 35.967, 36.138, 36.308, 36.48, 36.825, 36.997, 37.17, 37.344, 37.517, 37.69, 37.863, 38.207, 38.551, 38.894, 39.065, 39.409, 39.926, 40.442, 40.786, 41.129, 41.473, 41.818, 41.991, 42.165, 42.338, 42.512, 42.686, 42.688, 42.862, 43.036, 43.212, 43.386, 43.388, 43.562, 43.736, 43.909, 44.252, 44.422, 44.593, 44.764, 45.106, 45.45, 45.966, 46.482, 46.826, 47.17, 47.686, 48.029, 48.199, 48.368, 48.366, 48.536, 48.706, 48.874, 48.872, 49.04, 49.21, 49.381, 49.725, 49.898, 49.9, 50.245, 50.589, 50.76, 51.276, 51.621, 51.965, 52.138, 52.312, 52.315, 52.321, 52.49, 52.492, 52.495, 52.669, 52.671, 52.673, 53.017, 53.361, 53.877, 54.046, 54.044, 54.042, 54.04, 54.037, 54.034, 54.032, 53.857, 53.689, 53.691, 53.693, 53.523, 53.698, 53.356, 53.186, 53.192, 53.023, 53.026, 52.858, 52.688, 52.518, 52.343, 52.168, 51.993, 51.819, 51.474, 51.131, 50.788, 50.445, 50.275, 50.104, 49.934, 49.591, 49.248, 48.903, 48.558, 48.215, 48.045, 47.876, 47.877, 47.708, 47.711, 47.542, 47.375, 47.207, 47.039, 46.87, 46.7, 46.186, 45.844, 45.329, 44.987, 44.472, 44.128, 43.612, 43.097, 42.755, 42.413, 42.414, 42.073, 41.732, 41.561, 41.391, 41.221, 40.877, 40.531, 40.357, 40.183, 40.01, 39.836, 39.663, 39.318, 38.974, 38.803, 38.462, 38.293, 38.124, 37.784, 37.444, 37.275, 37.105, 36.935, 36.42, 36.076, 35.732, 35.388, 35.044, 34.527, 34.011, 33.665, 33.319, 32.972, 32.626, 32.452, 32.106, 31.934, 31.59, 31.248, 30.906, 30.565, 30.223, 29.881, 29.365, 29.019, 28.672, 28.498, 28.323, 27.976, 27.801, 27.453, 27.107, 26.935, 26.762, 26.417, 25.901, 25.385, 24.87, 24.355, 23.84, 23.498, 23.328, 23.157, 22.987, 22.816, 22.646, 22.475, 22.132, 21.788, 21.444, 21.098, 20.751, 20.405, 20.059, 19.886, 19.542, 19.2, 19.029, 18.859, 18.518, 18.348, 18.178, 18.009, 17.839, 17.497, 17.326, 16.983, 16.468, 15.78, 15.265, 14.576, 14.23, 13.885, 13.71, 13.537, 13.363, 13.018, 12.844, 12.5, 12.157, 11.814, 11.644, 11.474, 11.303, 10.961, 10.617, 10.272, 10.099, 9.9257, 9.7518, 9.5772, 9.4026, 9.23, 9.0555, 8.8809, 8.7083, 8.535, 8.1905, 7.8453, 7.3289, 6.9851, 6.6412, 6.1262, 5.7857, 5.6158, 5.4458, 5.1034, 4.7588, 4.5856, 4.4117, 4.2377, 4.0638, 3.8912, 3.7186, 3.3755, 3.2056, 3.0357, 2.8664, 2.6965, 2.5273, 2.3573, 2.0149, 1.4998, 0.98267, 0.98067, 0.97866, 0.80474, 0.8034, 0.63014, 0.45822, 0.11439] [Xmin, IXmin] = min(X) X = np.roll(X, 1 - IXmin) F = np.roll(F, 1 - IXmin) [Xmax, IXmax] = max(X) Xu = X[0:IXmax] Xd = X[IXmax:len(X)] Xd.push(X[0]) Fu = F[0:IXmax] Fd = F[IXmax:len(X)] Fd.push(F[0]) S = Xmax - Xmin Xi = [0.10168, 0.111692778, 0.13196366, 0.162450928, 0.203107855, 0.253882838, 0.314719538, 0.385557016, 0.466329871, 0.556968385, 0.65739866, 0.767542759, 0.887318849, 1.016641341, 1.155421026, 1.303565219, 1.460977889, 1.6275598, 1.80320864, 1.987819156, 2.181283279, 2.383490252, 2.594326755, 2.813677023, 3.041422967, 3.277444288, 3.521618587, 3.773821477, 4.033926687, 4.301806164, 4.577330175, 4.860367396, 5.150785014, 5.448448807, 5.753223235, 6.064971523, 6.383555736, 6.708836859, 7.040674868, 7.378928801, 7.723456822, 8.074116288, 8.430763807, 8.793255299, 9.161446046, 9.53519075, 9.914343578, 10.29875821, 10.6882879, 11.08278548, 11.48210343, 11.88609393, 12.29460886, 12.70749983, 13.12461828, 13.54581543, 13.97094234, 14.39984995, 14.8323891, 15.26841055, 15.70776498, 16.15030306, 16.59587544, 17.04433279, 17.49552579, 17.94930517, 18.40552174, 18.86402637, 19.32467006, 19.78730391, 20.25177917, 20.71794722, 21.18565964, 21.65476819, 22.12512482, 22.59658173, 23.06899135, 23.54220637, 24.01607978, 24.49046486, 24.96521521, 25.44018477, 25.91522788, 26.39019925, 26.864954, 27.33934771, 27.81323643, 28.28647671, 28.75892562, 29.2304408, 29.70088048, 30.17010353, 30.63796946, 31.10433849, 31.5690716, 32.03203051, 32.49307779, 32.95207685, 33.40889204, 33.86338863, 34.31543289, 34.76489217, 35.2116349, 35.65553064, 36.09645018, 36.53426556, 36.96885013, 37.4000786, 37.82782711, 38.25197327, 38.67239623, 39.08897675, 39.50159723, 39.91014179, 40.31449631, 40.71454852, 41.11018804, 41.50130641, 41.88779722, 42.26955608, 42.64648076, 43.01847117, 43.38542946, 43.74726007, 44.10386975, 44.45516765, 44.80106533, 45.14147682, 45.47631866, 45.80550996, 46.12897239, 46.44663024, 46.75841048, 47.06424272, 47.36405929, 47.65779525, 47.94538839, 48.22677923, 48.5019111, 48.77073005, 49.03318493, 49.28922733, 49.53881164, 49.78189496, 50.01843717, 50.24840083, 50.47175123, 50.68845631, 50.8984867, 51.10181559, 51.29841878, 51.48827461, 51.6713639, 51.84766995, 52.01717844, 52.17987741, 52.33575719, 52.48481037, 52.62703172, 52.76241813, 52.89096853, 53.01268389, 53.12756708, 53.23562284, 53.3368577, 53.43127994, 53.51889947, 53.59972779, 53.67377794, 53.74106438, 53.80160294, 53.85541079, 53.90250628, 53.94290897, 53.97663949, 54.00371951, 54.02417164, 54.03801941, 54.04528716, 54.046, 54.04018376, 54.02786489, 54.00907046, 53.98382803, 53.95216567, 53.91411185, 53.86969545, 53.81894562, 53.76189185, 53.69856383, 53.62899145, 53.55320476, 53.47123393, 53.38310922, 53.28886093, 53.1885194, 53.08211497, 52.96967792, 52.85123853, 52.72682697, 52.59647335, 52.46020767, 52.31805981, 52.17005956, 52.01623653, 51.85662026, 51.69124009, 51.52012528, 51.34330491, 51.16080797, 50.97266331, 50.77889967, 50.57954568, 50.37462992, 50.16418087, 49.94822697, 49.72679663, 49.49991826, 49.26762028, 49.02993118, 48.78687952, 48.53849395, 48.2848033, 48.02583657, 47.76162296, 47.49219198, 47.2175734, 46.93779736, 46.65289442, 46.36289555, 46.06783225, 45.76773656, 45.46264114, 45.1525793, 44.8375851, 44.51769336, 44.19293978, 43.86336097, 43.52899451, 43.18987904, 42.84605434, 42.49756136, 42.14444234, 41.78674086, 41.42450191, 41.057772, 40.6865992, 40.31103326, 39.93112565, 39.54692968, 39.15850056, 38.76589551, 38.3691738, 37.96839688, 37.56362844, 37.15493451, 36.74238354, 36.32604648, 35.90599687, 35.48231092, 35.0550676, 34.62434871, 34.19023899, 33.75282616, 33.31220102, 32.8684575, 32.4216928, 31.97200735, 31.51950499, 31.06429294, 30.60648193, 30.14618619, 29.68352357, 29.21861553, 28.7515872, 28.2825674, 27.81168873, 27.33908749, 26.86490378, 26.38928149, 25.91236828, 25.4343156, 24.95527863, 24.47541634, 23.99489139, 23.5138701, 23.03252244, 22.55102193, 22.0695456, 21.58827392, 21.10739066, 20.62708288, 20.14754073, 19.66895741, 19.19152901, 18.71545439, 18.24093498, 17.76817472, 17.2973798, 16.82875854, 16.36252121, 15.89887979, 15.43804781, 14.98024012, 14.52567268, 14.07456235, 13.62712662, 13.18358339, 12.74415076, 12.30904672, 11.87848894, 11.4526945, 11.03187963, 10.61625945, 10.20604771, 9.801456512, 9.402696059, 9.009974389, 8.623497114, 8.243467156, 7.870084499, 7.503545932, 7.144044805, 6.791770785, 6.446909627, 6.109642939, 5.780147969, 5.458597387, 5.145159087, 4.839995992, 4.54326587, 4.255121159, 3.97570881, 3.705170133, 3.443640654, 3.191249996, 2.948121753, 2.714373392, 2.490116162, 2.275455011, 2.070488521, 1.875308851, 1.690001699, 1.514646263, 1.349315229, 1.194074759, 1.048984495, 0.914097574, 0.789460652, 0.675113939, 0.571091244, 0.477420029, 0.394121474, 0.321210542, 0.258696068, 0.206580837, 0.164861684, 0.133529591, 0.112569796, 0.101961904 ] Ni = len(Xi) Xi_new = Xi.push(Xi[0]) Xi = scipy.interpolate.interp1d(np.linspace(0,1,Ni+1), )