diff options
author | hardythe1 | 2015-06-03 15:27:17 +0530 |
---|---|---|
committer | hardythe1 | 2015-06-03 15:27:17 +0530 |
commit | 47d7279a724246ef7aa0f5359cf417992ed04449 (patch) | |
tree | c613e5e4813d846d24d67f46507a6a69d1a42d87 /Testing_the_interface/chapter8_3.ipynb | |
parent | 435840cef00c596d9e608f9eb2d96f522ea8505a (diff) | |
download | Python-Textbook-Companions-47d7279a724246ef7aa0f5359cf417992ed04449.tar.gz Python-Textbook-Companions-47d7279a724246ef7aa0f5359cf417992ed04449.tar.bz2 Python-Textbook-Companions-47d7279a724246ef7aa0f5359cf417992ed04449.zip |
add books
Diffstat (limited to 'Testing_the_interface/chapter8_3.ipynb')
-rwxr-xr-x | Testing_the_interface/chapter8_3.ipynb | 524 |
1 files changed, 524 insertions, 0 deletions
diff --git a/Testing_the_interface/chapter8_3.ipynb b/Testing_the_interface/chapter8_3.ipynb new file mode 100755 index 00000000..2e7289e4 --- /dev/null +++ b/Testing_the_interface/chapter8_3.ipynb @@ -0,0 +1,524 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8: Applications of Plane Stress Pressure Vessels Beams and Combined Loadings" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.1, page no. 546" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "finding max. permissible pressures at various conditions\n", + "\"\"\"\n", + "\n", + "import math \n", + "\n", + "#initialisation\n", + "d = 18 # inner idameter of the hemisphere in inch\n", + "t = 1.0/4.0 # thickness of the hemisphere in inch\n", + "\n", + "\n", + "#calculation\n", + "# Part (a)\n", + "sa = 14000 # Allowable tensile stress in Psi\n", + "Pa = (2*t*sa)/(d/2.0) # Maximum permissible air pressure in Psi\n", + "print \"Maximum permissible air pressure in the tank (Part(a)) is\", round(Pa,1), \"psi\"\n", + "\n", + "# Part (b)\n", + "sb = 6000 # Allowable shear stress in Psi\n", + "Pb = (4*t*sb)/(d/2.0) # Maximum permissible air pressure in Psi\n", + "print \"Maximum permissible air pressure in the tank (Part(b)) is\", round(Pb,1), \"psi\"\n", + "\n", + "# Part (c)\n", + "e = 0.0003 # Allowable Strain in Outer sufrface of the hemisphere\n", + "E = 29e06 # Modulus of epasticity of the steel in Psi\n", + "v = 0.28 # Poissions's ratio of the steel\n", + "Pc = (2*t*E*e)/((d/2.0)*(1-v)) # Maximum permissible air pressure in Psi\n", + "print \"Maximum permissible air pressure in the tank (Part(c)) is\", round(Pc,1), \"psi\"\n", + "\n", + "# Part (d)\n", + "Tf = 8100 # failure tensile load in lb/in \n", + "n = 2.5 # Required factor of safetty against failure of the weld\n", + "Ta = Tf / n # Allowable load in ld/in \n", + "sd = (Ta*(1))/(t*(1)) # Allowable tensile stress in Psi\n", + "Pd = (2*t*sd)/(d/2.0) # Maximum permissible air pressure in Psi\n", + "print \"Maximum permissible air pressure in the tank (Part(d)) is\", round(Pd,1), \"psi\"\n", + "\n", + "# Part (e)\n", + "Pallow = Pb \n", + "print \"Maximum permissible air pressure in the tank (Part(e)) is\", round(Pb,1) ,\"psi\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum permissible air pressure in the tank (Part(a)) is 777.8 psi\n", + "Maximum permissible air pressure in the tank (Part(b)) is 666.7 psi\n", + "Maximum permissible air pressure in the tank (Part(c)) is 671.3 psi\n", + "Maximum permissible air pressure in the tank (Part(d)) is 720.0 psi\n", + "Maximum permissible air pressure in the tank (Part(e)) is 666.7 psi\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.2, page no. 552" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "calculating various quantities for cylindrical part of vessel\n", + "\"\"\"\n", + "\n", + "import math \n", + "\n", + "#initialisation\n", + "a = 55 # Angle made by helix with longitudinal axis in degree\n", + "r = 1.8 # Inner radius of vessel in m\n", + "t = 0.02 # thickness of vessel in m\n", + "E = 200e09 # Modulus of ealsticity of steel in Pa\n", + "v = 0.3 # Poission's ratio of steel \n", + "P = 800e03 # Pressure inside the tank in Pa\n", + "\n", + "\n", + "#calculation\n", + "# Part (a)\n", + "s1 = (P*r)/t # Circumferential stress in Pa\n", + "s2 = (P*r)/(2*t) # Longitudinal stress in Pa\n", + "\n", + "print \"Circumferential stress is \", s1, \"Pa\"\n", + "print \"Longitudinal stress is \", s2, \"Pa\"\n", + "\n", + "# Part (b)\n", + "t_max_z = (s1-s2)/2.0 # Maximum inplane shear stress in Pa\n", + "t_max = s1/2.0 # Maximum out of plane shear stress in Pa\n", + "\n", + "print \"Maximum inplane shear stress is \", t_max_z, \"Pa\"\n", + "print \"Maximum inplane shear stress is \", t_max, \"Pa\"\n", + "\n", + "# Part (c)\n", + "e1 = (s1/(2*E))*(2-v) # Strain in circumferential direction \n", + "e2 = (s2/E)*(1-(2*v)) # Strain in longitudinal direction\n", + "\n", + "print \"Strain in circumferential direction is %e\"%(e1)\n", + "print \"Strain in longitudinal direction is \", e2\n", + "\n", + "# Part (d)\n", + "# x1 is the direction along the helix\n", + "theta = 90 - a \n", + "sx1 = ((P*r)/(4*t))*(3-math.cos(math.radians(2*theta))) # Stress along x1 direction\n", + "tx1y1 = ((P*r)/(4*t))*(math.sin(math.radians(2*theta))) # Shear stress in x1y1 plane\n", + "sy1 = s1+s2-sx1 # Stress along y1 direction\n", + "\n", + "print \"Stress along y1 direction is \", sy1\n", + "\n", + "# Mohr Circle Method\n", + "savg = (s1+s2)/2.0 # Average stress in Pa\n", + "R = (s1 - s2 )/2.0 # Radius of Mohr's Circle in Pa\n", + "sx1_ = savg - R*math.cos(math.radians(2*theta)) # Stress along x1 direction\n", + "tx1y1_ = R*math.sin(math.radians(2*theta)) # Shear stress in x1y1 plane\n", + "print \"Stress along x1 direction is \", sx1_, \"Pa\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Circumferential stress is 72000000.0 Pa\n", + "Longitudinal stress is 36000000.0 Pa\n", + "Maximum inplane shear stress is 18000000.0 Pa\n", + "Maximum inplane shear stress is 36000000.0 Pa\n", + "Strain in circumferential direction is 3.060000e-04\n", + "Strain in longitudinal direction is 7.2e-05\n", + "Stress along y1 direction is 60156362.5799\n", + "Stress along x1 direction is 47843637.4201 Pa\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.3, page no. 562" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "principal stresses and maximum shear stresses at cross section\n", + "\"\"\"\n", + "\n", + "%pylab inline\n", + "from matplotlib import *\n", + "from pylab import *\n", + "import numpy\n", + "\n", + "#initialisation\n", + "L = 6.0 # Span of the beam in ft\n", + "P = 10800 # Pressure acting in lb\n", + "c = 2.0 # in ft\n", + "b = 2.0 # Width of cross section of the beam in inch\n", + "h = 6.0 # Height of the cross section of the beam in inch\n", + "x = 9.0 # in inch\n", + "\n", + "#calculation\n", + "Ra = P/3.0 # Reaction at point at A\n", + "V = Ra # Shear force at section mn \n", + "M = Ra*x # Bending moment at the section mn\n", + "I = (b*h**3)/12.0 # Moment of inertia in in4\n", + "y = linspace(-3, 3, 61)\n", + "sx = -(M/I)*y # Normal stress on crossection mn\n", + "Q = (b*(h/2-y))*(y+((((h/2.0)-y)/2.0))) # First moment of recmath.tangular cross section\n", + "txy = (V*Q)/(I*b) # Shear stress acting on x face of the stress element\n", + "s1 = (sx/2.0)+numpy.sqrt((sx/2.0)**2+(txy)**2) # Principal Tesile stress on the cross section\n", + "s2 = (sx/2.0)-numpy.sqrt((sx/2.0)**2+(txy)**2) # Principal Compressive stress on the cross section\n", + "tmax = numpy.sqrt((sx/2)**2+(txy)**2) # Maximum shear stress on the cross section\n", + "plot(sx,y,'o',color='c')\n", + "plot(txy,y,'+',color='m')\n", + "plot(s1,y,'--',color='y')\n", + "plot(s2,y,'<',color='k')\n", + "plot(tmax,y,label=\"Maximum shear stress on cross section\")\n", + "legend()\n", + "show()\n", + "#print \"Principal Tesile stress on the cross section\", s1, \"psi\"\n", + "#print \"Principal Compressive stress on the cross section\", s2, \"psi\"\n", + "\n", + "# Conclusions \n", + "s1_max = 14400.0 # Maximum tensile stress in Psi\n", + "txy_max = 900.0 # Maximum shear stress in Psi\n", + "t_max = 14400.0/2.0 # Largest shear stress at 45 degree plane" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['power', 'random', 'fft', 'load', 'save', 'linalg', 'info']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nGzaMJk2aMH/+fDIyMnBzc9O/9+zZs9x99900a9aM9u3b8+GHH+r3mZCQwP3338/48ePx9fWlc+fO\n/GajGzQrUVZmg0NUq6ysTN0yaJCiY0eFl5cCtP9FR6tuDz6oBk6erO6YMkXdMmiQujM+vtL7HeEc\nqhIWFqa+/vprdfPNN6uDBw+qkpISFRISok6cOKE0Go06ceKEUkqp5ORk9fvvvyullNq7d68KDAxU\niYmJ+v088MADasKECerixYuqdevWauPGjfrXNBqNSk9PV0opNX78eNW8eXOVkpKiCgoKVL9+/VTb\ntm3Vp59+qsrKytTMmTNV3759jb5XKaUmTJigXnzxRaWUUt98841q0KCB+uc//6lKSkrUkiVLVLNm\nzdTYsWNVXl6e2r9/v2rYsKHKyMgweu5BQUHqhx9+UEoplZ2drVJSUsrtd9asWaqkpERt2rRJ+fj4\nqOzsbKWUUtOmTVP33HOPunLlisrNzVXDhg1TM2bMUEopdenSJfXf//5X5efnq9zcXDVq1Cg1fPhw\n/TH79Omj2rZtqw4cOKBKS0tVcXFxuTGlpaWpNm3aqMzMTKWUUidOnNCff0JCgho3bly57SvuLzs7\nW4WEhKjly5er0tJStXv3btW8eXN18OBBk+f83HPPqSeeeEKVlJSokpIS/TYVXbp0Sfn7+6sVK1ao\n0tJStWrVKhUQEKAuX76sH09ERIQ6cuSIys/PV3Fxceq5554zuq8dO3YoPz8/9fXXXyullDpz5oxK\nS0szel5ZWVlVHjcvL0/5+vqqw4cPK6WUysrKUvv371dKKTV69Gg1d+5cpZRShYWF6scffzQ6lvff\nf18NGzZM5efnq7KyMpWSkqKuXr2qlFJq+PDh6oknnlDXr19X58+fV7fffrtavHixUkqp//znPyo4\nOFjt2rVLKaXU0aNH9f9mwsLC1Pbt2/XHOH78uNJoNKq0tFQppVTv3r3VU089pQoLC1Vqaqpq0aKF\nSkpKUkopNWvWLOXt7a02b96sysrK1IwZM1SPHj2Mjr2q+cVS8069mOSVUuqr7dtVu4kTFQkJ+sne\no2VLFXjPPeWe8w4KUl8Z/GCVqv4cwDL/1YVukn/llVfUjBkz1ObNm9XAgQNVSUlJuUm+oqlTp6q/\n/e1v+sfZ2dkqNDRUdenSRT3xxBPltjWcqCdMmKAee+wx/Wtvv/22ioqK0j/eu3ev8vf3N/pe3ftn\nzpyplNJOxg0bNlRlZWVKKaWuXr2qNBqN2rlzp377W2+9tdz/jAyFhoaqxYsXq5ycnHLP6/ar+8eo\nlFItW7ZUO3bsUGVlZapRo0blxvTTTz+pm266yegxdu/erQICAvSP4+Li1KxZs4xuq5RSR44cUS1b\ntlRff/21KioqKvfarFmz1IMPPljuuYr7W716terdu3e5bR577DE1e/Zsk+f80ksvqXvuuUcdPXq0\nyrEppdQnn3yiYmNjyz33pz/9SS1fvlw/njlz5uhfe/fdd9Vdd91ldF+PPfaY+vvf/270tYrnZeq4\n165dU/7+/mrdunXq+vXr5bZ56KGH1GOPPaZOnz5t8ryWLl2qevbsqfbu3Vvu+aysLOXl5aXy8/P1\nz3322Wf6C5GBAweqt956y+g+TU3yJ0+eVO7u7iovL0//+owZM9SECROUUtqf9YABA/Sv6S5YjLH2\nJO+ScY0xQ/r1462xY4m/coU7Bgzglv798VKKc4cPm53TW2qaryuNRsO4ceNYuXKl0agGYMeOHfTt\n25eWLVvi7+/P4sWLy/0Z7ufnx3333cfvv//OM888Y/J4LVu21H/t7e1d7nHDhg3Jy8ur8dibNWum\n/+ygYcOGAAQGBpbb37Vr14y+d926dWzatImwsDDi4uL45Zdfyu3Xze2PX28fHx/y8vK4cOEC169f\n59ZbbyUgIICAgAAGDRrExYsXAe2axY8//jhhYWH4+fnRp08fcnJyyn0/27RpU+X5REREsHDhQhIS\nEggMDGTMmDFkZmaa/B4Y7u/EiRPs2LFDP7aAgAA+++wzzt3ovFrVOU+fPp2IiAgGDhxIeHg4r732\nmtFjnT17ltDQ0HLPtW3blrNnz+ofBxk0rDH18zx9+jTh4eE1Oi9Tx/Xx8WHNmjW8//77tG7dmqFD\nh3Lo0CEA/vWvf6GU4vbbb6dz584sW7bM6LHGjRtHfHw8o0ePJjg4mGeffZaSkhJOnDhBcXExrVq1\n0n8/n3jiCS5cuFCjc6jK2bNnadq0KY0aNdI/FxoaWi7aM/w99vHxoaCgoFxMZCv1ZpIH7US/ZeFC\nkhcu5NbAQPKzs/WTuyFnzOlDQ0Np164dmzdvZsSIEZVeHzt2LMOHD+f06dNkZ2fzxBNPlPuFS01N\nZdmyZYwdO5bJkydbbFw+Pj5cNyhlzczMtNgHwrfddhuJiYlcuHCB4cOHc//991f7nubNm9OwYUMO\nHDjAlStXuHLlCtnZ2Vy9ehWABQsWcPjwYXbu3ElOTg7ffvttpQ8Oqxv/mDFj+P777zlx4gQajYZn\nn33W5PsMnw8NDaVPnz76sV25coXc3Fzeeecdk+fcuHFj5s+fT3p6Ohs2bOCNN94oVxmiExwczIkT\nJ8o9d+LECYKDg6v71lXSpk0bjh49WuXrhudV3XEHDhzI1q1bycrKIjIykr/+9a+AdqL84IMPOHPm\nDIsXL+bJJ58s9xmPToMGDXjppZfYv38/P/30E1999RWffPIJoaGh+uoz3fczJyeHffv2VXsOpn7O\nrVu35vLly+X+B3jy5ElCQkKqfI+91KtJXkej0fDRRx/R6c47K5VZAuReukT8lCn0mTqV6MGD7TTK\n2vvoo49ISkrSXxEbysvLIyAgAE9PT3bu3Mlnn32m/yXWfWg1b948li5dypkzZ3jvvfeMHqPiXwjV\niYmJYeXKlZSWlrJlyxa+++672p+YEcXFxaxcuZKcnBzc3d1p0qQJ7u7u1b7Pzc2Nv/71r0ybNk1/\nNXfmzBn9B4Z5eXk0bNgQPz8/Ll++XO4Dah1T34PDhw+TlJREYWEhXl5eeHt768cVFBRERkZGpfcb\nPh46dCiHDx9mxYoVFBcXU1xczK+//kpaWprJc/7qq684evQoSil8fX1xd3c3+v0YPHgwhw8fZtWq\nVZSUlLBmzRrS0tIYOnRojc7P0MSJE1m2bBlJSUmUlZVx5swZ/RV4xf2YOu758+dZv349165dw8PD\ng0aNGunH/vnnn3P6xg2M/v7+aDSacn+h6SQnJ7Nv3z5KS0tp0qQJHh4euLu7ExQUxMCBA/n73/9O\nbm4uZWVlpKen638PH330UebPn09KSgpKKY4ePaovOw4MDCQ9Pd3oubdp04aePXsyY8YMCgsL2bt3\nL0uXLuXBBx+s0ffOlurlJA/aiX7u//0f7Xr2/KPM0ssLj8xMzuTmlqundxbt2rWjW7du+seGVyLv\nvvsuL730Er6+vvzzn/8sd9U7Y8YM2rZty+OPP46npycrVqxg5syZ+l9ww/1oNBqTjytuv2jRIr78\n8kt97HDvvfdWua2xx6asWLGCm266CT8/Pz744ANWrlxZo/289tprRERE0KNHD/z8/BgwYACHDx8G\nYNq0aeTn59O8eXN69uzJoEGDajXGwsJCZsyYQYsWLWjVqhUXL15k3rx5AIwaNQrQRkm33Xab0f01\nbtyYrVu3snr1aoKDg2nVqhUzZsygqKjI5DkfPXqUAQMG0KRJE3r27MlTTz1Fnz59Ko2vadOmfPXV\nVyxYsIDmzZszf/58vvrqK5o2bWp0PMZ+vjrdu3dn2bJl/O1vf8Pf35+4uLhy92UYvs/UccvKynjz\nzTcJDg6mWbNmfP/99/qLjF27dtGjRw+aNGnCPffcw1tvvWX0no2srCxGjRqFn58fUVFRxMXF6e9J\n+OSTTygqKiIqKoqmTZsyatQosrKyALjvvvt44YUXGDt2LL6+vowYMULfcXbGjBm88sorBAQE8MYb\nb1Q6p1WrVpGRkUHr1q0ZMWIEL7/8Mv1urH9R3b8LW3K5O15rS9cSIV8pso8e5divv5LXvHm5dghg\nmQV1hRCiImlrYCNKKSZOnMgnK1ZQWlxs9HUhhLA0meRtSClFzJAh7M3IkCt5IYRNSO8aG6oqpxdC\nCGclV/JGVMzpD27bRrGRCEcIIcwly//ZkcmcPjqaLjExtPL1rXXrYuEYCgpOcujQo0RHbzX6enZy\ntn5x74zZGQSND8I7zBv/OH/84/xtOdQ6O30aYmJgxw6owz0/wo5k+T8b0NXT/5aVZTSnP3LqFPvu\nuEO/9KB3QAAbk5IYcqOMSjg2d/dG5ObuqvJ1Y5N5WEKYlUdlWc88A08+KRN8fSaZfDWqzOnT0ylI\nT3e51sX1SYMG/pSW5qJUib2HYhXbt8POnfDcc/YeibAnuZKvAd2V+dsbNnD9zjv5/YsvuHLmDBjp\n6eGMLRHqK43GnQYN/CkuvoynZ0uj2+gim4KMArI+ztI/7+iRTXExTJ4Mb74JPj72Ho2wJ8nk66DK\nUsvoaLp16UIzf3/OHDtG9vHjfPDvf0t848B27uxEp05raNSoc7XbZiRkOPzkrrNwIWzZAps3g6wd\n45ykhNKOqmyJcPYs6YcOsW37dg5s385ZT0+mrlrl9EsMujJPz5YUFZ2v8fa6D2Id2blzMGeOdqKX\nCV7IJF9Hhq2Le995J22joijLySFn795ynS3TH3hAcnoHFhn5Cb6+PWq0rTNcwQM8/zyMHw+RkfYe\niXAEZmXyp06d4qGHHuL8+fNoNBoee+wxpkyZYqmxObwh/foxuG9fJk6cSOrRo5TeaCJVkeT0jsvb\nu+re8DoVSyl1HDG62bULNm2CtDR7j0Q4CrMy+aysLLKysoiJiSEvL49bb72VxMREOnbs+McBXDCT\nr0gpxbp163j06afJyc4ul9GzcCHdPvpIcnoX4ci5vFLQqxc88ghMnGjv0QhzOUSdfFBQkH4VmcaN\nG9OxY0fOnj1bbpKvDzQaDffddx/eAQE8Oncu5zIztR/IAoEffED60aOk5OVpn4uMZOqqVQAy0Tup\n7ORsh5zkV6+G/HyYMMHeIxGOxGIllBkZGezevZvY2FhL7dLpDO3fn480Gt5av55TR4+StXcvuf/7\nH9evXSt3E1X6Aw/wdmKiTPJOyD/O3yE/fL1+HZ59FlauhBqsnSLqEYtM8nl5edx3330sWrSIxo0b\nV3o9ISFB/3VcXBxxcXGWOKxDMszp1+bkcD031+h2ktM7F0fP5d94A2JjoXdve49E1FVycjLJyckW\n36/ZdfLFxcUMHTqUQYMGMW3atMoHqAeZvDGS0zuH0tJ8du3qwu23H6nxyj2OlstnZkKXLtq7W9u1\ns/dohKU4RCava+AVFRVldIKvzySndw7u7g0pLr5ISUk2Hh4BNX6fI+XyM2dqP2iVCV4YY9Yk/+OP\nP7JixQpuueUWunbtCsC8efO46667LDI4VyA5vePz8gqhsPBkjSd5R8rl9+yBjRvBYP1sIcoxa5Lv\n1asXZWVllhqLy6ppTn/myhWiBw/m3IkTRPfvz5Thw2XStwEvr7YUFJygceNok9tVzOULMgrs3np4\n+nR48UXw87PL4YUTkAZlNqJrWzx48ODKOT3At9+yPzERVVgIkZFsHTGC9JUrAYlwrM3bO4yCghPV\nbudorYf/9z84cQIee8xuQxBOQNoa2JAup1+xciWBf/6ztueNhwccPgwvv4y6erVyhCMtEazO27st\nBQUZ9h5GrZSWaq/iX3tN+yskRFXkSt4Ohvbvz4fA45Mnk1laijKxtKCUWlpfcPCTaDQ1+6fgKK2H\nV6wAX1+45x6bHVI4KWk1bEe6Msv58+fz62+/UVZyY/GKG2WWAF0//JDSy5clp3dA9iqlLCiAm2+G\nVaugZ0+bHlrYkLQadgG6+Obnn3/mHy+8gFeLFtpVpwCUwu/FF/l90yb2JiVxzsODrSNGSOtiB2OP\nKpt33oFu3WSCFzUjV/IO5Kvt23nhjTc4sXcvlJSQe+ECZaWl2hcNru7jExPZcuNrYT+66MaWH75m\nZ0OHDvDtt9qPdITrcoiboYRlDenXj/+uXMnxnBxyqyizBMnp7c2eLQ5efx2GDZMJXtScTPIOxLDM\nslJOr6MUJ1NSCI6Kov3AgXiVlUlObyFKlaLRVN/dq+Jkbqtc/tw5eP992L3b6ocSLkQyeQdjMqf/\n9ls8Ro3i+E8/cdbTk2+HD5ec3kJOnnyd48dn1um9tsrl58yBceMgNNQmhxMuQiZ5B6XRaJiXkMDn\nn31G26goGhw6hNsrr1B86ZK2SNqA1NObz9u7Ldev1743gK0qa06c0LYRfv55mxxOuBCJaxyYUoov\nPvuMy0ePUlJgIolXioOpqRLhmKFRoyiuXz9Y4+1t3eLglVfgiSegZUuL71q4OJnkHVjFjH7fvn1c\nv379jw2Ugu++gzVrOHnoEHTpwtnhwwGkJUItNWzYnoKCDMrKinBz86x2e1u2OEhPhy++0N4YLURt\nSVzj4Awz+o8//pibO3ZE06CBtpbuqadg3jw4eBAqNIqTCKd23Ny88PZuS37+EXsPpZKXX4bJk6Fp\nU3uPRDgjuZJ3ErrJfsSIEcTceiv79uzRXsmbIKWWtdOoUTQFBRk0atSpRtvbosXBkSOwaRMcPWqR\n3Yl6SCZ5J+Pm5saelBR9O4RKEQ7oY5x9X35JfFkZhW5uktPXQFTU6hqvDgXlJ3Nr5fGvvAJTpkgr\nYVF3Msk7Id1V/ciRI1m3bh0zX3qJw0eOoEB7K+SaNXD4MLn+/mwdMUL/PsnpTavNBG+MpVeLOnpU\nuyCIXMULc0gm78R0k/2B33/nnnvvxeNGmSUHD0JpKcUhIeW2l5zeeqxRUTNnDjz9NPg7xiqDwknJ\nlbyTU0rx6KOPsn3LFopNlVneIDm9ZVmrxUFGBmzYIFfxwnzSoMwFGLYsLpfR65qa6Uotf/mFbs2b\n0zwgQHJ6K7Bk6+GnnoImTeDVVy0wMOGUpEGZ0KuY0c+fP5/U1FQ0585RoMvojx3Dw8+Psz17kjJx\nov69ktOXV1JylZKSbLy969Y7wBK5fGamtlf8wZrfmyVElSSTdyG6yf6nn37i6aefxjM//4+MvrAQ\nL6XImjq13Hskpy/v4sVE0tOn1+m9lsrl33wTHnwQAgMtsjtRz8mVvIvRZfRr166t1K7Y3dP4nZyS\n0/+hSZPuZGQk1Oo9lszlc3Lgo48gJaVWbxOiSjLJuxhTrRD0f7YZZPQ8+yy5ly4RP2WK5PSAj8/N\nlJRcpqjoAp6eLWr0HsPJvCCjwKz2BosXw6BB0LZtnXchRDnywasLq/iBbLuICC40b865zEw4dgwi\nIwnq1AmuXy8X44SvXMmiMWPq7US/Z88AQkKm0qzZ0Fq/NzUulZjkmDodt7AQ2rXT3uEaHV2nXQgX\nImu8imoZZvSTJk3iXGYm2T/+qM/oAy5epFVJieT0Ffj69iAn5+c6vdc7zLvOx121Cjp1kgleWJbE\nNS7OVEZ/S0QEtGql27BchHM2O7veRjgBAQPIyfm+xtsbZvK6Hja1bXOglPYD13/9q/bjFcIUmeRd\nXHXtij1LS/9ohXAjwgE4evo0+2b+sVJSfSq19Pe/A3//O2q+vQXaDn/zDRQXw8CBtXqbENWSTL4e\nqZjRh4WFUaqUtu+Nbi3Z6GgahoWR37dvpdwgPjGRLQsX2mHkziMjIQOo/SR/990wdCg89pjlxySc\nk9wMJWrNsF1x//79+eGHHyipsFB4wMWLtI6MZL+RYFhKLatmTtvhY8fgp59g9Wprj1LUR2ZP8o88\n8ggbN26kZcuW7Nu3zxJjElbm5uZGUlKS0VYIt0RE4NWyJfsrZPSAlFqaYE7b4ffegwkTwMfHigMU\n9ZbZ1TUPP/wwW7ZsscRYhA1VXHEqNjYWnxuzTLemTfEaPVq76lRmJgBBS5ZwNi+PrSNG8O3w4Wwd\nMYKpq1axMSnJnqfhsHQfxFYnPx+WL4dJk6w7HlF/mT3J9+7dm4CAAEuMRdhBxTLLAwcO8Nbrr1N4\n/jwUFuJ38SLxiYn1stTywoW1XLv2e63fV5u7XP/zH+jeHcLDa30YIWrEJpl8QkKC/uu4uDji4uJs\ncVhRQ6bKLGMiItiycCFx06YZfa8r5/S5ubvIy9vDTTd1rtH2dWlvsHgxPPec2UMVLiA5OZnk5GSL\n79ci1TUZGRkMGzbMaCYv1TXOoap2xX369CE5OZmBkyezrXnzchk9QLePPnLZ1sXZ2d+Snv5/3Hrr\nr7V+b9qENCKXR5rcZv9+GDAATp6EBlICISqQ6hphUcbaFev+p7127VpObt+O5sgRVKc/FrkOWrKE\ns9evu2zrYl/fnuTnH6Go6Dyeni1r9d6CjOr/xvnwQ3j4YZnghXVJWwNRjrGMfvz48Rw6eBBVUkLA\nxYv0SUysFzm9m5sH/v79uHz5f7V+b3XtDQoLYcUKeOSRuo5OiJox+xpizJgxfPvtt1y6dIk2bdrw\n8ssv8/DDD1tibMJOqmuF8M2bb7Ju3TqenjXL6PtdqSVCs2bDuHRpA0FB46rdtjbtDTZtgqgo+cBV\nWJ/Zk/yqVassMQ7hQEy1Qrhw4QI9e/Zk7969eFWxwrQrtURo3nw4Pj7ta7RtbdobfPopPPSQuaMT\nonoS1wg0Zcj4AAAgAElEQVSjKtbRt2/fHjc3N9LS0vjll1+4fv06IS1aEH5jAtdpuHAh+cOGlXvO\nmSMcD48A/Px6WXSfly7B9u1w330W3a0QRslHPqJamzZtIjMzk7KysnLPN/X3Z96YMbydmEgB4A2c\n9vau1y0RatLeYO1aiI8HPz97jVLUJ9KgTFSruvJK3eubNm3iTOPGbB0xotI+XLnUsipVlVH27w9P\nPQVGvk1C6MmiIcJmTLVAWLt2LT179mT8+PEcO3aMKcOHV4pw6mtLBGNllOfPw2+/aZf4E8IW5Epe\n1FpZWRn/+Mc/+OSTT7h27VqlK/uNSUm8vWGDPsI5n5nJbiPNWZytdXFJyVUaNPCt8fbGruQXL4bk\nZO0qUEKYIjdDCbswVV6pM6Rfv3JRjCu0RCguvsKOHRH86U8ncXdvVOV2FcsodfXyukz+iy/g0Udt\nMmQhAJnkRS1Vt9IUUC6jX7p0KV4VPrDVcabWxdoqmz9x4cI6goKqrn00/IC1IKOgXAllbq62b/x/\n/mPt0QrxB8nkRa3VJqMHXCanDwqaQFbW8hpvXzGT//pr6NEDfGue+AhhNsnkhdmqy+gBl8jpy8oK\n+fnnYLp1+5WGDW+qdvuKmfwjj0DXrjB5sjVHKVyFZPLCIdQkowfXyOnd3LwIDBxHZuYS2rWba3Sb\nqjJ5vz7+bN3qL22Fhc3JJC/MUl1GXzGf13HWnL5160lcuPB5la9XbG2ge3zoEGg00L5mHRKEsBjJ\n5IXZqsrodX1uDPN5HWfN6X18OtC27Qs13l53Vb99u/YmKI3GWiMTwji5khcWo9FoGDlyJEopXnjh\nBQ4dOkRpaanRbXVX54YtEc6XlLDbWOvixESHupqvKf84f/0k/803cPfddh6QqJdkkhcWo5Ri4sSJ\nJvP5ivFNTXJ6Z2tdXHEZQKXguy0hvHDvdUBKa4RtySQvLKa6fH7t2rUsWLCAvXv30r1790rvryqn\nd7bWxYa5fHZyNu4Tw+B9iB4jE7ywPcnkhUUZy+e9vLxISUlh/Pjx+jbFxhjL6R29dXFZWVG12/z8\ns7Y+XvJ4YQ9yJS+sQpfPb9y4kT179pgsr9QxltM7cuviM2feIy9vNzff/EG55w3jmuxvs9lelEOH\nhmVkJ2sqLSoihLXJzVDCqky1Kf7mm2+Mllcaip8yxWFbFxcXX2LHjg7cdlsK3t5tjW6TNiGNqZmR\nTJ4MQ4fadHjCyUmrYeEU6lJeaciRSy09PJrRuvXjnDw5r8ptCjIK2LcPunSx4cCEMCBxjbCJ2pRX\nGnL0Uss2bf7Ojh03Exo6w+jVfEGQD9d2Q2ioTYclhJ5M8sImalJeWRVHbong4dGc4OAnyciYRWTk\ncqB8Jr9rTR43BRdyYnam0YW+hbA2meSFTdS1/YExjtYSoU2b6eW6U5ZrN5zkSWRrr3Ith4WwJZnk\nhc3o8vmRI0eW+zBWl89XVT9f0ZThw0lfuZL0Bx7QPxe0ZAlnr18nZeJE/XO2qqdv0MCXkJApRl/L\nOKXhpj9b9fBCmCSTvLC5uubzOo6e0xs659GQLmF2O7wQMskL26sun69JdFPTnN4eLREMM/mzRxrj\nnnyOjMx8yeSFXcgkL2zOVD5f2+hGx5FaIhhO5nlvXiNqciPCelrtcEKYJHXywi4q1s+3b98eNzc3\n0tLSTLY+qIojtUQ4f/5zCgtPA5Bd7E6zZlY9nBAmyZW8sLtNmzaRmZlJWRVX4zXhSC0RLh3YScaF\npbTc/x7Z+cHkfXiSjEZlEtcIuzC7rcGWLVuYNm0apaWlPProozz77LPlDyBtDUQ1TLU+ePrpp2tU\nVmmMvVoilJUV8Ouv0bRrN5e2re/l/BU3Gje22O5FPWGpudOsSb60tJSbb76Zr7/+muDgYLp3786q\nVavo2LGjxQcqXJ/hZJ+amoqnpyelpaV0795dvyB4bWxMSmLqqlWVSi25fp0sg0qc8JUrWTRmjEUn\n+pycH9i//3769DrN9UI3PDwstmtRTzjEQt47d+4kIiKCsLAwAEaPHs369evLTfJC1IVSqtZ3xlZk\nz1JLP79eNGs2klKggYSiwo7M+vU7c+YMbdq00T8OCQlhx44dlbZLSEjQfx0XF0dcXJw5hxUuyJy2\nB6bYoyWCroRSw+NoUBx/5XfcShtLJi9MSk5OrtNfrNUxa5LX1HAVBMNJXghjLNn2wBRbtETQTeZK\ngZqtaPt8Z9zd6zxkUU9UvACePXu2RfZr1iQfHBzMqVOn9I9PnTpFSEiI2YMS9ZOl2h6YYsuWCBoN\neLopioo0NGxY9zELYQ6zJvnbbruNI0eOkJGRQevWrVmzZg2rVq2y1NhEPWVu2wNTbJ3Te7grCguR\nSV7YjVmTfIMGDfj3v/9NfHw8paWlTJw4UT50FWazVj6vY+2c3rCtgU9xEL8nnCXEv1QyeWEXsvyf\ncEjWqp03xpr19FHNClixzZtu3UCpUo4ff5HQ0Bk0aNDEImMXrkuW/xMuzdiygV5eXqSkpFS7ZGBt\nWXOJQT9VxMWL2q81GneKiy9y+PBjcuEjbEYqeIXTsETtvDHWzOmb+SvOn//jcUTEInbv/hNnz75L\ncPBTFhi9EKbJJC8cVnXZ/Nq1ay0W21iydbFhJu973I09y8rodTRHn8l36rSOlJSeNGrUBX//O8we\nuxCmyCQvHJap2vndu3czfvx4s0sqq2JO62LDD1jbfXaKc+0CCEsI0L/esGE4HTt+woEDo7n11p14\neUnZsbAeyeSFQ9Nl8z/99BOTJk2i8Y1OX1evXq11O+LasFTr4tbeRRw/Xvn5pk3j6dBhMQ0aBFR+\nUQgLkit54fCUUjz66KOsXbuWvLw8mxzTnNbFhnGN376LpPm1JSPhdKUSyubNhyGEtUkJpXAKtiyp\nrEpdSi33P5TG7esiycwEX1+rDk+4GCmhFPWKLUsqq1KXUsvikwVERcHvv1t9eEIYJXGNcFrWKqms\nSl1KLb3DvOniBvv2Qc9q1nktLb1Gfn46jRvfYp0TEPWSTPLCaVi73UFN1KTUMjoVevwSSUZCBlkf\nZ9H2rhYkf+DJX24uNdnWIDc3hf377yMm5hsaNYqyyvhF/SNxjXAaupLKpUuXEhsbi4+Pj/61Cxcu\n8Mgjj9h8TMZKLffEwJftf+Txy2+Q2vEkm32X8csVTbV9a/z9exMe/jp79w6isPCMtYYs6hmZ5IVT\nqZjNt2/fHjc3N9LS0mySy1dUXU6PZyg7Hu3OiVMN+PzLb6vdX1DQQwQHP8nevYMoKcm21rBFPSJx\njXA6ukqbBQsWcPr0acqquHHJFqrL6bOCAA+FiizkX8v2M2pYn2r32abNPygsPMO+ffdwyy1bcHeX\nPsWi7mSSF07FEXL5iirm9BPue4Vblmu/vut/2ok+RZNN4YGafaCq0WiIiFjI2bPvo9HIP1FhHolr\nhFMxlcuDtp+NPbJ5Q5mtz/PxBEiNgeXj4eMJsG/CFdIvBRE/ZQpx06YRP2WKyY6WGo0bwcFP4ubm\nYbNxC9ckN0MJp2V4g1Rqaiqenp6UlpbSvXt3qyyIXFMbk5KYumoVvYq1Swx+PAEC31/O+XXvob7Y\nBY21q1yFr1zJojFjzF59SrgmuRlKCAO6mnlr9rOpqSH9+rFozBgi0tIg7wfiExNprfJR0fmQ+kev\nmur63ghhCRL4CadkKpvXlVNau82BMbq+NZ1oR6Mdbjx4VxgACadXsLvHZfilKfS6qN++AO2V/1uJ\nidWuQFVSksP58/+hdeu/2uhshCuQSV44JVNtiNPS0mjRooVdxmXYhCw7OZuwhDAAMqech9hLsKoN\nlKH/Gzr30iWmrlpF+gMP6PdhrH0xQFlZEadPL6SoKIuwsBetfi7CNUhcI5yWRqNh5MiRPPPMMwQH\nB+Pmpv11tmdJZVWmDB9OePKH0LgEDmvXdw1fsQJVVFRugoeqYxxPzxbExGzn3LkVnDz5mk3GLZyf\nXMkLp+WI5ZSGbYazv80mIyEDgD/HdWPRGJi8+xdKl5bSsecmJo8dy+tVZPIV2xfreHoGEROTRGpq\nH0BDaOg/LH8SwqVIdY1wao7QgrgqaRPSiFweWe65Xbtg7Fg4dAg0mrq1LwYoLDxNamo/wsMXSF96\nF2WpuVMmeeESHLGcMjUulZjkmArjhHbt4IsvICbmj3JLw8gmaMkSuH6dLIPulsbKLYuKLuDh0RSN\nxt36JyNszlJzp8Q1wuXYugVxVbzDvCs9p9HA/ffDf/6jneTr0r5Yx9PTPh8uC+cik7xweo6UzRtm\n8lkfZ+knesOqm9GjYcQIeOUVcHOrWftiqDqnF8IUmeSF0zNVTmnrmnndZJ6dnE0YYfoSSkMxMdCo\nEfzwA9xxR+V9GGtfDNpyy/gpU0zW05eU5OLu3hiNRmOJ0xEuQEoohUtwtBbEuqt5YzQaeOgh+PRT\n46/XZZlBnfT0Zzhy5EmUcrwyUmEfciUvXIYjtSAGTC4S8sAD0KULvPUWNKzQSdicnD48fD779g0l\nLe1hIiM/ki6Wou7VNZ9//jkJCQmkpaXx66+/0q1bN+MHkOoaYQOmcvmoqChiY2OtHtkY5vEZszMI\nmxUGlM/jDQ0apC2nHDeu+n3HTZvGt8OHV3q+y/LltPL1LRfh3NWnB/v3j8DNrSFRUatwc6v8AbBw\nfHavrunSpQtffPEFjz/+uNmDEMJcjtDmoKqWBlX5619h0aKaTfJV5fRHT59m38yZ+sfpK1eyCBgU\nt4GDBx9k376hdO78pSw8Uo/VOZOPjIykQ4cOlhyLEGZxpjYHAEOHam+KOny4+m2N5fQNFy4kf1j5\nG6F0LRHc3DyJilpFYOCDuLl5WXLYwsnYJLBLSEjQfx0XF0dcXJwtDivqGXuXUlbV0qCquMbTE8aP\nhw8+gPnzTe/bWE5/2tub/dHRlbbVlVpqNO4EBU2o28kIm0tOTrbKjXsmM/kBAwaQlZVV6fm5c+cy\n7MYVRN++fVmwYIFk8sIhVNXmwFa5PPwx2VcX1wAcOwaxsXDyZOUPYKtT15YIwjnYJJPftm2b2QcQ\nwpZ0pZQjR45k3bp1PP/886Snp9u0/bCp8smK2rWD22+H1avh4Ydrd5wpw4eTvnJlpZYIZ69fJ2Xi\nRP1zFVsXK6Wkjr4esUhcI1fqwpE4QimlqfLJip58EmbNggkTtDX0NVWXUkulytizZwBt284kIKBv\nzQ8mnFadJ/kvvviCKVOmcPHiRYYMGULXrl3ZvHmzJccmRK3ZK5evVD5JGNnJ2VXm8YbuugumTIGf\nf4aePWt33Nq2RNBo3GjbdiYHDvyF9u3/TcuW99fugMLpSBdK4XLsmcvXJo83tGgR/PijtnGZOWqa\n008b3gX/hrNp0+ZZQkImm3dQYRWykLcQVbBni4Pa5PGGHnkEtm+HEyfMO35NWyJMXrWTK/n/4uzZ\ndzh27Dm5EHNhcs+zcEn2zOVrk8frNGmizeT//W94/fW6H7s2Of1biYl8+foPZGVV0URHuASZ5IXL\nsXUub04eb2jKFOjWDWbOBD+/uo+nNjm9h0dz2rT5W90PJhyeZPLCJdkrlze25F9tPPCAthXx9OmW\nG5PU0zsnyeSFMMFeuXxBhnlLe0yfDgsXQmGhhQZE3VoXy4WZ65C4Rrgse+Tyxpb8q42YGOjUCVau\n1H4Yawm1racf3PcOdu/uw003/ZOAALmyd3YS1wiXZCqXDwoKIjMz02LH0mXyBRkFZH2cVW2L4ep8\n8w08/jgcPAjuVlqju7rWxa1anmXUbZto4DmZ+H6vWWcQwiSJa4QwQdd6eOnSpcTGxuLl9Ucnxvz8\nfIseyz/On7CEMLzDvAmbpV3yLywhrE4TPEBcHDRvDuvWWXSY5ZhqXbx1xAg+7vU0T3q/x9Vr77H1\nm/FyoebEZJIX9YIzTVIaDTz/PMydC9Yadk1aF5+kLY83Wc7F7P+RljZelhR0UpLJC5dkKq7x9rbc\nSkkVyyeDxgeRkZBR56hGZ8gQbSnll1/C3XdbarQG+69h6+IrNGXZDyPp96ceaDRyTeiMJJMXLsuW\nZZR1bWdgyrp1MG8e/Ppr7RqX1ZWUWjoWyeSFqIYtyyjr2s7AlHvv1ZZSbtpk8V0bVZdSS+H4JK4R\nLs2WZZTmxDPGuLnBSy/B7NkweLD1r+ZrW2oZf8etNGhgxq25wiZkkhcuy9rtDSzVzsCUkSPh5Ze1\nV/NDhlhklybVvCWCYt++Yfj7xxEWliB5vQOTn4xwWRXLKH18fPSvXbhwgUfMvNtIVzrpH+dvkdJJ\nY9zctFfyL71kvUobU6oqtcy9dJmXP+vA9ykf8v7Km9mYZKNMSdSaTPLCpdkil7dGHm/o3nu1E3xi\nolUPY5SpnD5xyIM82mw5p0PCOH95ApuSPrf9AEW1JK4RLs8Wubyl83hDGo32av755+Gee7RX97ZS\nXU5fjCdzeZ4Hm6/gvusTKSm5iwYNmthugKJaUkIpXJq12htYupVBdZTSLg04eTKMHWvx3ddKVS0R\n7vxiIW4qVEotLcRSc6dcyQuXpsvlBw8ezPz580lNTaXwRotHc9ob6CbzjIQMfR5vTRqN9g7Yv/4V\nRo0CDw+rHs6kqnL6H/fnkT/zjzr79Bsxj0z09iWZvKhXnPmvyr594aabwIpL1NZITVoiwI1Syw0b\nbDk0YYRcyQuXZo32BtZqZVATc+dqP4gdNw4MioVsqqYtEQAC/M5RWJiJl1cr2w5S6EkmL1yetdob\nWKOVQU2MGgW33grPPWfTw5pUVUuEqT9Pp190Gqt3DuXS5RaS09eCtDUQooasVUZp7dLJqsyZAwsW\nwOXLdjm8UVWVWq7ZGcJ8n+ncH7eZ4hH+0hLBDiSuEfWCtcoorR3PGNOhA9x3nza6mT/f5oc3ylSp\nZRZwltb8kxfZ/kB/3k5cL1fzNiSTvHB5lmxvYItWBjUxa5Z2mcCnn4awMJsd1iRTLRHSieBJ3mUW\ns8kPqPtC56L2JJMX9UJVuXxda+Xtlccbmj0bDh/WrgfriIzn9IpuHy2V1sU1IJm8ELWgy+V/+ukn\nJk2aROPGjYG618rbK4839MwzkJwMu3bZeyTGGc/pP5TWxTYmcY2oFwwz+b179+qv5M1ZJcoeebyh\nxo0hIQH+7/+0i3/bYmGR2qht62K5mreOOk/y06dP56uvvsLT05Pw8HCWLVuGn5/0lhaOx1QmHxlZ\n83zYUfJ4Qw8/DG+9BevXg5FOA3ZXk9bFndlHfNdtlJbm4+7e0JbDqxfqnMlv27aN/v374+bmxnM3\nCnZfffXVygeQTF44AEtm8o6QxxvauhWeegr27wdPT3uPxjRjOb03+cxNn0Rg03xW7xxK4bVGktPj\nAJn8gAEDcLvRDi82NpbTp0+bPRghrMWSmbwj5PGGBg6E9u3hnXfsPZLqGcvp/Zes4F9fxfBlwHAe\nil/P2RHtJae3IItk8kuXLmXMmDGW2JUQVmHpTN7eeXxF8+dDnz7adgfNm9t7NFWrOqefxmognXBm\nM4sPHniMtxM31PureUswGdcMGDCArKysSs/PnTuXYTeaEc2ZM4eUlBTWrVtn/AAaDbNmzdI/jouL\nIy4uzsxhC1FzpjL5mrY2sHVr4bp4+mltS2JnuKI3VLF1cWvO0IxLsDyFVr6+9abUMjk5meTkZP3j\n2bNnWySuMatOfvny5SxZsoTt27dXeUUkmbxwBFVl8m5ubvTu3bvcPy5TMhIyABwmjzd06RJ07Ajb\nt0OXLvYeTc1V1fem4SuvkD9zpv5x+MqVLBozxqUnekN2z+S3bNnC66+/zvr1680qQxPCFjQaDSNH\njuSZZ54hODhY/3mSNVaJspdmzeDFF+Fvf7PPerB1Ja2LravOmfzkyZMpKipiwIABAPzpT3/i3Xff\ntdjAhLAkc1ob2LO1cG098QS8/752Pdh777X3aGqmpq2L23OYApzo/14OQtoaiHrD3DJKRyudrMrX\nX8Njj2lLKhs6adl5xQinAcW8y5NkHy4j+UA81/B0+Zze7nGNEM7G3DJKRyudrMqdd0LXro7TobIu\nKkY4JXgwZ1k3ilQhdw/fTtrwHtISoYakrYGoNyxRRulo8UxVFizQLiwyfjyEhtp7NLVntNSyAGbe\n/Cmj+Jx3eZJXmMluaYlQLZnkRb1Q19YGjtjKoCbCwmDyZG0Ts88/t/do6sZ4SwQNn3M/R4lgEu/x\nNP+mwH5DdAqSyYt6w5xM3lnyeEP5+dqe84sXw436CKdWMafXUIbCjW4ffeSSrYslkxeilszJ5J0l\njzfUsCEsXKi9Saqw0N6jMV/FnF7hRtCSJdK6uBpyJS/qjaoy+cDAQKN3dhty1JLJ6igFw4ZBr16O\ntfB3XW1MSuLtDRv+yOkzM9k9aZLBFgrQEJ+YyJaFC+0zSAux1Nwpk7yoF+rS2iA7OZus5Vl4h3lr\n83gHbGVQE+npEBsLv/0GbdvaezSWVbElwij+Q1Mu88vHngQ28XfqCMdSc6d88CrqBY1Gw0cffcTg\nwYMrZfJpaWm0aNGi0nv84/zL5fDOlMcbCg+HqVNh2jT44gt7j8ayvCrcsfw/4nmBOUTFHSGh7Udc\noSkA6TdiHmeb6C1BMnlRb9SH1gZVmT5de3PUxo32HollVczpr+LHy4tasdsrlsU8Tmf2AfW7JYJc\nyYt6o6atDSqWTQIUZBToSyedkbc3/Pvf2rYHffuCj4+9R2QZRlsieDVkedDfOMgvzGYWC5nG99xR\nb0stJZMX9UptyiidsWyyOqNHQ7t2MHeuvUdiPYallkFkUogXV2jqdKWWUkIpRB3UpozSGcsmq/Pm\nm7BkiTa6cVWGEU4WrbhC03pdailxjahXatvawFnjmaq0agUJCTBpEiQng5sLXuZVvfrU1HLbpdeT\nlggyyYt6oyatDZy1jUFtPPEEfPIJLFsGEyfaezTWYbwlgpYbpdzDer5iaL3I6SWTF/VKTTN5V8zj\nDe3Zo2118Pvv0LKlvUdjfYY5vTf5PM9cmnGJ/66+GXfPNg6Z00smL0Qd1DSTd8U83lB0NEyYoF1F\nqj4wzOkLaMhLvEzKL948PWwzV0aEuHROL3GNqFdqk8m7SjxTlVmztGvB/u9/EB9v79FYl7GcPiWz\nPTt7TOBF/slmBvEx410yp5dJXtQb1WXy9SGPN9SoEbz3njaj//137WNXZiyn/5ZbeJzFjGSd/nlX\ny+klkxf1SnWZvG5Sz0jIcNk8vqJx47S5/IIF9h6JbVVsXazjKPX0kskLUQfVZfKunsUb8+absHIl\n/PqrvUdiWxVbIgAuWU8vcY2oV2qaybtiPFOV5s21V/ETJ8KuXeDpae8R2UZ19fQBXKYUd6fP6SWu\nEfWGqUy+ReMWfDfyO7I+znLalsLmUAqGDIGePWHmTHuPxn4MWxcP4SseZAUv8xINlu+kla+vTSMc\naTUsRC1VbDecmppK4Y0lk4rci/AO8yZsVli9yeINaTTaZQK7dYMRIyAqyt4jsg/D1sUbGcoVApjD\nC3zeugWrBi4GNIBztS6WTF7UW/IXZnlt2sDLL2tjm9JSe4/GPirm9D/xZ/6+9DZ69yrkZV6iMdq/\nAJ2pdbFM8qLe0MU1jzzyCDt27KCoqEj/mkeJBxmzMyjIKCAjIaNefgAL8Pjj2kz+rbfsPRL7GNKv\nH4vGjCE+MZE+iYnEJybSqKgZU32WcJ6WDGKzfltnKbWUTF7UK6ZKKH9+/Od6GdVUdPQo9OgBv/wC\nERH2Ho39lS+11K4hC9YvtZQSSiHqoDathuuriAh44QVtbFMPFs2qVvkIRzvBO1OppVzJi3qlqhLK\nwMBA0lan1ZtqmuqUlkLv3jB2LDz9tL1HY38bk5J4e8OGP0otMzPZPWkSAJ4UUoQXAPGJiWxZuNAi\nx7T7lfyLL75IdHQ0MTEx9O/fn1OnTpk9GGeUnJxs7yFYlSudn2Em/8svv+gneIAw77BybQ1cgTk/\nO3d3WLpU23v+2DGLDcmibPm7OaRfP7YsXEjywoVsWbgQ31atANBQxjs8xX18DiiHzOnrPMn/4x//\nYM+ePaSmpjJ8+HBmz55tyXE5DVeaBI1xpfPTlVAuXbqU2NhYPNw99K+dKDxBWEKYS13Jm/uzi4yE\nGTPg4YcdM7ax5++mrtRS4cZMXqEv3zCHFyjNO0v8lCnETZtG/JQpDhHf1HmSb9Kkif7rvLw8mjdv\nbpEBCWFNhpl8l1ZdJJOvxrRpUFIC77xj75E4FsOc/hxBTGURl/deYerdX3F2RHuHyunNuhnqhRde\n4NNPP8XHx4dffvnFUmMSwmrKZfJn91JSVgJUvfxffefurl1BqmdPGDwYwsPtPSLHYKwlQlLmLfx4\ny0PMYjZP8i4XaOkQLRFMfvA6YMAAsrKyKj0/d+5chg0bpn/86quvcujQIZYtW1b5ABqNhYYqhBD1\niyU+eLVIdc3JkycZPHgwv//+u9kDEkIIYTl1zuSPHDmi/3r9+vV07drVIgMSQghhOXW+kr/vvvs4\ndOgQ7u7uhIeH895779GyPqwILIQQTqTOV/Jr165l+PDhKKVIT09nzJgx5Wrl582bR/v27YmMjGTr\n1q3653/77Te6dOlC+/btmXqjbzNAYWEhf/nLX2jfvj09evTgxIkTdR2axUyfPp2OHTsSHR3NiBEj\nyMnJ0b/mCuf3+eef06lTJ9zd3UlJSSn3miucnylbtmwhMjKS9u3b89prr9l7ODXyyCOPEBgYSJcu\nXfTPXb58mQEDBtChQwcGDhxIdvYfdf61/Rna26lTp+jbty+dOnWic+fOvHWjgY6rnGNBQQGxsbHE\nxMQQFRXFjBkzABucnzLD1atX9V+/9dZbauLEiUoppfbv36+io6NVUVGROn78uAoPD1dlZWVKKaW6\nd++uduzYoZRSatCgQWrz5s1KKaXeeecdNWnSJKWUUqtXr1Z/+ctfzBmaRWzdulWVlpYqpZR69tln\n1bPPPquUcp3zO3jwoDp06JCKi4tTv/32m/55Vzm/qpSUlKjw8HB1/PhxVVRUpKKjo9WBAwfsPaxq\nfbAuLEcAAARPSURBVPfddyolJUV17txZ/9z06dPVa6+9ppRS6tVXXzXrd9TeMjMz1e7du5VSSuXm\n5qoOHTqoAwcOuNQ5Xrt2TSmlVHFxsYqNjVXff/+91c/PrN41VdXKr1+/njFjxuDh4UFYWBgRERHs\n2LGDzMxMcnNzuf322wF46KGHSExMBGDDhg2MHz8egJEjR7J9+3ZzhmYRAwYMwM1N+y2KjY3l9OnT\ngOucX2RkJB06dKj0vKucX1V27txJREQEYWFheHh4MHr0aNavX2/vYVWrd+/eBAQElHvO8Ps+fvx4\n/c+jLj9DewsKCiImJgaAxo0b07FjR86cOeNS5+jj4wNAUVERpaWlBAQEWP38zG5Q9sILLxAaGsry\n5cv1f36cPXuWkJAQ/TYhISGcOXOm0vPBwcGcOXMGgDNnztCmTRsAGjRogJ+fH5cvXzZ3eBazdOlS\nBg8eDLjm+Rly9fMzHCv8cX7O6Ny5cwQGBgLa/jvnzp0D6vYzdCQZGRns3r2b2NhYlzrHsrIyYmJi\nCAwM1EdT1j6/am+Gqq5Wfs6cOcyZM4dXX32VadOmGa2Vd2Q1uRdgzpw5eHp6MnbsWFsPz2w1vdeh\nPnHVezc0Go1LnFteXh4jR45k0aJF5dICcP5zdHNzIzU1lZycHOLj4/nmm2/KvW6N86t2kt+2bVuN\ndjR27Fj9lW5wcHC5D2FPnz5NSEgIwcHB+sjD8Hnde06ePEnr1q0pKSkhJyeHpk2b1upk6qK681u+\nfDmbNm0qFz+40vkZ40znVxcVz+/UqVPlroycSWBgIFlZWQQFBZGZmamvcKvNzzA4ONjm465KcXEx\nI0eOZNy4cQy/sdaqq50jgJ+fH0OGDOG3336z+vmZFddUVSt/9913s3r1aoqKijh+/DhHjhzh9ttv\nJygoCF9fX3bs2IFSik8//ZR77rlH/56PP/4Y0Fbu9O/f35yhWcSWLVt4/fXXWb9+fbnb3l3l/Awp\ng0paVzw/Q7fddhtHjhwhIyODoqIi1qxZw913323vYdWJ4ff9448/1k+MtfkZ6t5jb+pGl9CoqCim\nTZumf95VzvHixYv6ypn8/Hy2bdtG165drX9+5nxSPHLkSNW5c2cVHR2tRowYoc6dO6d/bc6cOSo8\nPFzdfPPNasuWLfrnd+3apTp37qzCw8PV5MmT9c8XFBSoUaNGqYiICBUbG6uOHz9uztAsIiIiQoWG\nhqqYmBgVExOjrx5RyjXO77///a8KCQlR3t7eKjAwUN11113611zh/EzZtGmT6tChgwoPD1dz5861\n93BqZPTo0apVq1bKw8NDhYSEqKVLl6pLly6p/v37q/bt26sBAwaoK1eu6Lev7c/Q3r7//nul0WhU\ndHS0/t/c5s2bXeYc9+7dq7p27aqio6NVly5d1L/+9S+llLL6+Vl90RAhhBD2I8v/CSGEC5NJXggh\nXJhM8kII4cJkkhdCCBcmk7wQQrgwmeSFEMKF/T+EGvw6HyMN5gAAAABJRU5ErkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x4171710>" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.4, page no. 570" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "maximum tensile stress, maximum compressive stress, and maximum shear stress in the shaft.\n", + "\"\"\"\n", + "\n", + "import math \n", + "\n", + "#initialisation\n", + "d = 0.05 # Diameter of shaft in m\n", + "T = 2400 # Torque transmitted by the shaft in N-m\n", + "P = 125000 # Tensile force\n", + "\n", + "#calculation\n", + "s0 = (4*P)/(math.pi*d**2) # Tensile stress in\n", + "t0 = (16*T)/(math.pi*d**3) # Shear force \n", + "# Stresses along x and y direction\n", + "sx = 0 \n", + "sy = s0 \n", + "txy = -t0 \n", + "s1 = (sx+sy)/2.0 + math.sqrt(((sx-sy)/2.0)**2 + (txy)**2) # Maximum tensile stress \n", + "s2 = (sx+sy)/2.0 - math.sqrt(((sx-sy)/2.0)**2 + (txy)**2) # Maximum compressive stress \n", + "tmax = math.sqrt(((sx-sy)/2)**2 + (txy)**2) # Maximum in plane shear stress \n", + "print \"Maximum tensile stress %e\" %s1, \"Pa\"\n", + "print \"Maximum compressive stress %e\" %s2, \"Pa\"\n", + "print \"Maximum in plane shear stress %e \" %tmax, \"Pa\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum tensile stress 1.346662e+08 Pa\n", + "Maximum compressive stress -7.100421e+07 Pa\n", + "Maximum in plane shear stress 1.028352e+08 Pa\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.5, page no. 573" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "calculate maximum allowable internal pressure\n", + "\"\"\"\n", + "\n", + "import math \n", + "\n", + "\n", + "#initialisation\n", + "P = 12 # Axial load in K\n", + "r = 2.1 # Inner radius of the cylinder in inch\n", + "t = 0.15 # Thickness of the cylinder in inch\n", + "ta = 6500 # Allowable shear stress in Psi\n", + "\n", + "#calculation\n", + "p1 = (ta - 3032)/3.5 # allowable internal pressure\n", + "p2 = (ta + 3032)/3.5 # allowable internal pressure\n", + "p3 = 6500/7.0 # allowable internal pressure\n", + "\n", + "prs_allowable = min(p1,p2,p3) # Minimum pressure would govern the design\n", + "print \"Maximum allowable internal pressure \", round(prs_allowable), \"psi\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum allowable internal pressure 929.0 psi\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.6, page no. 574" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "principal stresses and maximum shear stresses\n", + "\"\"\"\n", + "\n", + "import math \n", + "\n", + "#initialisation\n", + "d1 = 0.18 # Inner diameter of circular pole in m\n", + "d2 = 0.22 # Outer diameter of circular pole in m\n", + "P = 2000 # Pressure of wind in Pa\n", + "b = 1.5 # Distance between centre line of pole and board in m\n", + "h = 6.6 # Distance between centre line of board and bottom of the ploe in m\n", + "\n", + "#calculation\n", + "W = P*(2*1.2) # Force at the midpoint of sign \n", + "V = W # Load\n", + "T = W*b # Torque acting on the pole\n", + "M = W*h # Moment at the bottom of the pole\n", + "I = (math.pi/64.0)*(d2**4-d1**4) # Momet of inertia of cross section of the pole\n", + "sa = (M*d2)/(2*I) # Tensile stress at A \n", + "Ip = (math.pi/32.0)*(d2**4-d1**4) # Polar momet of inertia of cross section of the pole\n", + "t1 = (T*d2)/(2*Ip) # Shear stress at A and B\n", + "r1 = d1/2.0 # Inner radius of circular pole in m\n", + "r2 = d2/2.0 # Outer radius of circular pole in m\n", + "A = math.pi*(r2**2-r1**2) # Area of the cross section\n", + "t2 = ((4*V)/(3*A))*((r2**2 + r1*r2 +r1**2)/(r2**2+r1**2)) # Shear stress at point B \n", + "\n", + "# Principle stresses \n", + "sxa = 0\n", + "sya = sa\n", + "txya = t1\n", + "sxb = 0\n", + "syb = 0\n", + "txyb = t1+t2 \n", + "\n", + "# Stresses at A\n", + "s1a = (sxa+sya)/2.0 + math.sqrt(((sxa-sya)/2)**2 + (txya)**2) # Maximum tensile stress \n", + "s2a = (sxa+sya)/2.0 - math.sqrt(((sxa-sya)/2)**2 + (txya)**2) # Maximum compressive stress \n", + "tmaxa = math.sqrt(((sxa-sya)/2)**2 + (txya)**2) # Maximum in plane shear stress\n", + "\n", + "print \"Maximum tensile stress at point A is\", s1a, \"Pa\"\n", + "print \"Maximum compressive stress at point A is\", s2a, \"Pa\"\n", + "print \"Maximum in plane shear stress at point A is\", tmaxa, \"Pa\"\n", + "\n", + "# Stress at B \n", + "s1b = (sxb+syb)/2.0 + math.sqrt(((sxb-syb)/2)**2 + (txyb)**2) # Maximum tensile stress \n", + "s2b = (sxb+syb)/2.0 - math.sqrt(((sxb-syb)/2)**2 + (txyb)**2) # Maximum compressive stress \n", + "tmaxb = math.sqrt(((sxb-syb)/2.0)**2 + (txyb)**2) # Maximum in plane shear stress \n", + "print \"Maximum tensile stress at point B is\", s1b, \"Pa\"\n", + "print \"Maximum compressive stress at point B is\", s2b, \"Pa\"\n", + "print \"Maximum in plane shear stress at point B is\", tmaxb, \"Pa\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum tensile stress at point A is 55613361.197 Pa\n", + "Maximum compressive stress at point A is -700178.455718 Pa\n", + "Maximum in plane shear stress at point A is 28156769.8263 Pa\n", + "Maximum tensile stress at point B is 6999035.59641 Pa\n", + "Maximum compressive stress at point B is -6999035.59641 Pa\n", + "Maximum in plane shear stress at point B is 6999035.59641 Pa\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.7, page no. 578" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"\n", + "principal stresses and maximum shear stresses at points & at the base of the post\n", + "\"\"\"\n", + "\n", + "import math \n", + "\n", + "#initialisation\n", + "b = 6 # Outer dimension of the pole in inch\n", + "t = 0.5 # thickness of the pole\n", + "P1 = 20*(6.75*24) # Load acting at the midpoint of the platform\n", + "d = 9 # Distance between longitudinal axis of the post and midpoint of platform\n", + "P2 = 800 # Load in lb\n", + "h = 52 # Distance between base and point of action of P2\n", + "\n", + "#calculation\n", + "M1 = P1*d # Moment due to P1\n", + "M2 = P2*h # Moment due to P2\n", + "A = b**2 - (b-2*t)**2 # Area of the cross section\n", + "sp1 = P1/A # Comoressive stress due to P1 at A and B\n", + "I = (1.0/12.0)*(b**4 - (b-2*t)**4) # Moment of inertia of the cross section\n", + "sm1 = (M1*b)/(2*I) # Comoressive stress due to M1 at A and B\n", + "Aweb = (2*t)*(b-(2*t)) # Area of the web\n", + "tp2 = P2/Aweb # Shear stress at point B by lpad P2\n", + "sm2 = (M2*b)/(2*I) # Comoressive stress due to M2 at A \n", + "sa = sp1+sm1+sm2 # Total Compressive stress at point A\n", + "sb = sp1+sm1 # Total compressive at point B \n", + "tb = tp2 # Shear stress at point B\n", + "\n", + "# Principle stresses \n", + "sxa = 0\n", + "sya = -sa\n", + "txya = 0\n", + "sxb = 0\n", + "syb = -sb\n", + "txyb = tp2 \n", + "\n", + "# Stresses at A\n", + "s1a = (sxa+sya)/2 + math.sqrt(((sxa-sya)/2)**2 + (txya)**2) # Maximum tensile stress \n", + "s2a = (sxa+sya)/2 - math.sqrt(((sxa-sya)/2)**2 + (txya)**2) # Maximum compressive stress \n", + "tmaxa = math.sqrt(((sxa-sya)/2)**2 + (txya)**2) # Maximum in plane shear stress\n", + "print \"Maximum tensile stress at point A is\", s1a,\"Psi\"\n", + "print \"Maximum compressive stress at point A is\", round(s2a,2), \"Psi\"\n", + "print \"Maximum in plane shear stress at point A is\", round(tmaxa,2), \"Psi\"\n", + "\n", + "# Stress at B \n", + "s1b = (sxb+syb)/2 + math.sqrt(((sxb-syb)/2)**2 + (txyb)**2) # Maximum tensile stress \n", + "s2b = (sxb+syb)/2 - math.sqrt(((sxb-syb)/2)**2 + (txyb)**2) # Maximum compressive stress \n", + "tmaxb = math.sqrt(((sxb-syb)/2)**2 + (txyb)**2) # Maximum in plane shear stress\n", + "print \"Maximum tensile stress at point B is\", round(s1b,2), \"Psi\"\n", + "print \"Maximum compressive stress at point B is\", round(s2b,2), \"Psi\"\n", + "print \"Maximum in plane shear stress at point B is\", round(tmaxb,2), \"Psi\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum tensile stress at point A is 0.0 Psi\n", + "Maximum compressive stress at point A is -4090.91 Psi\n", + "Maximum in plane shear stress at point A is 2045.45 Psi\n", + "Maximum tensile stress at point B is 13.67 Psi\n", + "Maximum compressive stress at point B is -1872.69 Psi\n", + "Maximum in plane shear stress at point B is 943.18 Psi\n" + ] + } + ], + "prompt_number": 5 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |