summaryrefslogtreecommitdiff
path: root/Solid_Mechanics
diff options
context:
space:
mode:
Diffstat (limited to 'Solid_Mechanics')
-rwxr-xr-xSolid_Mechanics/Chapter10.ipynb381
-rwxr-xr-xSolid_Mechanics/Chapter2.ipynb380
-rwxr-xr-xSolid_Mechanics/Chapter3.ipynb307
-rwxr-xr-xSolid_Mechanics/Chapter4.ipynb242
-rwxr-xr-xSolid_Mechanics/Chapter5.ipynb558
-rwxr-xr-xSolid_Mechanics/Chapter6.ipynb813
-rwxr-xr-xSolid_Mechanics/Chapter7.ipynb798
-rwxr-xr-xSolid_Mechanics/Chapter8.ipynb343
-rwxr-xr-xSolid_Mechanics/Chapter9.ipynb895
-rwxr-xr-xSolid_Mechanics/screenshots/Chapter7.pngbin0 -> 175116 bytes
-rwxr-xr-xSolid_Mechanics/screenshots/Chapter8.pngbin0 -> 193280 bytes
-rwxr-xr-xSolid_Mechanics/screenshots/Chapter9.pngbin0 -> 193280 bytes
12 files changed, 4717 insertions, 0 deletions
diff --git a/Solid_Mechanics/Chapter10.ipynb b/Solid_Mechanics/Chapter10.ipynb
new file mode 100755
index 00000000..cfa3510e
--- /dev/null
+++ b/Solid_Mechanics/Chapter10.ipynb
@@ -0,0 +1,381 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f6a72f4cc57a2a0246e1148374d652bdc5837f696dab36422b01926c78183403"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Introduction To Energy Methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate lift using Energy method\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "L=6000. ##cm\n",
+ "L1=150. ##cm\n",
+ "T=90. ##W\n",
+ "Ip=math.pi*10**4./32.\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "G=E/2.5\n",
+ "A=3. ##cm^2\n",
+ "delta=0.5\n",
+ "##calculations\n",
+ "U=L/(2.*E*A)+(T*T*L1/(2.*G*Ip))\n",
+ "## U=0.5*W*delta\n",
+ "W=0.25/U\n",
+ "##results\n",
+ "print'%s %.2f %s'%('W = ',W,' kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "W = 196.31 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find deflection under a load of one tonne at end\n",
+ "##initialization of variabes\n",
+ "import math\n",
+ "cA=10. ##cm^2\n",
+ "wA=5. ##cm^2\n",
+ "P=1. ##tonne\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "P=P*1000. ##kg\n",
+ "## calculations\n",
+ "U_up=P**2*200./(2.*E*cA)*1./math.sqrt(3)*(2.+4.+6.+8.+10.+12.)\n",
+ "U_do=P**2*200./(2.*E*cA)*1./math.sqrt(3)*(1.+3.+5.+7.+9.+11.+13./2.)\n",
+ "U_web=P**2*200./(2.*E*wA)*1./math.sqrt(3)*(2.*13.)\n",
+ "U=U_up+U_do+U_web\n",
+ "delta=U*2./(P)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('deflection = ',delta,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "deflection = 0.79 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate deflection of loaded end due to same load of one tonne\n",
+ "a=2*10**8\n",
+ "b=69282032.302\n",
+ "c=136.5\n",
+ "d=28\n",
+ "aa=5\n",
+ "bb=15\n",
+ "BC=16.77\n",
+ "cc=56000\n",
+ "dd=1300\n",
+ "ee=20*10**6\n",
+ "\n",
+ "\n",
+ "#part(a)\n",
+ "AB=a*c/(b) #\n",
+ "print'%s %.2f %s'%('energy stored in Bd due to axial force ',AB,'kg-cm')\n",
+ "\n",
+ "#Part(b)\n",
+ "Ubc=(b*b*aa)/(bb*bb)\n",
+ "UB=BC*100./(4.*10.)\n",
+ "UBC=Ubc*UB\n",
+ "Bc=730 \n",
+ "print'%s %.2f %s'%('energy stored in Bd due to axial force ',Bc,'kg-cm')\n",
+ "\n",
+ "#part(c)\n",
+ "AB=394 #\n",
+ "print'%s %.2f %s'%('energy stored in Bd due to axial force ',AB,'kg-cm')\n",
+ "\n",
+ "\n",
+ "#part(d)\n",
+ "Ebc=d*2/bb\n",
+ "\n",
+ "\n",
+ "#assuming that only chord memeber are taking axial stress then\n",
+ "\n",
+ "BD=(cc/bb)**2*(dd/4*ee)\n",
+ "BD1=227 \n",
+ "print'%s %.2f %s'%('energy stored in Bd due to axial force ',BD1,'kg-cm')\n",
+ "#total energy\n",
+ "TE=BD1+AB+Bc+AB\n",
+ "delta=(2*TE)/(1000.)\n",
+ "print'%s %.2f %s'%('total energy stored in Bd due to axial force ',delta,'kg-cm')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy stored in Bd due to axial force 394.04 kg-cm\n",
+ "energy stored in Bd due to axial force 730.00 kg-cm\n",
+ "energy stored in Bd due to axial force 394.00 kg-cm\n",
+ "energy stored in Bd due to axial force 227.00 kg-cm\n",
+ "total energy stored in Bd due to axial force 3.49 kg-cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate stresses in steel and stress in cloth laminate\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "L=1. ##m\n",
+ "w=10. ##kg\n",
+ "h=50. ##cm\n",
+ "A=1. ##cm^2\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "Ar=1 ##cm^2\n",
+ "Ec=3*10**4 ##kg/cm^2\n",
+ "## For steel\n",
+ "D=w*L*100./(A*E)\n",
+ "P=w*(1+math.sqrt(1.+(2.*h/D)))\n",
+ "print'%s %.2f %s'%('Stress in steeel = ',P,' kg/cm^2 ')\n",
+ "\n",
+ "## for cloth laminate\n",
+ "D=w*L*100./(A*Ec)\n",
+ "P=w*(1+math.sqrt(1.+(2.*h/D)))\n",
+ "print'%s %.2f %s'%('\\n Stress in cloth laminate = ',P,' kg/cm^2 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steeel = 4482.15 kg/cm^2 \n",
+ "\n",
+ " Stress in cloth laminate = 557.81 kg/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate maximum stress in wood and divers feet in all parts\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "w=64. ##kg\n",
+ "H=60. ##cm\n",
+ "b=40. ##cm\n",
+ "h=5. ##cm\n",
+ "E=0.12*10**6 ##kg/cm^2\n",
+ "Es=2*10**6 ##kg/cm^2\n",
+ "## for part (a) and (b)\n",
+ "I=b*h**3./12.\n",
+ "D=4.*w*120**3/(E*I)\n",
+ "P=w*(1+math.sqrt(1.+(2.*H/D)))\n",
+ "str=P*240.*6./(b*h**2.)\n",
+ "print('part (a) and (b)')\n",
+ "print'%s %.2f %s'%('\\n Maximum stress in wood = ',str,' kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n Max. force on divers feet =',P,' kg')\n",
+ "\n",
+ "##for part (c)\n",
+ "Ixx=I*E/Es\n",
+ "Zxx=19.4 ##cm^2\n",
+ "Ixx=72.7 ##cm^4\n",
+ "D=4*w*120**3/(Es*Ixx)\n",
+ "P=w*(1+math.sqrt(1.+(2.*H/D)))\n",
+ "str=P*240./Zxx\n",
+ "## results\n",
+ "print('\\n part (c)')\n",
+ "print'%s %.2f %s'%('\\n Maximum stress in steel = ',str,' kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n Max. force on divers feet =',P,' kg')\n",
+ "print('\\n Hence wood is better than steel')\n",
+ "\n",
+ "print('wrong calculations in some parts')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part (a) and (b)\n",
+ "\n",
+ " Maximum stress in wood = 443.86 kg/cm^2\n",
+ "\n",
+ " Max. force on divers feet = 308.24 kg\n",
+ "\n",
+ " part (c)\n",
+ "\n",
+ " Maximum stress in steel = 5826.84 kg/cm^2\n",
+ "\n",
+ " Max. force on divers feet = 471.00 kg\n",
+ "\n",
+ " Hence wood is better than steel\n",
+ "wrong calculations in some parts\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate central deflection\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "A=100. ##cm^2\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "## calculations\n",
+ "D=1093.5*10**6/(E*A)\n",
+ "## 1093.5 from the table\n",
+ "## results\n",
+ "print'%s %.2f %s'%('Central deflection = ',D,' mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Central deflection = 5.47 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate deflection\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "T=30. ##degree celcius\n",
+ "alpha=0.0000117 ## per degree celcius\n",
+ "##AB\n",
+ "L=6. ##m\n",
+ "dl=T*alpha*L\n",
+ "df=0.375 ##kg\n",
+ "tot=dl*df\n",
+ "##BC\n",
+ "dl=T*alpha*L\n",
+ "df=0.375 ##kg\n",
+ "tot=tot+dl*df\n",
+ "##CD\n",
+ "dl=T*alpha*L\n",
+ "df=0.75 ##kg\n",
+ "tot=tot+dl*df\n",
+ "tot=tot*100.*2.\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The deflection is ',tot,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The deflection is 0.63 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter2.ipynb b/Solid_Mechanics/Chapter2.ipynb
new file mode 100755
index 00000000..bfb41c2a
--- /dev/null
+++ b/Solid_Mechanics/Chapter2.ipynb
@@ -0,0 +1,380 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:26dcbbcd22709a7541672e17b4a9282832bb0b66ec902d715a2ff76ea69418e4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2-Analysis of Stress(Equlibrium) "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find the new stress tensor tau\n",
+ "import numpy.linalg\n",
+ "## initialization of variables\n",
+ "\n",
+ "tau=([[200, 100, 0],\n",
+ " [100, 0, 0],\n",
+ " [0 ,0, 500]]) ## some units\n",
+ "theta=60. ## degrees\n",
+ "##calculations\n",
+ "theta1=theta/57.3\n",
+ "a=([[math.cos(theta1), math.sin(theta1), 0],\n",
+ " [-math.sin(theta1), math.cos(theta1), 0],\n",
+ " [0, 0, 1]])\n",
+ "b=numpy.transpose(a)\n",
+ "tau_new=numpy.dot(a,tau)\n",
+ "tau_new1=numpy.dot(tau_new,b)\n",
+ "## Results\n",
+ "print('The new stress tensor is')\n",
+ "print tau_new1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The new stress tensor is\n",
+ "[[ 136.62361289 -136.59689227 0. ]\n",
+ " [-136.59689227 63.37638711 0. ]\n",
+ " [ 0. 0. 500. ]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "find the octahedral at this point\n",
+ "## initialization of variables\n",
+ "import math\n",
+ "sigma_1=100. ##kg*f/cm^2\n",
+ "sigma_2=100. ##kg*f/cm^2\n",
+ "sigma_3=-200. ##kg*f/cm^2\n",
+ "## calculations\n",
+ "tau_oct=1/3.*math.sqrt((sigma_1-sigma_2)**2+(sigma_2-sigma_3)**2+(sigma_3-sigma_1)**2)\n",
+ "## Results\n",
+ "print'%s %.2f %s '%('Octahedra shear stress at the point is=',tau_oct,' kgf/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Octahedra shear stress at the point is= 141.42 kgf/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#check whether the invariants of stress sensor\n",
+ "import numpy.linalg\n",
+ "## initialization of variable\n",
+ "tau=numpy.matrix([[200, 100, 0],\n",
+ " [100, 0, 0],\n",
+ " [0, 0, 500]]) ## some units\n",
+ "theta=60. ## degrees\n",
+ "##calculations\n",
+ "theta=theta*math.pi/180.\n",
+ "a=numpy.matrix([[math.cos(theta), math.sin(theta), 0],\n",
+ " [-math.sin(theta), math.cos(theta), 0],\n",
+ " [0, 0, 1]])\n",
+ "b=numpy.transpose(a)\n",
+ "tau_new=numpy.dot(a,tau)\n",
+ "tau_new1=numpy.dot(tau_new,b)\n",
+ "\n",
+ "## stress invariants :old \n",
+ "I1=tau[0,0]+tau[1,1]+tau[2,2]\n",
+ "I2=tau[0,0]*tau[1,1]+tau[1,1]*tau[2,2]+tau[2,2]*tau[0,0]-(tau[0,1]**2+tau[1,2]**2+tau[2,0]**2)\n",
+ "I3=tau[0,0]*tau[1,1]*tau[2,2]+2*tau[0,1]*tau[1,2]*tau[2,0]-(tau[0,0]*tau[1,2]**2+tau[1,1]*tau[2,0]**2+tau[2,2]*tau[0,1]**2)\n",
+ "\n",
+ "## stress invariants :new\n",
+ "I11=tau_new1[0,0]+tau_new1[0,0]+tau_new1[1,1]\n",
+ "I22=tau_new1[0,0]*tau_new1[1,1]+tau_new1[1,1]*tau_new1[2,2]+tau_new1[1,1]*tau_new1[0,0]-[tau_new1[0,1]**2+tau_new1[1,2]**2+tau_new1[1,0]**2]\n",
+ "I33=tau_new1[0,0]*tau_new1[1,1]*tau_new1[2,2]+2*tau_new1[0,1]*tau_new1[1,2]*tau_new1[2,0]-[tau_new1[0,0]*tau_new1[1,2]**2+tau_new1[1,1]*tau_new1[2,0]**2+tau_new1[2,2]*tau_new1[0,1]**2]\n",
+ "\n",
+ "## Results\n",
+ "print'%s %.2f %s %.2f %s %.2f %s %.2f %s %.2f %s %.2f' %('The invariants of old stress tensor are I1=',I1,' I2=',I2,' I3=',I3,' \\n and that of the new stress tensor are I1=',I11,' I2=',I22,' I3=',I33)\n",
+ "\n",
+ "print('\\n Hence the same stress tensor invariants')\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The invariants of old stress tensor are I1= 700.00 I2= 90000.00 I3= -5000000.00 \n",
+ " and that of the new stress tensor are I1= 336.60 I2= 11698.73 I3= -5000000.00\n",
+ "\n",
+ " Hence the same stress tensor invariants\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the value of sigma 1 and sigma2 at biaxial yeilding and unaxial\n",
+ "sigma_3=0. ## kgf/cm**2\n",
+ "tau_oct=1500. ## kgf/cm**2\n",
+ "n=2 ## given that sigma_1=n*sigma_2\n",
+ "## calculations\n",
+ "sigma_2=1500.*3./(math.sqrt(2*n**2-2*n+2)) ## ## kgf/cm**2\n",
+ "sigma_1=n*sigma_2 ## kgf/cm**2 \n",
+ "sigma_0=4500./math.sqrt(2.) ## kgf/cm**2\n",
+ "## Results\n",
+ "print'%s %.2f %s %.2f %s %.2f %s '%('The necessary stresses sigma_1, sigma_2 for biaxial yielding are \\n ',sigma_2,' kgf/cm^2' '',sigma_1,' kgf/cm^2' and 'for uniaxial yielding sigma_0 ',sigma_0,'kgf/cm^2.')\n",
+ " \n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The necessary stresses sigma_1, sigma_2 for biaxial yielding are \n",
+ " 1837.12 kgf/cm^2 3674.23 for uniaxial yielding sigma_0 3181.98 kgf/cm^2. \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the magnitude and direction of principal stress for the a b c\n",
+ "## part (a)\n",
+ "tau_xx=300 ## kgf/cm**2\n",
+ "tau_yy=0 ## kgf/cm**2\n",
+ "tau_xy=600 ## kgf/cm**2\n",
+ "##calculations\n",
+ "sigma_1=(tau_xx+tau_yy)/2.+math.sqrt((1./2.*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "sigma_2=(tau_xx+tau_yy)/2-math.sqrt((1/2.*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "Beta=math.atan(2*tau_xy/(tau_xx-tau_yy))\n",
+ "Beta=Beta*180/math.pi\n",
+ "##Results\n",
+ "print'%s %.2f%s %.2f %s %.2f %s'%('\\n Part (a) \\n The magnitude of principal stresses are',sigma_1,''and '',sigma_2,'kgf/cm^2' and' \\n the direction is given by 2*beta=',Beta,'')\n",
+ "\n",
+ "\n",
+ "##part (b)\n",
+ "tau_xx=1000 ## kgf/cm**2\n",
+ "tau_yy=150 ## kgf/cm**2\n",
+ "tau_xy=450 ## kgf/cm**2\n",
+ "## calculations\n",
+ "sigma_1=(tau_xx+tau_yy)/2+math.sqrt((1/2*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "sigma_2=(tau_xx+tau_yy)/2-math.sqrt((1/2*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "Beta=math.atan(2*tau_xy/(tau_xx-tau_yy))\n",
+ "Beta1=Beta*180./math.pi\n",
+ "## Results\n",
+ "print'%s %.2f %s %.2f %s %.2f %s '%('\\n Part (b) \\n The magnitude of principal stresses are',sigma_1,''and '',sigma_2,'kgf/cm^2' and' \\n the direction is given by 2*beta=',Beta1,'')\n",
+ "\n",
+ "## part (c)\n",
+ "tau_xx=-850 ## kgf/cm**2\n",
+ "tau_yy=350 ## kgf/cm**2\n",
+ "tau_xy=700 ## kgf/cm**2\n",
+ "## calculations\n",
+ "sigma_1=(tau_xx+tau_yy)/2+math.sqrt((1/2*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "sigma_2=(tau_xx+tau_yy)/2-math.sqrt((1/2*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "Beta=math.atan(2*tau_xy/(tau_xx-tau_yy))\n",
+ "Beta=Beta*57.3\n",
+ "## Results\n",
+ "print'%s %.2f %s %.2f %s %.2f %s '%('\\n Part (c) \\n The magnitude of principal stresses are',sigma_1,''and '',sigma_2,'kgf/cm^2' and' \\n the direction is given by 2*beta=',-Beta,'')\n",
+ " \n",
+ "\n",
+ "## wrong answers were given in textbook for part (b) (c)\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Part (a) \n",
+ " The magnitude of principal stresses are 768.47 -468.47 \n",
+ " the direction is given by 2*beta= 75.96 \n",
+ "\n",
+ " Part (b) \n",
+ " The magnitude of principal stresses are 1025.00 125.00 \n",
+ " the direction is given by 2*beta= 45.00 \n",
+ "\n",
+ " Part (c) \n",
+ " The magnitude of principal stresses are 450.00 -950.00 \n",
+ " the direction is given by 2*beta= 63.44 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "#find the intensity of diagonal tension\n",
+ "tau_xx= -1 # kgf/cm^2\n",
+ "tau_yy= 0 # kgf/cm^2\n",
+ "tau_xy= 7 # kgf/cm^2\n",
+ "# calculations \n",
+ "sigma_1=(tau_xx+tau_yy)/2.+math.sqrt((1/2.*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "sigma_2=(tau_xx+tau_yy)/2.-math.sqrt((1/2.*(tau_xx-tau_yy))**2+tau_xy**2)\n",
+ "x=sigma_1 # positive one is tension\n",
+ "if(sigma_2>sigma_1):\n",
+ " x=sigma_2\n",
+ "\n",
+ "# Results\n",
+ "print'%s %.2f %s'%('The diagonal tension is ',x,' kgf/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diagonal tension is 6.52 kgf/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "#find the state of stress at the joint\n",
+ "d=2 # m\n",
+ "l=10 # m\n",
+ "t=1 # cm\n",
+ "p=15 # kgf/cm^2\n",
+ "pitch= 2*math.pi #m\n",
+ "##calculations\n",
+ "w=2*math.pi*d/2. # m\n",
+ "theta=math.atan(w/(2*math.pi))\n",
+ "sigma_z=p*d*100./(4.*t)\n",
+ "sigma_th=p*d*100./(2.*t)\n",
+ "sigma_th_new=(sigma_th+sigma_z)/2.+(sigma_th-sigma_z)/2.*math.cos(2*theta)\n",
+ "tau_thz=(sigma_z-sigma_th)*math.sin(2.*theta)/2\n",
+ "# results\n",
+ "print'%s %.2f %s %.2f %s '%('At the junction, the normal and shear stresses are',sigma_th_new,'' and '',-tau_thz,' kgf/cm^2 \\n respectively, and the rivets must be designed for this')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At the junction, the normal and shear stresses are 1125.00 375.00 kgf/cm^2 \n",
+ " respectively, and the rivets must be designed for this \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter3.ipynb b/Solid_Mechanics/Chapter3.ipynb
new file mode 100755
index 00000000..dcfc5c16
--- /dev/null
+++ b/Solid_Mechanics/Chapter3.ipynb
@@ -0,0 +1,307 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:142bc04be38f8def52765de0bcb8288997d829ceb4e08160cd3c98d049f44d75"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3-Analysis of strain"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given matrix \n",
+ "import math\n",
+ "#find all the strains\n",
+ "#by strain components\n",
+ "Ex=0.06\n",
+ "Ey=0.01\n",
+ "Ez=0.01\n",
+ "Exy=0.05\n",
+ "Eyx=0.03\n",
+ "Eyz=0\n",
+ "Ezy=0\n",
+ "Exz=0.02\n",
+ "Ezx=0.01\n",
+ "gammaxy=Exy-Eyx\n",
+ "gammayz=Eyz-Ezy\n",
+ "gammazx=Exz+Ezx\n",
+ "print(gammaxy)\n",
+ "print(gammayz)\n",
+ "print(gammazx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.02\n",
+ "0\n",
+ "0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#show that they equal \n",
+ "import numpy.linalg\n",
+ "## initialization of variables\n",
+ "import math\n",
+ "epsillon=numpy.matrix([[0.01, 0, 0],[0, 0.02, 0.02],[0, 0.02, 0.01]]) ## dimensionless\n",
+ "theta=30. ## degrees\n",
+ "##calculations\n",
+ "theta=theta*math.pi/180.\n",
+ "a=numpy.matrix([[math.cos(theta), math.sin(theta), 0],\n",
+ " [-math.sin(theta), math.cos(theta), 0],\n",
+ " [0, 0, 1]])\n",
+ "\n",
+ "b=numpy.transpose(a)\n",
+ "epsillon_new=numpy.dot(epsillon,b)\n",
+ "epsillon1=numpy.dot(a,epsillon)\n",
+ "## calculation of strain invariants\n",
+ "## for epsillon\n",
+ "J1=epsillon[0,0]+epsillon[1,1]+epsillon[2,2]\n",
+ "J2=epsillon[0,0]*epsillon[1,1]+epsillon[1,1]*epsillon[2,2]+epsillon[2,2]*epsillon[0,0]-2*(epsillon[0,1]**2+epsillon[1,2]**2+epsillon[2,0]**2)\n",
+ "J3=epsillon[0,0]*epsillon[1,1]*epsillon[2,2]+2*epsillon[0,1]*epsillon[1,2]*epsillon[2,0]-(epsillon[0,0]*epsillon[1,2]**2+epsillon[1,1]*epsillon[2,0]**2+epsillon[2,2]*epsillon[0,1]**2)\n",
+ "\n",
+ "## for epsillon_new\n",
+ "J11=epsillon_new[0,0]+epsillon_new[1,1]+epsillon_new[2,2]\n",
+ "J22=epsillon_new[0,0]*epsillon_new[1,1]+epsillon_new[1,1]*epsillon_new[2,2]+epsillon_new[2,2]*epsillon_new[0,0]-2*(epsillon_new[0,1]**2+epsillon_new[1,2]**2+epsillon_new[2,0]**2)\n",
+ "J33=epsillon_new[0,0]*epsillon_new[1,1]*epsillon_new[2,2]+2*epsillon_new[0,1]*epsillon_new[1,2]*epsillon_new[2,0]-(epsillon_new[0,0]*epsillon_new[1,2]**2+epsillon_new[1,1]*epsillon_new[2,0]**2+epsillon_new[2,2]*epsillon_new[0,1]**2)\n",
+ "\n",
+ "## results\n",
+ "print('The new strain tensor is');\n",
+ "print(epsillon_new);\n",
+ "print'%s %.2f %s %.2e %s %.2e %s %.2f %s %.2e %s %.2e' %('The Strain invariants of old strain tensor are J1=',J1,' J2=',J2,' J3=',J3,' \\n and that of the new stress tensor are J1=',J11,' J2=',J22,' J3=',J33)\n",
+ "\n",
+ "print('\\n Hence the same strain invariants')\n",
+ "\n",
+ "print('because of rounding error ans is not matching')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The new strain tensor is\n",
+ "[[ 0.00866025 -0.005 0. ]\n",
+ " [ 0.01 0.01732051 0.02 ]\n",
+ " [ 0.01 0.01732051 0.01 ]]\n",
+ "The Strain invariants of old strain tensor are J1= 0.04 J2= -3.00e-04 J3= -2.00e-06 \n",
+ " and that of the new stress tensor are J1= 0.04 J2= -6.40e-04 J3= -5.95e-06\n",
+ "\n",
+ " Hence the same strain invariants\n",
+ "because of rounding error ans is not matching\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy.linalg\n",
+ "#find all the componetns of epsillon and the invariants of epsillon new\n",
+ "## initialization of variables\n",
+ "import math\n",
+ "epsillon=numpy.matrix([[0.01, -0.02, 0],\n",
+ " [-0.02, 0.03, -0.01],\n",
+ " [0, -0.01, 0]]) # dimensionless\n",
+ "a_xx=0.6 \n",
+ "theta=math.acos(a_xx) # radians\n",
+ "#calculations\n",
+ "theta1=theta*math.pi/180\n",
+ "a=numpy.matrix([[math.cos(theta1), 0 ,-math.sin(theta1)], [ 0 , 1, 0],[math.sin(theta1), 0 ,math.cos(theta1)]])\n",
+ "b=numpy.transpose(a)\n",
+ "epsillon1=numpy.dot(a,epsillon)\n",
+ "epsillon_new=numpy.dot(a,b)\n",
+ "\n",
+ "# calculation of strain invariants\n",
+ "#for epsillon\n",
+ "J1=epsillon[0,0]+epsillon[1,1]+epsillon[2,2]\n",
+ "J2=epsillon[0,0]*epsillon[1,1]+epsillon[1,1]*epsillon[2,2]+epsillon[2,2]*epsillon[0,0]-2*(epsillon[0,1]**2+epsillon[1,2]**2+epsillon[2,0]**2)\n",
+ "J3=epsillon[0,0]*epsillon[1,1]*epsillon[2,2]+2*epsillon[0,1]*epsillon[1,2]*epsillon[2,0]-(epsillon[0,0]*epsillon[1,2]**2+epsillon[1,1]*epsillon[2,0]**2+epsillon[2,2]*epsillon[0,1]**2)\n",
+ "\n",
+ "# for epsillon_new\n",
+ "J11=epsillon_new[0,0]+epsillon_new[1,1]+epsillon_new[2,2]\n",
+ "J22=epsillon_new[0,0]*epsillon_new[1,1]+epsillon_new[1,1]*epsillon_new[2,2]+epsillon_new[2,2]*epsillon_new[0,0]-2*(epsillon_new[0,1]**2+epsillon_new[1,2]**2+epsillon_new[2,0]**2)\n",
+ "J33=epsillon_new[0,0]*epsillon_new[1,1]*epsillon_new[2,2]+2*epsillon_new[0,1]*epsillon_new[1,2]*epsillon_new[2,0]-(epsillon_new[0,0]*epsillon_new[1,2]**2+epsillon_new[1,1]*epsillon_new[2,0]**2+epsillon_new[2,2]*epsillon_new[0,1]**2)\n",
+ "# Results\n",
+ "print('The new strain tensor is');\n",
+ "print(\"epsillon_new\");\n",
+ "print'%s %.2e %s %.2e %s %.2e %s %.2e %s %.2e %s %.2e' %('The Strain invariants of old strain tensor are J1=',J1,' J2=',J2,' J3=',J3,' \\n and that of the new stress tensor are J1=',J11,' J2=',J22,' J3=',J33)\n",
+ "print('because of rounding error ans is not matching')\n",
+ "print('\\n Hence the same strain invariants')\n",
+ "print(\"in book calculations are done wrong\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The new strain tensor is\n",
+ "epsillon_new\n",
+ "The Strain invariants of old strain tensor are J1= 4.00e-02 J2= -7.00e-04 J3= -1.00e-06 \n",
+ " and that of the new stress tensor are J1= 3.00e+00 J2= 3.00e+00 J3= 1.00e+00\n",
+ "because of rounding error ans is not matching\n",
+ "\n",
+ " Hence the same strain invariants\n",
+ "in book calculations are done wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the principal strains by using transformation equations\n",
+ "epsillon_A= 700.*10**-6 \n",
+ "epsillon_B= 300.*10**-6 \n",
+ "epsillon_C= 300.*10**-6 \n",
+ "theta=45. ## degrees\n",
+ "theta=theta*math.pi/180 ## radians\n",
+ "## calculations\n",
+ "epsillon_x=epsillon_A\n",
+ "epsillon_y=epsillon_C\n",
+ "gamma_xy=(epsillon_B-(epsillon_x*math.cos(theta)**2+epsillon_y*math.sin(theta)**2))/(math.sin(theta)*math.cos(theta))\n",
+ "epsillon_1=1/2.*(epsillon_x+epsillon_y)+(1/2.)*math.sqrt((epsillon_x-epsillon_y)**2+gamma_xy**2)\n",
+ "epsillon_2=1/2.*(epsillon_x+epsillon_y)-(1/2.)*math.sqrt((epsillon_x-epsillon_y)**2+gamma_xy**2)\n",
+ "phi=0.5*math.atan(gamma_xy/(epsillon_x-epsillon_y))\n",
+ "phi=phi*180./math.pi\n",
+ "##results\n",
+ "print'%s %.2e %s %.2e %s'%('The principal strains are ',epsillon_1,''and '',epsillon_2,'')\n",
+ "print'%s %.2f %s'%('\\n phi = ',phi,'degrees')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The principal strains are 7.83e-04 2.17e-04 \n",
+ "\n",
+ " phi = -22.50 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find the principal strains\n",
+ "import numpy.linalg\n",
+ "## initialization of variables\n",
+ "epsillon_A= 1000*10**-6 \n",
+ "epsillon_B= 720*10**-6 \n",
+ "epsillon_C= 600*10**-6 \n",
+ "th_B=120 # degrees\n",
+ "th_C=240 # degrees\n",
+ "##calculations\n",
+ "th_B=th_B*math.pi/180.\n",
+ "th_C=th_C*math.pi/180.\n",
+ "## we need to solve for epsillon_y and gamma_xy\n",
+ "# Ax=B\n",
+ "ep_x=epsillon_A\n",
+ "A=numpy.matrix([[math.sin(th_B)**2, math.sin(th_B)*math.cos(th_B)],\n",
+ " [ math.sin(th_C)**2, math.sin(th_C)*math.cos(th_C)]])\n",
+ "C=numpy.matrix([[epsillon_B-ep_x*math.cos(th_B)**2], [epsillon_C-ep_x*math.cos(th_C)**2]]) \n",
+ "\n",
+ "x=numpy.dot(numpy.linalg.inv(A),C)\n",
+ "\n",
+ "ep_y=x[0,0]\n",
+ "gam_xy=x[1,0]\n",
+ "epsillon_x=ep_x\n",
+ "epsillon_y=ep_y\n",
+ "gamma_xy=gam_xy\n",
+ "epsillon_1=1/2.*(epsillon_x+epsillon_y)+(1./2.)*math.sqrt((epsillon_x-epsillon_y)**2+gamma_xy**2)\n",
+ "epsillon_2=1/2.*(epsillon_x+epsillon_y)-(1./2.)*math.sqrt((epsillon_x-epsillon_y)**2+gamma_xy**2)\n",
+ "## Results\n",
+ "print'%s %.3e %s %.3e %s '%('The principal strains are ',epsillon_1,''and '',epsillon_2,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The principal strains are 1.010e-03 5.363e-04 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter4.ipynb b/Solid_Mechanics/Chapter4.ipynb
new file mode 100755
index 00000000..27418162
--- /dev/null
+++ b/Solid_Mechanics/Chapter4.ipynb
@@ -0,0 +1,242 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8153891fd31915fc027b9835e482fe359e89a7a1a683b21a2334c8771f72e58d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter4-Stress-Strain Relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "import numpy\n",
+ "E=2.*10**6. ## kg/cm^2\n",
+ "G=8.*10**5. ## kg/cm^2\n",
+ "ep=numpy.matrix([[0.001, 0, -0.002],\n",
+ " [0 ,-0.003, 0.0005],\n",
+ " [-0.002, 0.0005, 0]])\n",
+ "## calculations\n",
+ "nu=E/(2.*G)-1.\n",
+ "D=E*nu/((1.+nu)*(1.-2.*nu))\n",
+ "mu=G\n",
+ "sigma=2.*mu*ep[0,0]+D*(ep[0,0]+ep[1,1]+ep[2,2])\n",
+ "sigma=2.*mu*ep[1,1]+D*(ep[0,0]+ep[1,1]+ep[2,2])\n",
+ "sigma=2.*mu*ep[2,2]+D*(ep[0,0]+ep[1,1]+ep[2,2])\n",
+ "tau=2.*mu*ep[0,1]\n",
+ "tau=2.*mu*ep[0,2]\n",
+ "tau=2.*mu*ep[1,2]\n",
+ "tau=numpy.matrix([[sigma, tau, tau],\n",
+ " [tau, sigma, tau],\n",
+ " [tau, tau, sigma]])\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s'%('The lames constants are ',D,' and ',mu,'kg/cm^2')\n",
+ "print('\\n The stres tensor is')\n",
+ "print(tau)\n",
+ "print('in text book calculations are done wrong')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lames constants are 800000.00 and 800000.00 kg/cm^2\n",
+ "\n",
+ " The stres tensor is\n",
+ "[[-1600. 800. 800.]\n",
+ " [ 800. -1600. 800.]\n",
+ " [ 800. 800. -1600.]]\n",
+ "in text book calculations are donw wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the magnitude and direction of all the principal strains\n",
+ "sigma_x=1000. ##kg/cm^2\n",
+ "sigma_y=-500. ##kg/cm^2\n",
+ "sigma_z=0. ##kg/cm^2\n",
+ "tau_xy=500. ##kg/cm^2\n",
+ "E=2.*10**6 ## kg/cm^2\n",
+ "nu=0.25\n",
+ "##calculations\n",
+ "ep_x=1./E*(sigma_x-nu*(sigma_y+sigma_z))\n",
+ "ep_y=1./E*(sigma_y-nu*(sigma_x+sigma_z))\n",
+ "ep_z=1./E*(sigma_z-nu*(sigma_y+sigma_x))\n",
+ "J1=ep_x+ep_y+ep_z\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1/2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1/2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "th=1/2.*math.atan(2.*tau_xy/(sigma_x-sigma_y))\n",
+ "th=th*180/math.pi\n",
+ "ep_1=1./E*(sigma_1-nu*sigma_2)\n",
+ "ep_2=1./E*(sigma_2-nu*sigma_1)\n",
+ "ep_3=-1./E*nu*(sigma_1+sigma_2)\n",
+ "##results\n",
+ "print'%s %.5f %s'%('The magnitude of principal strain are ',abs(ep_1),'')\n",
+ "print'%s %.5f %s'%('The magnitude of principal strain are ',abs(ep_2),'')\n",
+ "print'%s %.5f %s'%('The magnitude of principal strain are ',abs(ep_3),'')\n",
+ "print'%s %.2f %s'%('\\n and the diection is given by theta=',th,' degrees')\n",
+ "print'%s %.8f %s'%('\\n J1 is ',J1,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnitude of principal strain are 0.00066 \n",
+ "The magnitude of principal strain are 0.00047 \n",
+ "The magnitude of principal strain are 0.00006 \n",
+ "\n",
+ " and the diection is given by theta= 16.85 degrees\n",
+ "\n",
+ " J1 is 0.00012500 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#findd the value of sigma y and principal stress\n",
+ "# initialization of variables\n",
+ "\n",
+ "sigma_x=1400. ##kg/cm^2\n",
+ "tau_xy=400.## kg/cm^2\n",
+ "ep_z=-3.6*10**-6\n",
+ "nu=1/4.\n",
+ "E=2*10**8 ##kg/cm^2\n",
+ "## calculations\n",
+ "sigma_y=(-ep_z*E/nu)-sigma_x\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1/2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2-math.sqrt((1/2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "th=0.5*math.atan(2*tau_xy/(sigma_x-sigma_y))\n",
+ "th=th*180/math.pi\n",
+ "print'%s %.2f %s'%('sigma_y is ',sigma_y,' kg/cm^2')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n The principal stresses are',sigma_1,'kg/cm^2 'and '',sigma_2,'kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n The direction is given by theta = ',-th,' degrees')\n",
+ "\n",
+ "## angle was given wrong in the text\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "sigma_y is 1480.00 kg/cm^2\n",
+ "\n",
+ " The principal stresses are 1842.00 1038.00 kg/cm^2 \n",
+ "\n",
+ " The direction is given by theta = 42.14 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#detemine wheather there is yielding according to tresca and von moises conditions or not\n",
+ "C=1000./3. ##kg/cm^2\n",
+ "sigma_x=2.*C\n",
+ "sigma_y=4.*C\n",
+ "tau_xy=4.*C\n",
+ "sigma_0=4.*C\n",
+ "sigma_1=3.+C*math.sqrt(2.)\n",
+ "sigma_2=3.-C*math.sqrt(2.)\n",
+ "sigma_3=0.\n",
+ "tau_oct=1/3.*math.sqrt((sigma_1-sigma_2)**2+(sigma_2-sigma_3)**2+(sigma_3-sigma_1)**2)\n",
+ "tau_max=sigma_1/2.\n",
+ "taU=1.885*C\n",
+ "tau_y=2.*C\n",
+ "print'%s %.2f %s'%('Actual tau is ',taU,'')\n",
+ "print'%s %.2f %s'%('\\n tau_max at yield is ',tau_y,'')\n",
+ "print('\\n Hence yielding doesn not occur according to Von-Miles condition \\n but it occurs due to Tresca condition')\n",
+ "print('\\n In text book C is not multiplied' )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Actual tau is 628.33 \n",
+ "\n",
+ " tau_max at yield is 666.67 \n",
+ "\n",
+ " Hence yielding doesn not occur according to Von-Miles condition \n",
+ " but it occurs due to Tresca condition\n",
+ "\n",
+ " In text book C is not multiplied\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter5.ipynb b/Solid_Mechanics/Chapter5.ipynb
new file mode 100755
index 00000000..0476e6c4
--- /dev/null
+++ b/Solid_Mechanics/Chapter5.ipynb
@@ -0,0 +1,558 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9b3bc61ffd8a89c3466a307f9852d75af09d404726bf0f558024c7331fecc5c5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5-Uniaxial Deformations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex1-pg139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the depth of clay bed \n",
+ "l=20. ##cm\n",
+ "dL=1. ##m\n",
+ "dl=0.004 ##cm\n",
+ "##calculations\n",
+ "L=l*dL/dl ##m\n",
+ "##results\n",
+ "print'%s %.2f %s'%('The depth of the clay bed is ',L,' m')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The depth of the clay bed is 5000.00 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the total extension of the rod and draw the force and extension diagrams\n",
+ "A=1. ##unit area\n",
+ "E=2.*10**6 ##kg/cm^2\n",
+ "## calculations\n",
+ "db=3000.*90./(A*E)\n",
+ "dc=db+5000.*60./(A*E)\n",
+ "dd=dc+4000.*30./(A*E)\n",
+ "##results\n",
+ "print'%s %.2e %s %.2e %s %.2e %s '%('The extension of the rod in part AB is ',db,' cm'and'in part BC is ',dc,' cm'and' \\n and in part CD is ',dd,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The extension of the rod in part AB is 1.35e-01 in part BC is 2.85e-01 \n",
+ " and in part CD is 3.45e-01 cm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#findthe extension under its own weight\n",
+ "A=3. ##cm^2\n",
+ "L=18. ##m\n",
+ "E= 2*10**6 ##kg/cm^2\n",
+ "r=7833. ##kg/m^3\n",
+ "##calculations\n",
+ "e=r*(L*100)**2./(2*E*10**6)\n",
+ "## results\n",
+ "print'%s %.4f %s'%('The elongation is ',e,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The elongation is 0.0063 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the extension under a concertrated load of 3 tonne at the bottom\n",
+ "## linked to 5_3\n",
+ "P=3 ##tonne\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "d_0= 1. ##cm\n",
+ "d_l=2.8 ##cm\n",
+ "## calculations\n",
+ "e=4*P*1000.*d_l*10**3/(d_l**2*math.pi*E*(1-((d_l-d_0)/d_l)))\n",
+ "##results\n",
+ "print'%s %.2f %s'%('The total elongation is ',e,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total elongation is 1.91 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "import numpy\n",
+ "from numpy import *\n",
+ "import scipy as Sci\n",
+ "import scipy.linalg\n",
+ "P=10 ##tonne\n",
+ "import numpy as np\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "## calculations\n",
+ "## We have to solve linear system Ax=B\n",
+ "A=numpy.matrix([[1, 1, 1, 0], [3, 1, -3, 0],[-2, 2, 0, -E],[0, -1, 2, -E]])\n",
+ "B=numpy.matrix([[P*10**3],[0],[0],[0]])\n",
+ "x=numpy.dot(np.linalg.inv(A),B)\n",
+ "W1=x[0,0]/1000.\n",
+ "W2=x[1,0]/1000.\n",
+ "W3=x[2,0]/1000.\n",
+ "th=x[3,0]\n",
+ "##results\n",
+ "print'%s %.2f %s %.2f %s %.2f %s '%('The load taken by each rod is',W1,' tonne'and'',W2,' tonne'and'',W3,'tonne')\n",
+ "print'%s %.3e %s'%('\\n and the slope is theta = ',th,' radians') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The load taken by each rod is 2.33 4.00 3.67 tonne \n",
+ "\n",
+ " and the slope is theta = 1.667e-03 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#calculate the safe load taken by the column\n",
+ "b=30. ## cm\n",
+ "h=30. ##cm\n",
+ "n=6.\n",
+ "A=36. ##cm^2\n",
+ "ss_s=1500. ##kg/cm^2\n",
+ "ss_c=60. ##kg/cm^2\n",
+ "Er=15. ## Elasticity ratio\n",
+ "## calculations\n",
+ "L=A*Er*ss_c+(b*h-A)*ss_c\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The safe load is ',L,'.kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe load is 84240.00 .kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find the stress in steel and concerete after redisturbution of stress in steel and cncerete\n",
+ "## initiaization of variables\n",
+ "import math\n",
+ "gs_b=10. ##cm\n",
+ "gs_h=10. ##cm\n",
+ "d_b=2. ##cm\n",
+ "d_h=2. ##cm\n",
+ "As= 1. ##cm^2\n",
+ "s=10000. ##kg/cm^2\n",
+ "## part (a)\n",
+ "Es=2*10**6 ##kg/cm^2\n",
+ "Ec=2*10**5 ##kg/cm^2\n",
+ "## calculations\n",
+ "e=s/Es\n",
+ "Ac=gs_b*gs_h-(d_b*d_h)\n",
+ "e_c=e*Es*As/(Ec*Ac+Es*As)\n",
+ "s_c=Ec*e_c\n",
+ "e_s=e-e_c\n",
+ "s_s=Es*e_s\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('part (a) \\n The stress in steel and concrete are respectively ',s_s,''and '',s_c,' kg/cm^2')\n",
+ "## part(b)\n",
+ "P=8000. ##kg\n",
+ "## calculations\n",
+ "e_c=(e*Es*As-P)/(Ec*Ac+Es*As)\n",
+ "e_s=e-e_c\n",
+ "s_c=Ec*e_c\n",
+ "s_s=Es*e_s\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s'%('\\n part (b) \\n The stress in steel and concrete are respectively ',s_s,''and '',s_c,'kg/cm^2')\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part (a) \n",
+ " The stress in steel and concrete are respectively 9056.60 94.34 kg/cm^2 \n",
+ "\n",
+ " part (b) \n",
+ " The stress in steel and concrete are respectively 9811.32 18.87 kg/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##calculate temperature which sleeve must be heated if the room temperature is 10c\n",
+ "#and pressure and find axial force necessary to separate the two room temperature and the temperature at which sleeve will easily come off\n",
+ "## initialization\n",
+ "import math\n",
+ "d=10 ##cm\n",
+ "D=9.99 ##cm\n",
+ "t=3 ##mm\n",
+ "E=1.0*10**6 ##kg/cm^2\n",
+ "a=2.02*10**-5 ## degree/celcius\n",
+ "## part(a)\n",
+ "Tr=10. ##degree C\n",
+ "T=(d-D)/D*1/a\n",
+ "print'%s %.2f %s'%('part(a) \\n The sleeve must be heated to ',T+Tr,' degree C or more for this purpose')\n",
+ "\n",
+ "##part(b)\n",
+ "s_th=a*T*E\n",
+ "p=s_th*t*2./(d*10.)\n",
+ "print'%s %.2f %s'%('\\n part(b) \\n The pressure developed between the rod and sleeve is',p,' kg/cm^2')\n",
+ "\n",
+ "## part(c)\n",
+ "f=0.2\n",
+ "o=10. ## overlap: cm\n",
+ "A=math.pi*d*o\n",
+ "F=f*p*A\n",
+ "print'%s %.2f %s'%('\\n part (c) \\n The axial force required is ',F,' kg')\n",
+ "\n",
+ "##part (d)\n",
+ "## linked to part c\n",
+ "T2=20. ##degree C\n",
+ "a2=1.17*10**-5 ## /degree C\n",
+ "Ts=(a-a2)*(T2-Tr)*E\n",
+ "Ts=s_th-Ts\n",
+ "p2=p*Ts/s_th\n",
+ "F2=F*Ts/s_th\n",
+ "print'%s %.2f %s'%('\\n part(d)\\n The pressure developed between the rod and sleeve is',p2,' kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n The axial force required is ',F2,' kg')\n",
+ "##part(e)\n",
+ "T3=Tr+(s_th/((a-a2)*10**6))\n",
+ "print'%s %.2f %s'%('\\n part(e) \\n The temperature at which the sleeve comes off easily is ',T3,' C')\n",
+ "\n",
+ "print('calculations in the text: rounding off errors')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part(a) \n",
+ " The sleeve must be heated to 59.55 degree C or more for this purpose\n",
+ "\n",
+ " part(b) \n",
+ " The pressure developed between the rod and sleeve is 60.06 kg/cm^2\n",
+ "\n",
+ " part (c) \n",
+ " The axial force required is 3773.68 kg\n",
+ "\n",
+ " part(d)\n",
+ " The pressure developed between the rod and sleeve is 54.96 kg/cm^2\n",
+ "\n",
+ " The axial force required is 3453.24 kg\n",
+ "\n",
+ " part(e) \n",
+ " The temperature at which the sleeve comes off easily is 127.76 C\n",
+ "calculations in the text: rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#calculate the radius of curvature of this strip at temperautre of 93.3\n",
+ "T1=37.8 ## degre C\n",
+ "t=0.355 ##mm\n",
+ "T2=93.3 ## degree C\n",
+ "L=2 ##cm\n",
+ "m=1\n",
+ "n=1.53\n",
+ "a=1.86*10**-5\n",
+ "##calculations\n",
+ "R=2*t*(3*(1+m)**2.+(1+m*n)*(m**2+(m*n)**-1))\n",
+ "R=R/(6.*a*(T2-T1)*(1+m**2)) ## mm\n",
+ "R=R/10.\n",
+ "D=L**2./(8.*R)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The radius of curvature is ',R,' cm')\n",
+ "print'%s %.4f %s'%('\\n The deflection is',D ,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius of curvature is 92.76 cm\n",
+ "\n",
+ " The deflection is 0.0054 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the energy stored in bolt\n",
+ "L=5. ##cm\n",
+ "D=1.8 ##cm\n",
+ "l=2.5 ##cm\n",
+ "d=1.5 ##cm\n",
+ "F=1 ##tonne\n",
+ "E=2.1*10**6 ##kg/cm^2\n",
+ "## calculations\n",
+ "s1=F*1000.*4./(D**2*math.pi)\n",
+ "s2=F*1000.*4./(d**2*math.pi)\n",
+ "U1=1/2.*s1**2./E\n",
+ "U1=U1*L*D**2*math.pi/4.\n",
+ "U2=1/2.*s2**2./E\n",
+ "U2=U2*l*d**2*math.pi/4.\n",
+ "U=U1+U2\n",
+ "## results\n",
+ "print'%s %.1f %s'%('The energy stored in the bolt is ',U,' kg-cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy stored in the bolt is 0.8 kg-cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#calculate which of the two ways will give stronger joint\n",
+ "t=16. ##mm\n",
+ "Pt=1500. ##kg/cm^2\n",
+ "Ps=1025. ##kg/cm^2\n",
+ "Pb=2360. ##kg/cm^2\n",
+ "\n",
+ "##part (a)\n",
+ "p=6. ##cm\n",
+ "r=24. ##mm\n",
+ "d=r/10.+0.15\n",
+ "Ft=t*(p-d)*Pt/10.\n",
+ "Fs=math.pi*d**2*Ps/4.\n",
+ "Fb=d*t*Pb\n",
+ "x=min(Ft,Fs,Fb)\n",
+ "effA=x*100./(p*t/10.*Pt)\n",
+ "\n",
+ "##part (b)\n",
+ "p=9. ##cm\n",
+ "r=30. ##mm\n",
+ "d=r/10.+0.2\n",
+ "Ft=t*(p-d)*Pt/10.\n",
+ "Fs=math.pi*d**2*Ps/4.\n",
+ "Fb=d*t*Pb\n",
+ "x=min(Ft,Fs,Fb)\n",
+ "effB=x*100./(p*t/10.*Pt)\n",
+ "\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('The efficiencies corresponding to cases a and b are ',effA,'' and '',effB,'')\n",
+ "print('\\n Hence part b is better than part a')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The efficiencies corresponding to cases a and b are 36.35 38.16 \n",
+ "\n",
+ " Hence part b is better than part a\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter6.ipynb b/Solid_Mechanics/Chapter6.ipynb
new file mode 100755
index 00000000..ce9f3b90
--- /dev/null
+++ b/Solid_Mechanics/Chapter6.ipynb
@@ -0,0 +1,813 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:896289250902762570d264c824478fdd14a2d522b88f8b0060498f7db1b84675"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6-Torision;Including Non-Circular Sections"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization o variables\n",
+ "#find the shear force on each rivet and suitable diameter of rivets\n",
+ "p=5. ##cm\n",
+ "D=10. ##cm\n",
+ "d=2. ##mm\n",
+ "T= 10. ##kgm\n",
+ "ss= 785. ##kg/cm^2\n",
+ "## calculations\n",
+ "P= 2.*T/(math.pi*D**2)\n",
+ "P=P*5*100.\n",
+ "## results\n",
+ "print'%s %.2f %s'%('Force per rivet is ',P,' kg')\n",
+ "print'%s %.2f %s'%('\\n The diameter of rivet, using a permissible stress of',ss,' kg/cm^2 = 0.227 cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force per rivet is 31.83 kg\n",
+ "\n",
+ " The diameter of rivet, using a permissible stress of 785.00 kg/cm^2 = 0.227 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#what is maximum torque\n",
+ "D=5. ##cm\n",
+ "Y=3500. ##kg/cm^2\n",
+ "\n",
+ "##part (a)\n",
+ "Ta=350. ##kg-m\n",
+ "tau=Y/2.\n",
+ "Ip=Ta*D*100./(2.*tau)\n",
+ "d1=Ip*32./math.pi\n",
+ "d1=(D**4-d1)**(1/4.)\n",
+ "\n",
+ "##part (b)\n",
+ "Tb= 700. ##kg-m\n",
+ "Ip=Tb*D*100./(2.*tau)\n",
+ "d2=Ip*32./math.pi\n",
+ "d2=(D**4-d2)\n",
+ "T=tau*math.pi*(D**4)*2./(32.*D)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The maximum diameter corresponding to the case a is ',d1,' cm')\n",
+ "print'%s %.2f %s'%('\\n Since the daimeter for the case (b) is coming out to be negative, \\n The maximum torque transmitted is ',T/100,' kg-m')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum diameter corresponding to the case a is 3.28 cm\n",
+ "\n",
+ " Since the daimeter for the case (b) is coming out to be negative, \n",
+ " The maximum torque transmitted is 429.51 kg-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the weight of students\n",
+ "A=3 ##cm^2\n",
+ "E= 2*10**6 ##kg/cm^2\n",
+ "nu= 0.25\n",
+ "l= 60. ##m\n",
+ "L=150. ##cm\n",
+ "d=0.5 ##cm\n",
+ "dd=10 ##cm\n",
+ "D=180 ##cm\n",
+ "##calculations\n",
+ "K=(l*100./(A*E))+(L*D/2.*D*32.*2.*(1.+nu)/(E*math.pi*dd**4*2))\n",
+ "P=d/K\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The weight of the students that entered the length is',P,' kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The weight of the students that entered the length is 196.31 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the stress in the cable and the shaft\n",
+ "## linked to 6_5\n",
+ "A=3. ##cm^2\n",
+ "E= 2.*10**6 ##kg/cm^2\n",
+ "nu= 0.25\n",
+ "l= 60. ##m\n",
+ "L=150. ##cm\n",
+ "d=0.5 ##cm\n",
+ "dd=10 ##cm\n",
+ "D=180. ##cm\n",
+ "##calculations\n",
+ "K=(l*100./(A*E))+(L*D/2.*D*32.*2.*(1+nu)/(E*math.pi*dd**4*2.))\n",
+ "P=d/K\n",
+ "Ts=P/A\n",
+ "fs=dd*D*P*32./(math.pi*4.*dd**4)\n",
+ "\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The tensile stress is ',Ts,'kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n Maximum shear stress is ',fs,' kg/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The tensile stress is 65.44 kg/cm^2\n",
+ "\n",
+ " Maximum shear stress is 89.98 kg/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the value of x and length of the suspension arm and D\n",
+ "F=500. ##kg\n",
+ "k=25. ##kg/cm\n",
+ "dd=15. ##cm\n",
+ "ss=3500. ##kg/cm^2\n",
+ "L=2. ##m\n",
+ "G=8.*10**5 ##kg/cm^2\n",
+ "## calculations\n",
+ "x=math.sqrt(math.pi*G/(25.*L*32.*100.))\n",
+ "d=x*16.*(F+dd*k)/(ss*math.pi)\n",
+ "x2=x*d**2.\n",
+ "## results\n",
+ "print'%s %.2f %s'%('d=',d,' cm')\n",
+ "print'%s %.2f %s'%('\\n x=',x,' cm')\n",
+ "\n",
+ "## Text: not exact\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "d= 5.05 cm\n",
+ "\n",
+ " x= 3.96 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the horse power\n",
+ "d=5. ##cm\n",
+ "rpm1=300. ##rpm\n",
+ "rpm2=30000. ##rpm\n",
+ "s=1000. ##kg/cm^2\n",
+ "##calcuations\n",
+ "T=(d/2.)*math.pi*10**2*s/32.\n",
+ "hp1= 2*math.pi*rpm1*T/4500.\n",
+ "hp2=hp1*100.\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s'%('Horse power at 300 rpm and 30000 rpm are respecively ',hp1/10,''and '',hp2/10,' h.p.')\n",
+ "\n",
+ "print('wrong/approximate answers in the text')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Horse power at 300 rpm and 30000 rpm are respecively 1028.08 102808.38 h.p.\n",
+ "wrong/approximate answers in the text\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex12-pg200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#selct solid transmits and diameter required find\n",
+ "hp=300. ##h.p.\n",
+ "N1=30. ##rpm\n",
+ "N2=30000. ##rpm\n",
+ "fs=600. ##kg/cm^2\n",
+ "## calculations\n",
+ "T1=4500.*hp*100./(2.*math.pi*N1)\n",
+ "T2=T1/1000.\n",
+ "D1=16.*T1/(math.pi*fs)\n",
+ "D1=D1**(1/3.)\n",
+ "D2=16.*T2/(math.pi*fs)\n",
+ "D2=D2**(1/3.)\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('Diameters required are ',D1,''and '',D2,'cm')\n",
+ "\n",
+ "print('wrong calculations in the text')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameters required are 18.25 1.83 cm \n",
+ "wrong calculations in the text\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#find the strain energy per unit volume stored and the energy if the lenght 5cm \n",
+ "d=10. ##cm\n",
+ "t =1. ##mm\n",
+ "T= 100. ##kg-m\n",
+ "L=5. ##m\n",
+ "G=8*10**5 ##kg/cm^2\n",
+ "\n",
+ "##calculations\n",
+ "r=d/2.\n",
+ "fs=T*r*100./(r**2*2*math.pi*L*t*10**-1)\n",
+ "U=fs**2/(2*G)\n",
+ "U1=U*(math.pi*L*100.)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('Energy per unit volume = ',U,' kg-cm/cm^3')\n",
+ "print'%s %.2f %s'%('\\n Total strain energy= ',U1,' kg-cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy per unit volume = 0.25 kg-cm/cm^3\n",
+ "\n",
+ " Total strain energy= 397.89 kg-cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the actual deflection of closely coiled comperssion spring\n",
+ "D=10. ##cm\n",
+ "d= 1. ##cm\n",
+ "n=20.\n",
+ "P=60. ##kg\n",
+ "G=8*10**5 ##kg/cm^2\n",
+ "##calculations\n",
+ "n=n-0.75*2\n",
+ "delta=P*n*math.pi*D**3*32./(4.*math.pi*G)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The deflection is ',delta,' cm')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The deflection is 11.10 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the shear stress in the wire\n",
+ "## linked to 6_14\n",
+ "D=10. ##cm\n",
+ "d= 1. ##cm\n",
+ "n=20.\n",
+ "P=60. ##kg\n",
+ "G=8*10**5 ##kg/cm^2\n",
+ "## calculations\n",
+ "m=D/d\n",
+ "fs=8.*P*D/(d**3*math.pi)\n",
+ "fs1=fs*(1+0.615/m+3./(4.*m-4.))\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('The shear stress with and without correction facor are \\n respectively ',fs,''and '',fs1,'kg/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The shear stress with and without correction facor are \n",
+ " respectively 1527.89 1749.18 kg/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16-pg214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find their angles of twist and maximum stresses\n",
+ "\n",
+ "## circle\n",
+ "D=1. ##unit diameter\n",
+ "Ip=D**4/32.\n",
+ "Zp=D**3/16.\n",
+ "\n",
+ "##Square\n",
+ "s=math.sqrt(math.pi/4.)*D\n",
+ "Is=0.886*D**4/32.\n",
+ "Zs=0.7383*D**3/16.\n",
+ "\n",
+ "##Rectangle\n",
+ "a=math.sqrt(math.pi/2.)*D\n",
+ "b=math.sqrt(math.pi/8.)*D\n",
+ "Ir=0.719*D**4/32.\n",
+ "Zr=0.616*D**3/16.\n",
+ "\n",
+ "## Trianle\n",
+ "t=math.sqrt(math.pi/math.sqrt(3))*D\n",
+ "It=0.725*D**4/32.\n",
+ "Zt=0.622*D**3/16.\n",
+ "\n",
+ "##Ellipse\n",
+ "A=D/math.sqrt(2)\n",
+ "B=D/math.sqrt(8)\n",
+ "Ie=A**3*B**3/(A**2+B**2)\n",
+ "Ze=A*B**2/2.\n",
+ "\n",
+ "##Normalization\n",
+ "Is=Is/Ip\n",
+ "Ie=Ie/Ip\n",
+ "It=It/Ip\n",
+ "Ir=Ir/Ip\n",
+ "\n",
+ "Zs=Zs/Zp\n",
+ "Ze=Ze/Zp\n",
+ "Zt=Zt/Zp\n",
+ "Zr=Zr/Zp\n",
+ "Ip=1.\n",
+ "Zp=1.\n",
+ "##results\n",
+ "print'%s %.2f %s %.2f %s %.2f %s %.2f %s %.2f %s '%('Z:: Circle:Square:Ellipse:Triangle:Rectangle = ',Zp,'' and '',Zs,'' and '',Ze,'' and '',Zt,' 'and '',Zr,'')\n",
+ "\n",
+ "print'%s %.2f %s %.2f %s %.2f %s %.2f %s %.2f %s '%('\\n I:: Circle:Square:Ellipse:Triangle:Rectangle = ',Ip,'' and '',Is,'' and '',Ie,'' and '',It,'' and '',Ir,'')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Z:: Circle:Square:Ellipse:Triangle:Rectangle = 1.00 0.74 0.71 0.62 0.62 \n",
+ "\n",
+ " I:: Circle:Square:Ellipse:Triangle:Rectangle = 1.00 0.89 0.80 0.72 0.72 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17-pg215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the maximum torque that can be transmitted without yeilding\n",
+ "\n",
+ "yp=2450. ##kg/cm^2\n",
+ "d=0.4 ##cm\n",
+ "ys=4200. ##kg/cm^2\n",
+ "sa=1.6 ##mm\n",
+ "sb=7. ##mm\n",
+ "## calculations\n",
+ "sa=sa/10.\n",
+ "sb=sb/10.\n",
+ "T1=yp*math.pi*d**3/16.\n",
+ "T2=ys*0.303*sa**2*sb\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The maximum torque that can be transitted by the screw-driver is ',T2,' kg-cm')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum torque that can be transitted by the screw-driver is 22.80 kg-cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex18-pg216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the maximum stress in the walls \n",
+ "b=5. ##cm\n",
+ "h=10. ##cm\n",
+ "tL=3. ##mm\n",
+ "tl=1.5 ##mm\n",
+ "T=100. ##kg-cm\n",
+ "## calculations\n",
+ "tl=tl/10.\n",
+ "fs=T*100./(2.*b*h*tl)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The maximum stress is ',fs,' kg/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress is 666.67 kg/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex19-pg216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#compare its strength with hollow circular shaft of same thickness\n",
+ "b=5. ##cm\n",
+ "h=10. ##cm\n",
+ "tL=3. ##mm\n",
+ "tl=1.5 ##mm\n",
+ "T=100. ##kg-cm\n",
+ "## calculations\n",
+ "D=2.*(b+h)/math.pi\n",
+ "AR=b*h\n",
+ "AC=math.pi*D**2/4.\n",
+ "r=AC/AR\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The ratio is 1:',r,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio is 1: 1.43 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex20-pg217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find the value of maximum shear stress and angle of twist\n",
+ "G=8*10**5 ##kg/cm^2\n",
+ "##part (a)\n",
+ "T =20. ##kg-m\n",
+ "t1=0.9 ##cm\n",
+ "t2=0.5 ##cm\n",
+ "b1=6.8 ##cm\n",
+ "b2=14.2 ##cm\n",
+ "I0=1/3.*(2.*b1*t1**3+b2*t2**3)\n",
+ "Zt=I0/max(t1,t2)\n",
+ "fs=T*100./Zt\n",
+ "Phi=T*100./(G*I0)\n",
+ "print('part (a)')\n",
+ "print'%s %.2f %s %.5f %s '%('\\n The maximum shear stress and twist rate are respectively \\n ',fs,' kg/cm^2'and'',Phi, ' radians/cm ')\n",
+ "\n",
+ "##part (b)\n",
+ "t1=1. ##cm\n",
+ "t2=1. ##cm\n",
+ "b1=10. ##cm\n",
+ "b2=9. ##cm\n",
+ "I0=1/3.*(b1*t1**3+b2*t2**3)\n",
+ "Zt=I0/max(t1,t2)\n",
+ "fs=T*100./Zt\n",
+ "Phi=T*100/(G*I0)\n",
+ "print('\\n part (b)')\n",
+ "print'%s %.2f %s %.5f %s '%('\\n The maximum shear stress and twist rate are respectively \\n ',fs,'kg/cm^2'and '',Phi,'radians/cm ')\n",
+ "\n",
+ "##part (c)\n",
+ "t1=0.76 ##cm \n",
+ "t2=0.48 ##cm\n",
+ "b1=8. ##cm\n",
+ "b2=14.04 ##cm\n",
+ "I0=(1/3.)*(2*b1*t1**3+b2*t2**3)\n",
+ "Zt=I0/max(t1,t2)\n",
+ "fs=T*100./Zt\n",
+ "Phi=T*100./(G*I0)\n",
+ "print('\\n part (c)')\n",
+ "print'%s %.2f %s %.5f %s ' %('\\n The maximum shear stress and twist rate are respectively \\n ',fs,' kg/cm^2'and '',Phi,'radians/cm ')\n",
+ "\n",
+ "##part(d)\n",
+ "t=1 ##cm \n",
+ "b=19 ##cm\n",
+ "I0=1/3.*t**3*b\n",
+ "Zt=I0/t\n",
+ "fs=T*100./Zt\n",
+ "Phi=T*100./(G*I0)\n",
+ "print('\\n part (d)')\n",
+ "print'%s %.2f %s %.5f %s '%('\\n The maximum shear stress and twist rate are respectively \\n ',fs,' kg/cm^2'and '',Phi,'radians/cm ')\n",
+ "\n",
+ "print('Twist rate: answers differ by a scale of 10. wrong answers in the text')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part (a)\n",
+ "\n",
+ " The maximum shear stress and twist rate are respectively \n",
+ " 461.96 0.00064 radians/cm \n",
+ "\n",
+ " part (b)\n",
+ "\n",
+ " The maximum shear stress and twist rate are respectively \n",
+ " 315.79 0.00039 radians/cm \n",
+ "\n",
+ " part (c)\n",
+ "\n",
+ " The maximum shear stress and twist rate are respectively \n",
+ " 531.70 0.00087 radians/cm \n",
+ "\n",
+ " part (d)\n",
+ "\n",
+ " The maximum shear stress and twist rate are respectively \n",
+ " 315.79 0.00039 radians/cm \n",
+ "Twist rate: answers differ by a scale of 10. wrong answers in the text\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex21-pg221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "## initialization of variables\n",
+ "#caclualte Maximum +ve residual stress occurs at r and'radius\n",
+ "D=5. ##cm\n",
+ "d=2. ##cm\n",
+ "t_y=3000. ##kg/cm^2\n",
+ "## calculations\n",
+ "R=D/2. \n",
+ "r=d/2. \n",
+ "Tep=2.*math.pi*R**3*t_y/3.-math.pi*r**3.*t_y/6.\n",
+ "t_er=2*Tep/(math.pi*R**3)\n",
+ "t_er1=t_er*r/R\n",
+ "prs=t_y-t_er1\n",
+ "nrs=t_er-t_y\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('Maximum +ve residual stress occurs at ',r,' cm' and'radius and is equal to \\n ',prs,' kg/cm^2')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n Maximum -ve residual stress occurs at ',R,' cm'and' radius and is equal to \\n ',-nrs,' kg/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum +ve residual stress occurs at 1.00 radius and is equal to \n",
+ " 1425.60 kg/cm^2 \n",
+ "\n",
+ " Maximum -ve residual stress occurs at 2.50 radius and is equal to \n",
+ " -936.00 kg/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter7.ipynb b/Solid_Mechanics/Chapter7.ipynb
new file mode 100755
index 00000000..b24f124a
--- /dev/null
+++ b/Solid_Mechanics/Chapter7.ipynb
@@ -0,0 +1,798 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:49fb320e4e9f8bda8c482a6df5a6d862902fe6b1b70d63f85fdebe1d70bf5a2c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Beams and Bendings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "#calculate sf and Bm\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "%matplotlib inline\n",
+ "#initialization of variables\n",
+ "s=3. #m\n",
+ "n=60.\n",
+ "p=50. #kg\n",
+ "## calculations\n",
+ "W=n*p\n",
+ "Rc=W*2./s\n",
+ "Rb=W-Rc\n",
+ "dx = 0.001;\n",
+ "x = numpy.linspace(0,s,3001)\n",
+ "n = round(s/dx +1);\n",
+ "n=int(n)\n",
+ "Sx=numpy.zeros(n)\n",
+ "Mx=numpy.zeros(n)\n",
+ "i=0;\n",
+ "for i in range (0,n):\n",
+ " Sx[i] = -Rb + Rc*x[i]**2./6.;\n",
+ " Mx[i] = Rb*x[i] - Rc*x[i]**3 /18.;\n",
+ "\n",
+ "##Results\n",
+ "pyplot.plot(x,Sx);pyplot.title(\"Shear force diagram\");pyplot.xlabel(\"X (in m)\");pyplot.ylabel(\"Shear force (in kg)\");\n",
+ "pyplot.show()\n",
+ "pyplot.plot(x,Mx);pyplot.title(\"Bending Moment diagram\");pyplot.xlabel(\"X (in m)\");pyplot.ylabel(\"Bending Moment (in kg-m)\");\n",
+ "pyplot.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAEZCAYAAABb3GilAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm8XfPZ///XW8yEGIqEoDRKOhBDaLQcLW5KBTVrjfXV\nKvrT4UZ7t9JqlbqpoXdSLSWKkMSUGGKInBZBhJC0EZISkkiiKUnElJPk+v3xWYftOMPOOXuftfc+\n7+fjsR5Ze62117rWWZzrfNZnUkRgZmZWSqvkHYCZmdUeJxczMys5JxczMys5JxczMys5JxczMys5\nJxczMys5JxerKpJOkvRojtffU9J0SW9LOiSvOJqSVC/p1Gz9eEkP5B2TdW1OLlZxJH1Z0nhJCyX9\nR9JjknbNO67Mr4CrIqJ7RIzKO5gCkS1ExM0R8V85x2Nd3Kp5B2BWSNJ6wD3A6cBwYA3gK8AHnRzH\nqhGxrJldWwJT23nObhGxvGOR5aeVn4nZJ7jkYpVmOyAi4rZI3o+IhyJiSuFBki6V9KaklyUdULB9\nfUnXSXpd0mxJF0paJdu3raRHJC2Q9G9JN0lav+C7MyX9t6TJwNuN3yvY/y9gG2C0pMWSVpPUS9Ko\nrIQ1XdJ3Co4fJGmkpL9KWgScKGlDSddLmpPFf2fB8QdLek7SW5Iel/SFln5IkvaTNC0r3V0NqGDf\nx14dSrpS0muSFkmaKOnLBfvWkjQ0i2Vqdv+zWvmZdJN0nqQZ2c/gn5IObXLtxyVdnt3HDEkDJJ2c\nxTBf0gktPn2rGU4uVmleBJZLukHSAZI2aOaY3YFpwEbA74DrCvbdACwFtgX6AfsD3ynY/xugJ7AD\n0BsY1OTcxwAHAj0iYkXhjojYFngNODgi1ouIBuDWbFtP4AjgIkn7FHztEGBERKwP3AL8FVgT6Ats\nAlwOIKlfdh+nARsC1wCjJK3e9OYlbQzcDvw0+xn8C9izmZ9TownAjsAGWQwjCs57Aak09mlgP+Bb\nZK/XWviZLAdmAF+OiPWAXwI3Sdq04Pj+wPPZfQwjlUB3Jj2TbwF/kLR2K/FaLYgIL14qagG2B64H\nZgENwN3AJtm+k4DpBceuDawg/aLeFHgfWLNg/7HAIy1c51Dg2YLPrwAntRHbK8BXs/XewDJgnYL9\nFwHXZ+uDgPqCfT2B5cD6zZx3CPCrJtumAXs1c+wJwPgm22YBpxT8jB5t5R7eBL6Qrf8L2K9g36nA\n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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x1d2b1f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOZex/w8lkRYwINnARQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5910590>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of new variables\n",
+ "#centriod of the section and momets of inertia and product of inertia about xx and yy axes and direction of principal axes and value of maximum and minimum\n",
+ "b=10075 ##mm\n",
+ "h=10 ##mm\n",
+ "p1=7.5\n",
+ "p2=9\n",
+ "##part (a)\n",
+ "ybar=1*p1*0.5+1*p2*5.5\n",
+ "ybar=ybar/16.5\n",
+ "xbar=1*p1*0.5+1*p1*4.75\n",
+ "xbar=xbar/16.5\n",
+ "print('part (a)')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n Centroid coordinates (x,y) = ',xbar,''and '',ybar,'cm')\n",
+ "\n",
+ "##part (b)\n",
+ "Ixx=p1*1**3/12.+p1*1*(3.23-0.5)**2+1*p2**3/12.+p2*1*(5.5-3.23)**2\n",
+ "Iyy=1*p1**3/12.+p1*1*(3.75-2.43)**2+p2*1**3/12.+p2*1*(2.43-0.5)**2\n",
+ "Ixy=p1*1.32*2.73+9*(-1.93)*(-2.27)\n",
+ "print('\\n part (b)')\n",
+ "print'%s %.2f %s %.2f %s %.2f %s '%('\\n Moment of Areas: \\n Ixx = ',Ixx,' cm^4 \\n Iyy = ',Iyy,' cm^4' and'Ixy=',Ixy,'cm^4')\n",
+ "\n",
+ "##part (c)\n",
+ "alpha=0.5*math.atan(2*Ixy/(Iyy-Ixx))\n",
+ "alpha=alpha*180/math.pi\n",
+ "print('\\n part (c)')\n",
+ "print('\\n Direction of principal axes:')\n",
+ "print'%s %.2f %s'%('\\n alpha = ',alpha,' degrees')\n",
+ "\n",
+ "##part (d)\n",
+ "Iuu=(Ixx+Iyy)/2+math.sqrt((Iyy-Ixx)**2/4.+Ixy**2)\n",
+ "Ivv=(Ixx+Iyy)/2-math.sqrt((Iyy-Ixx)**2/4.+Ixy**2)\n",
+ "print('\\n part (d)')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n Iuu = ',Iuu,' cm^4 \\n Ivv = ',Ivv,' cm^4')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part (a)\n",
+ "\n",
+ " Centroid coordinates (x,y) = 2.39 3.23 cm \n",
+ "\n",
+ " part (b)\n",
+ "\n",
+ " Moment of Areas: \n",
+ " Ixx = 163.65 cm^4 \n",
+ " Iyy = 82.50 Ixy= 66.46 cm^4 \n",
+ "\n",
+ " part (c)\n",
+ "\n",
+ " Direction of principal axes:\n",
+ "\n",
+ " alpha = -29.30 degrees\n",
+ "\n",
+ " part (d)\n",
+ "\n",
+ " Iuu = 200.94 cm^4 \n",
+ " Ivv = 45.21 cm^4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#determine bending stress and find the minimum radius \n",
+ "Ys=17000. ##kg/cm^2\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "d1=1. ##mm\n",
+ "d=1. ##cm\n",
+ "##calculations: 1 cm\n",
+ "R=E*d/(2*Ys)\n",
+ "M=Ys*math.pi*d**3/32.\n",
+ "## results\n",
+ "print'%s %.2f %s'%(' daimeter wire:',d,'cm')\n",
+ "print'%s %.2f %s'%('\\n Minimum radius = ',R,' cm')\n",
+ "print'%s %.2f %s'%('\\n Bending Moment = ',M,' kg-cm')\n",
+ "## calculations: 1 mm\n",
+ "R1=R/(d1*10.)\n",
+ "M1=M/(d1*1000.)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('\\n daimeter wire:',d1,'mm')\n",
+ "print'%s %.2f %s'%('\\n Minimum radius = ',R1,' cm')\n",
+ "print'%s %.2f %s'%('\\n Bending Moment = ',M1,' kg-cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " daimeter wire: 1.00 cm\n",
+ "\n",
+ " Minimum radius = 58.82 cm\n",
+ "\n",
+ " Bending Moment = 1668.97 kg-cm\n",
+ "\n",
+ " daimeter wire: 1.00 mm\n",
+ "\n",
+ " Minimum radius = 5.88 cm\n",
+ "\n",
+ " Bending Moment = 1.67 kg-cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the section modulus per meter width of plate \n",
+ "##initialization of variables\n",
+ "import math\n",
+ "t=0.5 ##cm\n",
+ "s=2. ##m\n",
+ "p1=7.5 ##cm\n",
+ "p2=10. ##cm\n",
+ "d=p2/2.\n",
+ "D=1650. ##kg/cm**2\n",
+ "## calculations\n",
+ "## ab\n",
+ "IxX=p1*t**3./12.+t*p1*d**2.\n",
+ "## bc\n",
+ "alpha=math.atan(3/4.)*57.3\n",
+ "Ixx=t*(p1+d)**3./12.\n",
+ "Iyy=0.\n",
+ "Ixy=0.\n",
+ "Iuu=Ixx*math.cos(alpha)**2+Iyy*math.sin(alpha)**2-Ixy*math.sin(2.*alpha)\n",
+ "Ixx=Iuu+IxX\n",
+ "IXX=Ixx*100./(2.*p1)\n",
+ "Z=IXX/(d+t/2.)\n",
+ "w=D*Z*8./(s**2*100.)\n",
+ "w=w/1000.\n",
+ "##Results\n",
+ "print'%s %.2f %s'%('w = ',w,' tonne/m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "w = 5.50 tonne/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find the total u.d load that can be supported \n",
+ "##initialization of variables\n",
+ "import math\n",
+ "wb=10. ##cm\n",
+ "wh=20. ##cm\n",
+ "sb=0.5 ##cm\n",
+ "sh=10. ##cm\n",
+ "s=6. ##m\n",
+ "fs=1650. ##kg/cm^2\n",
+ "fw=150. ##kg/cm^2\n",
+ "Es=2*10**6 ##kg/cm^2\n",
+ "Ew=12*10**4 ##kg/cm^2\n",
+ "\n",
+ "##calculations\n",
+ "## Method 1\n",
+ "A=2*fs/(21.*Es)\n",
+ "aw=2.*fw/(20.*Ew)\n",
+ "a=min(A,aw)\n",
+ "ss=a*Ew*wh/2.\n",
+ "##Moment resistance of steel portion\n",
+ "F=(fs+1573.)/2.*sb*sh\n",
+ "k=sb/3*(fs+2*1573.)/(fs+1573.)\n",
+ "Ms=2*F*(10.5-k)\n",
+ "##Moment resistance of wooden portion\n",
+ "F=ss*wb*wb/2.\n",
+ "Mw=2*(F*(wb-wb/3.))\n",
+ "M=Ms+Mw\n",
+ "##Total udl supported\n",
+ "W=M*8./(s*100.)\n",
+ "\n",
+ "##Results\n",
+ "print('Using method 1')\n",
+ "print'%s %.2f %s'%('\\n W = ',W,' kg')\n",
+ "\n",
+ "##Method 2\n",
+ "nE=Es/Ew\n",
+ "nf=fs/fw\n",
+ "Is=2*(0+sb*sh*10.25**2)\n",
+ "Iw=0.6*wh**3/12.\n",
+ "I=Is+Iw\n",
+ "W=fs*I*8./(s*100*10.5)\n",
+ "\n",
+ "##Results\n",
+ "print('\\n Using method 2')\n",
+ "print'%s %.2f %s'%('\\n W = ',W,' kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Using method 1\n",
+ "\n",
+ " W = 3040.91 kg\n",
+ "\n",
+ " Using method 2\n",
+ "\n",
+ " W = 3039.40 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg264"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate stiffness ratio \n",
+ "##initialization of variables\n",
+ "import math\n",
+ "p=6. ##mm\n",
+ "Ixx=2375. ##cm**4\n",
+ "Es=2*10**6. ##kg/cm**2\n",
+ "EAl=0.667*10**6 ##kg/cm**2\n",
+ "d1=10.6 ##cm\n",
+ "d2=10. ##cm\n",
+ "## calculations\n",
+ "I1=2.*(0.+p/10*10*10.3**2)\n",
+ "I2=Ixx*EAl/Es\n",
+ "I=I1+I2\n",
+ "n=I/I2\n",
+ "## results\n",
+ "print'%s %.2f %s'%('stiffness ratio = ',n,'')\n",
+ "n1=Es*d1/(d2*EAl)\n",
+ "print'%s %.2f %s'%('\\n Stress ration = ',n1,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stiffness ratio = 2.61 \n",
+ "\n",
+ " Stress ration = 3.18 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate shape factor \n",
+ "##initilization of new variables\n",
+ "import math\n",
+ "wt=0.8 ##cm\n",
+ "ft=1.4 ##cm\n",
+ "w=10. ##cm\n",
+ "y=20. ##cm\n",
+ "## Sigma_y: yield stress is not given explicitly\n",
+ "k1=wt*(40.-2*ft)/2.\n",
+ "Zp=(14*19.3+k1*9.3)*2\n",
+ "If=2*(w*ft**3/12+w*ft*19.3**2)\n",
+ "Iw=wt*(40-2*ft)**3/12.\n",
+ "I=Iw+If\n",
+ "Z=I/y\n",
+ "sf=Zp/Z\n",
+ "##Results\n",
+ "print'%s %.2f %s'%('shape factor = ',sf,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shape factor = 1.18 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15-pg270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate elastic core \n",
+ "##initilization of new variables\n",
+ "import math\n",
+ "wt=0.8 ##cm\n",
+ "ft=1.4 ##cm\n",
+ "w=10. ##cm\n",
+ "y=20. ##cm\n",
+ "T=750. ##T==750*sigma_y\n",
+ "## calculations\n",
+ "MpF=ft*w*(40-2*ft)\n",
+ "c1=((40.-2*ft)/2)**2-(T-MpF)/wt\n",
+ "c=math.sqrt(3*c1)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('Elastic core of ',2*c,' cm depth is present')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elastic core of 26.71 cm depth is present\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17-pg274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find stress at the inner side of the hook \n",
+ "##initialization of new variables\n",
+ "P=2000. ##kg\n",
+ "a=4. ##cm\n",
+ "b=1. ##cm\n",
+ "d=7. ##cm\n",
+ "r=3. ##cm\n",
+ "## calculations\n",
+ "A=(a+b)/2*d\n",
+ "xbar=(a+b*2.)*d/(r*(a+b))\n",
+ "rbar=r+xbar\n",
+ "I=b*d**3/12.+r*d**3/12.\n",
+ "Ixx=I-A*2.8**2\n",
+ "e=Ixx/(rbar*A)\n",
+ "f1=P*5.8*(xbar-0.62)/(A*0.62*r)\n",
+ "f2=P*5.8*(-d+2.18)/(A*0.62*(5.18+d-2.18))\n",
+ "str=P/A\n",
+ "Str_i=f1+str\n",
+ "Str_o=-f2-str\n",
+ "##Results\n",
+ "print'%s %.2f %s'%('stress at the inner side of the hook =',Str_i,' kg/cm^2 (tensile)')\n",
+ "print'%s %.2f %s'%('\\n stress at the outer side of the hook = ',Str_o,' kg/cm^2 (compressive)')\n",
+ "## approximations involved in the text\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stress at the inner side of the hook = 891.18 kg/cm^2 (tensile)\n",
+ "\n",
+ " stress at the outer side of the hook = 401.03 kg/cm^2 (compressive)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex20-pg281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# find Ratio of maximum bending stress in the stem and flange at various point\n",
+ "##initialization of new variables\n",
+ "import math\n",
+ "t=1. ##cm\n",
+ "a=40. ##cm\n",
+ "A=236.\n",
+ "## calculations\n",
+ "ybar=a*t*0.5+(50-1)*4*0.5/(a*t+(50-1)*4)\n",
+ "y1bar=1.25*a-ybar\n",
+ "IAA=a*t**3/3.+(50-1)**3*4/12.+(50-1)*4*25.5**2\n",
+ "Io=IAA-A*ybar**2.\n",
+ "##part (1)\n",
+ "r=y1bar/ybar\n",
+ "## results\n",
+ "print('Ratio of maximum bending stress in the stem and flange')\n",
+ "print'%s %.2f %s'%('\\n Ratio = ',r,'')\n",
+ "##part(2)\n",
+ "## calculations\n",
+ "r=(2/3.*388*29.56)-(2/3.*160*20.44)-(228*20.44)\n",
+ "r=r/(2*2/3.*388*29.56)\n",
+ "## results\n",
+ "print('\\n Ratio of S.F in flange to total S.F')\n",
+ "print'%s %.2f %s'%('\\n Ratio = ',r*100,' percent')\n",
+ "## part (3)\n",
+ "## calculations\n",
+ "r=359.*200./Io\n",
+ "## results\n",
+ "print('\\n Ratio of maximum shear stress in the flange to average sher stress in the stem')\n",
+ "print'%s %.2f %s'%('\\n Ratio = ',r,'')\n",
+ "##part (4)\n",
+ "## calculations\n",
+ "s=10 ##m\n",
+ "r=r/0.922\n",
+ "sigma=1650 ##kg/cm**2\n",
+ "shear=945 ##kg/cm**2\n",
+ "wsh=2*200*shear/(r*s)\n",
+ "wsi=8*Io*sigma/(s**2*10*29.56)\n",
+ "w=min(wsh,wsi)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('\\n Maximum u.d.l. = ',w,' kg/m ')\n",
+ "\n",
+ "print('wrong moment of Inertia (Io) in the text and hence part (3) and part (4) are wrong')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of maximum bending stress in the stem and flange\n",
+ "\n",
+ " Ratio = 1.45 \n",
+ "\n",
+ " Ratio of S.F in flange to total S.F\n",
+ "\n",
+ " Ratio = 5.27 percent\n",
+ "\n",
+ " Ratio of maximum shear stress in the flange to average sher stress in the stem\n",
+ "\n",
+ " Ratio = 1.05 \n",
+ "\n",
+ " Maximum u.d.l. = 30507.35 kg/m \n",
+ "wrong moment of Inertia (Io) in the text and hence part (3) and part (4) are wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex21-pg284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find the design force two cases\n",
+ "##initialization of new variables\n",
+ "import math\n",
+ "a=30. ##cm\n",
+ "t=2.5 ##cm\n",
+ "S=15. ##cm\n",
+ "s=5. ##Tonne\n",
+ "## calculations\n",
+ "I=a*a**3-25*25**3\n",
+ "I=I/12.\n",
+ "tau_zx=s*1000.*27.5*t*25/(4*35000.*t)\n",
+ "FA=S*t*tau_zx\n",
+ "tau_xy=s*1000.*a*t*27.5/(4.*35000.*t)\n",
+ "FB=tau_xy*t*S\n",
+ "##Results\n",
+ "print'%s %.2f %s'%('case A \\n F = ',FA,' kg')\n",
+ "print'%s %.2f %s'%('\\n case B \\n F= ',FB,' kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "case A \n",
+ " F = 920.76 kg\n",
+ "\n",
+ " case B \n",
+ " F= 1104.91 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex23-pg288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate shear centre\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "h=40. ##cm\n",
+ "b=10. ##cm\n",
+ "t1=1.4 ##cm\n",
+ "t2=0.8 ##cm\n",
+ "Ixx=13989.5 ##cm^4\n",
+ "##calculations\n",
+ "e=b**2*h**2*t1/(4.*Ixx)*(1-t1/h-t1/b+t1**2/(b*h))*(1-t1/h)\n",
+ "##Results\n",
+ "print'%s %.2f %s'%('Shear center: \\n e = ',e,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear center: \n",
+ " e = 3.21 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex33-pg303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate deflection\n",
+ "##initialization of new variables\n",
+ "import math\n",
+ "L=50. ##cm\n",
+ "k=15. ##cm\n",
+ "I=200. ##cm^4\n",
+ "II=40. ##cm^4\n",
+ "d=30. ##cm\n",
+ "Pd=40. ##cm\n",
+ "E=0.6667*10**6 ##kg/cm^2\n",
+ "##calculations\n",
+ "delta=(100.*10./2*16.33+L*d*35+L*k/2.*25+d*k/2.*45)\n",
+ "delta1=delta/E\n",
+ "##Results\n",
+ "print'%s %.2f %s'%('deflection = ',delta1*10**1,'mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "deflection = 1.20 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex39-pg312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#design suitable I design section\n",
+ "W=1\n",
+ "L=6\n",
+ "f=1650\n",
+ "Z=305.9\n",
+ "w=31.2\n",
+ "z=8\n",
+ "t=0.65\n",
+ "d=22.5\n",
+ "M=4.5*10**5\n",
+ "##part(i)\n",
+ "#maximum B.M\n",
+ "BM= W*L**2/(z)\n",
+ "SF=W*L/2\n",
+ "print'%s %.2f %s %.2f %s '%('Bm=',Bm,''and '',SF,'')\n",
+ "#part(ii)\n",
+ "Z=M/f\n",
+ "#part(iii)\n",
+ "#for ISMB 225 having weight 31.2\n",
+ "Z1=305.9\n",
+ "print'%s %.2f %s'%('z=',Z1,'')\n",
+ "#Additional Beam\n",
+ "Bm=w*12/z\n",
+ "Z2=Bm/f\n",
+ "TZ=Z+Z2\n",
+ "print'%s %.2f %s'%('TZ=',TZ,'')\n",
+ "#thickness\n",
+ "WA=t*d\n",
+ "print'%s %.2f %s'%('WA=',WA,'')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bm= 4.00 3.00 \n",
+ "z= 305.90 \n",
+ "TZ= 272.76 \n",
+ "WA= 14.62 \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter8.ipynb b/Solid_Mechanics/Chapter8.ipynb
new file mode 100755
index 00000000..775173bb
--- /dev/null
+++ b/Solid_Mechanics/Chapter8.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b049344bcc3af81ce18460de8739e9d947ca6c5dfb7b480458a55593ff36a6f2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Stability of Equlibrium-Columns"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate maximum axial load and for both ends and and fixed and one fix and one pinned\n",
+ "## initialization of variables\n",
+ "import math\n",
+ "L=5. ##m\n",
+ "D=20. ##cm\n",
+ "t=1. ##cm\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "I=2502. ##cm^4\n",
+ "L=5*100. ##cm\n",
+ "## calculations\n",
+ "P=E*I/(4.*L**2)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The maximal axial load taken is ',P/100,' Tonne')\n",
+ "print'%s %.2f %s'%('\\n for both ends pinned, P=',P*4/100,' Tonne',)\n",
+ "print'%s %.2f %s'%('\\n for both ends fixed, P=',P*16/100,' Tonne')\n",
+ "print'%s %.2f %s'%('\\n for one end fixed, one pinned, P=',P*4*2.13/100,' Tonne')\n",
+ "\n",
+ "## Evaluation of critical load (P) in the text is wrong\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximal axial load taken is 50.04 Tonne\n",
+ "\n",
+ " for both ends pinned, P= 200.16 Tonne\n",
+ "\n",
+ " for both ends fixed, P= 800.64 Tonne\n",
+ "\n",
+ " for one end fixed, one pinned, P= 426.34 Tonne\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex2-pg331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate actual critical length ratio and critical length ratio \n",
+ "##initialization of variables\n",
+ "import math\n",
+ "E=2*10**6. ##kg/cm**2\n",
+ "sigma_y=2600. ##kg/cm**2\n",
+ "I=2502. ##cm**4\n",
+ "L=500. ##cm\n",
+ "A=59.7 ##cm**2\n",
+ "L_tcr=L/math.sqrt(I/A)\n",
+ "\n",
+ "print'%s %.2f %s'%('The actual critical length ratio is',L_tcr,'')\n",
+ "##case (b)\n",
+ "L_cr=math.sqrt(E*math.pi**2/sigma_y)\n",
+ "print('\\n case (b)')\n",
+ "print'%s %.2f %s'%('\\n The critical length ratio is ',L_cr,'')\n",
+ "\n",
+ "##case (a)\n",
+ "L_cr=math.sqrt(E*math.pi**2/(4.*sigma_y))\n",
+ "print('\\n case (a)')\n",
+ "print'%s %.2f %s'%('\\n The critical length ratio is ',L_cr,'')\n",
+ "\n",
+ "##case (c)\n",
+ "L_cr=math.sqrt(4.*E*math.pi**2./sigma_y)\n",
+ "print('\\n case (c)')\n",
+ "print'%s %.2f %s'%('\\n The critical length ratio is',L_cr,'')\n",
+ "\n",
+ "## case (d)\n",
+ "L_cr=math.sqrt(2.05*E*math.pi**2/sigma_y)\n",
+ "## Results\n",
+ "print('\\n case (d)')\n",
+ "print'%s %.2f %s'%('\\n The critical length ratio is ',L_cr,'')\n",
+ "print('\\n Only in case (a) actual ratio is more than critical ratio and material \\n remains elastic For cases (b), (c) and (d) critical length ratio is \\n much higher and hence the material yelds before crippling loads are reached')\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The actual critical length ratio is 77.23 \n",
+ "\n",
+ " case (b)\n",
+ "\n",
+ " The critical length ratio is 87.13 \n",
+ "\n",
+ " case (a)\n",
+ "\n",
+ " The critical length ratio is 43.57 \n",
+ "\n",
+ " case (c)\n",
+ "\n",
+ " The critical length ratio is 174.26 \n",
+ "\n",
+ " case (d)\n",
+ "\n",
+ " The critical length ratio is 124.75 \n",
+ "\n",
+ " Only in case (a) actual ratio is more than critical ratio and material \n",
+ " remains elastic For cases (b), (c) and (d) critical length ratio is \n",
+ " much higher and hence the material yelds before crippling loads are reached\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate crtical stress \n",
+ "##initialzation of variables\n",
+ "import math\n",
+ "h=3.5 ##m\n",
+ "A=22.4 ##cm**2\n",
+ "r=7.08 ##cm\n",
+ "E=2*10**6 ##kg/cm**2\n",
+ "Q=1/2.\n",
+ "## calculations\n",
+ "h=h*100.\n",
+ "Q1=(Q*h/r)**2\n",
+ "s_cr=E*math.pi**2/Q1\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The critical stress is ',s_cr,' kg/cm**2')\n",
+ "print('\\n This is much higher than yield stress for the material, \\n so the column will fail by yielding')\n",
+ "\n",
+ "print('rounding off errors in the text')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The critical stress is 32308.75 kg/cm**2\n",
+ "\n",
+ " This is much higher than yield stress for the material, \n",
+ " so the column will fail by yielding\n",
+ "rounding off errors in the text\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find crippling load\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "r_min=1.17 ##cm\n",
+ "A=17.21 ##cm^2\n",
+ "Q=1/2.\n",
+ "h=3.5 ##m\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "h=h*100.\n",
+ "## calculations\n",
+ "Q1=(Q*h/r_min)**2\n",
+ "s_cr=E*math.pi**2/Q1\n",
+ "P_cr=s_cr*A\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The crippling load is ',P_cr,' kg')\n",
+ "\n",
+ "## wrong calculations given in the text\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The crippling load is 15184.70 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#find safe load\n",
+ "L=2.5 ##m\n",
+ "A=6.02 ##cm^2\n",
+ "Q1=105.\n",
+ "s=796.5 ##kg/cm^2\n",
+ "## calculations\n",
+ "P=2*A*s\n",
+ "print'%s %.2f %s'%('The safe load is ',P,' kg')\n",
+ "## Results\n",
+ "## wrong calculations in the text\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe load is 9589.86 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Permissible load by secent and rankine gordon and parabolic formula\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "h=3.5 ##m\n",
+ "r_xx=7.08 ##cm\n",
+ "A=24.38 ##cm^2\n",
+ "Q=0.5\n",
+ "Q1=Q*h*100./r_xx\n",
+ "\n",
+ "##Permissible load by secent formula\n",
+ "P=1231.28*2*A\n",
+ "print'%s %.2f %s'%('Permissible load by secent formula: ',P,' kg')\n",
+ "\n",
+ "##Permissible load by Rankine-Gordon formula\n",
+ "P=1260./(1.+(24.75**2/18000.))*2*A\n",
+ "print'%s %.2f %s'%('\\n Permissible load by Rankine-Gordon formula: ',P,' kg')\n",
+ "\n",
+ "##Permissible load by parabolic formula\n",
+ "P=(1050-0.0233*Q1**2)*2*A\n",
+ "print'%s %.2f %s'%('\\n Permissible load by parabolic formula: ',P,' kg')\n",
+ "\n",
+ "##Permissible load by straight-line formula\n",
+ "P=(1120-Q1*4.8)*2*A\n",
+ "print'%s %.2f %s'%('\\n Permissible load by parabolic formula: ',P,' kg')\n",
+ "\n",
+ "print('Rounding off errors in the text')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Permissible load by secent formula: 60037.21 kg\n",
+ "\n",
+ " Permissible load by Rankine-Gordon formula: 59415.61 kg\n",
+ "\n",
+ " Permissible load by parabolic formula: 50503.89 kg\n",
+ "\n",
+ " Permissible load by parabolic formula: 48826.12 kg\n",
+ "Rounding off errors in the text\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/Chapter9.ipynb b/Solid_Mechanics/Chapter9.ipynb
new file mode 100755
index 00000000..ff92969f
--- /dev/null
+++ b/Solid_Mechanics/Chapter9.ipynb
@@ -0,0 +1,895 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9a9db8433ab57f1254bcf525f290f9e1ef0d063ac15516708405e3ee93106db3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Combined Stresses"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate values of R at A,B,C\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "##case (a)\n",
+ "A=72.9 ##cm^2\n",
+ "Iy=633 ##cm^4\n",
+ "Ix=1199. ##cm^4\n",
+ "t=24./(5.*Ix)+13.5/(5.*Iy)\n",
+ "r=1/(A*t)\n",
+ "print'%s %.2f %s'%('case (a) \\n r = ',r,' cm')\n",
+ "## case (b)\n",
+ "t=24./(5.*Ix)-13.5/(5.*Iy)\n",
+ "r=1/(A*t)\n",
+ "print'%s %.2f %s'%('\\n case (b) \\n r = ',r,' cm')\n",
+ "##case (c)\n",
+ "t=-24./(5.*Ix)+13.5/(5.*Iy)\n",
+ "r=1./(A*t)\n",
+ "print'%s %.2f %s'%('\\n case (a) \\n r =',r,' cm')\n",
+ "print'%s %.2f %s'%('\\n So the load is to be placed on the leg OD, at a distance of ',r,' cm from O' )\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "case (a) \n",
+ " r = 1.66 cm\n",
+ "\n",
+ " case (b) \n",
+ " r = -52.34 cm\n",
+ "\n",
+ " case (a) \n",
+ " r = 52.34 cm\n",
+ "\n",
+ " So the load is to be placed on the leg OD, at a distance of 52.34 cm from O\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate steel height and Width\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "b=14. ##cm\n",
+ "d=20. ##cm\n",
+ "rx=8.46 ##cm\n",
+ "ry=2.99 ##cm\n",
+ "## calculations\n",
+ "ex=2.*rx**2/d\n",
+ "ey=2*ry**2/b\n",
+ "h=2*ex\n",
+ "w=2*ey\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('for steel height=',h,' cm and width=',w,' cm')\n",
+ "## ISHB 225\n",
+ "b=22.5 ##cm\n",
+ "d=22.5 ##cm\n",
+ "rx=9.8 ##cm\n",
+ "ry=4.96 ##cm\n",
+ "## calculations\n",
+ "ex=2*rx**2/d\n",
+ "ey=2*ry**2/b\n",
+ "h=2*ex\n",
+ "w=2*ey\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('\\n for an ISHB height=',h,' cm and width=',w,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for steel height= 14.31 cm and width= 2.55 cm \n",
+ "\n",
+ " for an ISHB height= 17.07 cm and width= 4.37 cm \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Safe load\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "t=280. ##kg/cm^2\n",
+ "c=840. ##kg/cm^2\n",
+ "xbar=7.5 ##cm from AB\n",
+ "A=210. ##cm^2\n",
+ "## calculations\n",
+ "e=50.+xbar ##cm\n",
+ "Iyy=7433. ##cm^2\n",
+ "k=(1./210.+e*xbar/Iyy)\n",
+ "P=t/k\n",
+ "k1=(-1./210.+e*(xbar+5.)/Iyy)\n",
+ "P1=c/k1\n",
+ "P_safe=min(P1,P)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The safe load is ',P_safe,' kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe load is 4460.00 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte compression and tension\n",
+ "##initialization of the variables\n",
+ "import math\n",
+ "s=1.6 ##m\n",
+ "s1=4. ##m\n",
+ "pi=28. ##degrees\n",
+ "w=16. ##kg/m^2\n",
+ "p=100. ##kg/m^2\n",
+ "pl=20. ##cm\n",
+ "pb=10. ##cm\n",
+ "r=500. ##kg/m^3\n",
+ "## calculations\n",
+ "pi=pi*math.pi/180 ##radians\n",
+ "W=w*s+(r*pl*pb/(100.*100.))\n",
+ "P=p*s\n",
+ "L=P+W*math.cos(pi)\n",
+ "Mx=L*s1**2*100./8.\n",
+ "sigma_1=Mx*6./(pb*pl**2)\n",
+ "My=W*math.sin(pi)*s1**2*100./8.\n",
+ "sigma_2=My*6./(pl*pb**2)\n",
+ "sigma1=sigma_1+sigma_2\n",
+ "## results\n",
+ "print'%s %.2f %s %.2f %s '%('Due to bending in the noth the planes, D experiences maximum \\n compression of ',sigma1,' kg/cm^2 and B has maximum tension of ',sigma1,' kg/cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Due to bending in the noth the planes, D experiences maximum \n",
+ " compression of 67.46 kg/cm^2 and B has maximum tension of 67.46 kg/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate maximum stresses\n",
+ "##initialization of the problems\n",
+ "import math\n",
+ "s=1.6 ##m\n",
+ "s1=4. ##m\n",
+ "pi=28. ##degrees\n",
+ "w=16. ##kg/m^2\n",
+ "p=100. ##kg/m^2\n",
+ "pl=20. ##cm\n",
+ "pb=10. ##cm\n",
+ "r=500. ##kg/m^3\n",
+ "Zx=54.8 ##cm^3\n",
+ "Zy=3.9 ##cm^3\n",
+ "## calculations\n",
+ "pi=pi*math.pi/180. ##radians\n",
+ "W=w*s+8.1\n",
+ "P=p*s\n",
+ "L=P+W*math.cos(pi)\n",
+ "Mx=L*s1**2*100./8.\n",
+ "sigma_1=Mx/Zx\n",
+ "My=W*math.sin(pi)*s1**2*100./8.\n",
+ "sigma_2=My/Zy\n",
+ "sigma=sigma_1+sigma_2\n",
+ "## results\n",
+ "print'%s %.2f %s'%('Maximum stresses are ',sigma,' kg/cm^2, tension or compression')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum stresses are 1503.88 kg/cm^2, tension or compression\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate strain gauge \n",
+ "##initialization of variables\n",
+ "import math\n",
+ "s=1.6 ##m\n",
+ "s1=4. ##m\n",
+ "pi=28. ##degrees\n",
+ "w=16. ##kg/m^2\n",
+ "p=100. ##kg/m^2\n",
+ "pl=20. ##cm\n",
+ "pb=10. ##cm\n",
+ "r=500. ##kg/m^3\n",
+ "sg=5. ##cm\n",
+ "E=12*10**4\n",
+ "pi=pi*math.pi/180 ##radians\n",
+ "## calculations\n",
+ "W=w*s+(r*pl*pb/(100.*100.))\n",
+ "P=p*s\n",
+ "L=P+W*math.cos(pi)\n",
+ "Mx=L*s1**2*100/8.\n",
+ "sigma_1=Mx*6./(pb*pl**2)\n",
+ "My=W*math.sin(pi)*s1**2*100/8.\n",
+ "sigma_2=My*6./(pl*pb**2)\n",
+ "st=sigma_1*sg/10.\n",
+ "Ts=st-sigma_2\n",
+ "ez=Ts/E\n",
+ "## results\n",
+ "print'%s %.2e %s'%('The strain gauge, aligned to the z axis will give compression strain of ',ez,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The strain gauge, aligned to the z axis will give compression strain of 1.56e-04 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte bending stress and shearing stress\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "P=3. ##tonne/m\n",
+ "s=6. ##m\n",
+ "l=50. ##cm\n",
+ "b=20. ##cm\n",
+ "k=0.5 ##m\n",
+ "##calculations\n",
+ "R=P*s/2.\n",
+ "sf=R-k*P\n",
+ "bm=R*k-P*k**2/2.\n",
+ "tau_xy=1.5*sf*1000./(l*b)\n",
+ "tau_max=tau_xy\n",
+ "str=bm*s*10**5/(b*l*l)\n",
+ "\n",
+ "## consider the line a-a\n",
+ "\n",
+ "sigma_x=str*12.5/25.\n",
+ "sigma_y=0.\n",
+ "tau_xy=tau_xy*(1.-(12.5/25.)**2)\n",
+ "\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1/2*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1/2*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "\n",
+ "print'%s %.2f %s %.2f %s '%('For the line a-a the bending stress and shearing stress are \\n respectively ',sigma_x,' kg/cm^2'and'',tau_xy,'kg/cm^2 ')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n The principal stresses are ',sigma_1,' kg/cm^2 (tension)' and '',sigma_2,'kg/cm^2 (compression) ')\n",
+ "\n",
+ "##consider the line c-c\n",
+ "print'%s %.2f %s %.2f %s '%('\\n For the line c-c the bending stress and shearing stress are \\n respectively ',sigma_x,' kg/cm^2'and '',tau_xy,' kg/cm^2 ')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n The principal stresses are ',sigma_2,' kg/cm^2 (compression)'and '',sigma_1,' kg/cm^2 (tension) ')\n",
+ "\n",
+ "##for the line b-b\n",
+ "tau_xy=tau_max\n",
+ "sigma_x=0.\n",
+ "sigma_y=0.\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "## results\n",
+ "print'%s %.7f %s %.2f %s '%('\\n For the line b-b the bending stress and shearing stress are \\n respectively ',sigma_x,' kg/cm^2'and '',tau_xy,' kg/cm^2 ')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n The principal stresses are ',sigma_1,' kg/cm^2 (tension)'and'',sigma_2,' kg/cm^2 (compression) ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For the line a-a the bending stress and shearing stress are \n",
+ " respectively 24.75 8.44 kg/cm^2 \n",
+ "\n",
+ " The principal stresses are 20.81 3.94 kg/cm^2 (compression) \n",
+ "\n",
+ " For the line c-c the bending stress and shearing stress are \n",
+ " respectively 24.75 8.44 kg/cm^2 \n",
+ "\n",
+ " The principal stresses are 3.94 20.81 kg/cm^2 (tension) \n",
+ "\n",
+ " For the line b-b the bending stress and shearing stress are \n",
+ " respectively 0.0000000 11.25 kg/cm^2 \n",
+ "\n",
+ " The principal stresses are 11.25 -11.25 kg/cm^2 (compression) \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate tension and principal stress\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "P=3. ##tonne/m\n",
+ "s=6. ##m\n",
+ "l=50. ##cm\n",
+ "b=20. ##cm\n",
+ "k=0.5 ##m\n",
+ "##calculations\n",
+ "R=P*s/2.\n",
+ "sf=R-k*P\n",
+ "bm=R*k-P*k**2/2.\n",
+ "tau_xy=1.5*sf*1000./(l*b) ##max shear stress\n",
+ "tau_max=tau_xy \n",
+ "str=bm*s*10**5/(b*l*l) ##max bending stress\n",
+ "\n",
+ "## consider the line a-a\n",
+ "\n",
+ "sigma_x=str*12.5/25.\n",
+ "sigma_y=0.\n",
+ "tau_xy=tau_xy*(1.-(12.5/25.)**2)\n",
+ "\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1/2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2-math.sqrt((1/2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "\n",
+ "theta=1/2.*math.atan(2.*tau_xy/(sigma_x-sigma_y))*57.3\n",
+ "sigma_p=sigma_1/math.cos(theta)\n",
+ "P=sigma_p*2.*l*b/(3.*1000.)\n",
+ "print'%s %.2f %s'%('A prestressing force of ',P,' Tonne must be applied to balance the tension at a-a')\n",
+ "\n",
+ "##At bottom point D or C\n",
+ "pre_str=P*2.*1000./(l*b)\n",
+ "net=str-pre_str\n",
+ "print('\\n At bottom point D or C')\n",
+ "print'%s %.2f %s'%('\\n Net tension = ',net,' kg/cm^2 ')\n",
+ "\n",
+ "##consider the line b-b\n",
+ "pre_str=P\n",
+ "sigma_x=pre_str\n",
+ "sigma_y=0.\n",
+ "tau_xy=tau_max\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "print('\\n At section b-b')\n",
+ "print'%s %.2f %s '%('\\n pre-stress=',pre_str,' kg/cm^2')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n principal stresses are ',sigma_1,''and'',sigma_2,' kg/cm^2 ')\n",
+ "\n",
+ "##for the line c-c\n",
+ "sigma_x=str*12.5/25.\n",
+ "sigma_y=0.\n",
+ "tau_xy=tau_xy*(1-(12.5/25.)**2)\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "pre_str=pre_str/2.\n",
+ "net=sigma_1+pre_str\n",
+ "sigma_x=net\n",
+ "sigma_y=0.\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "## results\n",
+ "print('\\n At section c-c')\n",
+ "print'%s %.2f %s'%('\\n the direct stress is ',net,' kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n pre-stress =',pre_str,' kg/cm^2')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n principal stresses are',sigma_1,'kg/cm^2'and '',sigma_2,'kg/cm^2')\n",
+ "print('wrong calculations in the thext for some parts')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A prestressing force of -136.43 Tonne must be applied to balance the tension at a-a\n",
+ "\n",
+ " At bottom point D or C\n",
+ "\n",
+ " Net tension = 322.36 kg/cm^2 \n",
+ "\n",
+ " At section b-b\n",
+ "\n",
+ " pre-stress= -136.43 kg/cm^2 \n",
+ "\n",
+ " principal stresses are 0.92 -137.35 kg/cm^2 \n",
+ "\n",
+ " At section c-c\n",
+ "\n",
+ " the direct stress is -40.86 kg/cm^2\n",
+ "\n",
+ " pre-stress = -68.22 kg/cm^2\n",
+ "\n",
+ " principal stresses are 1.67 -42.54 kg/cm^2 \n",
+ "wrong calculations in the thext for some parts\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate sigma and Tau\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "b=2. ##cm\n",
+ "h=2. ##cm\n",
+ "T=2000. ##kg-cm\n",
+ "V=250. ##kg\n",
+ "M=2000. ##kg-cm\n",
+ "## calculations\n",
+ "Mmax=M*6./(b*h*b)\n",
+ "Vmax=3.*V/(2.*b*h)\n",
+ "Zt=0.208*b**2*h\n",
+ "Tmax=T/(Zt)\n",
+ "\n",
+ "sigma=Mmax\n",
+ "print('points A,B,')\n",
+ "print'%s %.2f %s'%('\\n sigma=',sigma,' kg/cm^2 (tension)')\n",
+ "print('\\n points C,D,')\n",
+ "print'%s %.2f %s'%('\\n sigma=',sigma,' kg/cm^2 (cmpression)')\n",
+ "tau=Vmax+Tmax\n",
+ "print('\\n point E')\n",
+ "print'%s %.2f %s'%('\\n tau=',tau,'kg/cm^2 shear')\n",
+ "tau=Vmax-Tmax\n",
+ "print'%s %.2f %s'%('\\n tau=',tau,' kg/cm^2 shear')\n",
+ "## at G\n",
+ "sigma_x=sigma\n",
+ "sigma_y=0.\n",
+ "tau_xy=Tmax\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "## results\n",
+ "print('\\n at point G')\n",
+ "print'%s %.2f %s'%('\\n sigma_1 = ',sigma_1,' kg/cm^2 (tension)')\n",
+ "print'%s %.2f %s'%('\\n sigma_2 = ',sigma_2,' kg/cm^2 (compression)')\n",
+ "\n",
+ "print('Question was asked only to find out at A,B,C,D,E,F and G')\n",
+ "print(' And in book Ans worng')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "points A,B,\n",
+ "\n",
+ " sigma= 1500.00 kg/cm^2 (tension)\n",
+ "\n",
+ " points C,D,\n",
+ "\n",
+ " sigma= 1500.00 kg/cm^2 (cmpression)\n",
+ "\n",
+ " point E\n",
+ "\n",
+ " tau= 1295.67 kg/cm^2 shear\n",
+ "\n",
+ " tau= -1108.17 kg/cm^2 shear\n",
+ "\n",
+ " at point G\n",
+ "\n",
+ " sigma_1 = 2166.73 kg/cm^2 (tension)\n",
+ "\n",
+ " sigma_2 = -666.73 kg/cm^2 (compression)\n",
+ "Question was asked only to find out at A,B,C,D,E,F and G\n",
+ " And in book Ans worng\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate total shear and bending stress and principal stress\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "w=10. ##cm\n",
+ "s=2.8 ##m\n",
+ "P=1. ##tonne\n",
+ "Ft=1.4 ##cm\n",
+ "Wt=0.8 ##cm\n",
+ "Ix=13989.5 ##cm^4\n",
+ "Z=699.5 ##cm^3\n",
+ "## calculations\n",
+ "BM= 2.8 \n",
+ "T=P*1000*8.21\n",
+ "SF=P*1000.\n",
+ "BS=BM*10**5/(Z)\n",
+ "sigmaXA=BS*18.6/20.\n",
+ "K=w*Ft*19.3+18.6*Wt*9.3\n",
+ "tau_xy_C=SF/(Ix*Wt)*K\n",
+ "tau_xy_A=tau_xy_C*(w*Ft*19.3)/K \n",
+ "tau_xy_B=tau_xy_A*0.5*Wt/w\n",
+ "sigmaXB=sigmaXA*19.3/20.\n",
+ "\n",
+ "tau_max=3*Ft*8210./(w*Ft**3+37.2*Wt**3)\n",
+ "tau_A=3*Wt*8210./(w*Ft**3+37.2*Wt**3)\n",
+ "\n",
+ "##For point A\n",
+ "Shear=tau_xy_A-tau_A\n",
+ "sigma_x=sigmaXA\n",
+ "sigma_y=0.\n",
+ "tau_xy=Shear\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "\n",
+ "print('For point A')\n",
+ "print'%s %.2f %s'%('\\n Total shear= ',Shear,' kg/cm^2 ')\n",
+ "print'%s %.2f %s'%('\\n Bending stress = ',sigma_x,' kg/cm^2 (Compr.)')\n",
+ "print'%s %.2f %s %.2f %s '%('\\n Principal stresses are ',sigma_1,'(tension)kg/cm^2 'and'' ,sigma_2,'(comp.) kg/cm^2 ')\n",
+ "\n",
+ "##For point B\n",
+ "print('\\n FOr point B')\n",
+ "print'%s %.2f %s'%('\\n Bending shear stress is ',tau_xy_B,' k/cm^2')\n",
+ "sigmaXB=BS*19.3/20.\n",
+ "sigma_x=sigmaXB\n",
+ "sigma_y=0.\n",
+ "tau_xy=tau_max\n",
+ "sigma_1=(sigma_x+sigma_y)/2.+math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "sigma_2=(sigma_x+sigma_y)/2.-math.sqrt((1./2.*(sigma_x-sigma_y))**2+tau_xy**2)\n",
+ "print'%s %.2f %s %.2f %s '%('\\n Principal stresses are ',sigma_1,' (tension) kg/cm^2'and'',sigma_2,' (comp.) kg/cm^2 ')\n",
+ "print('Answers in the text are approximations')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For point A\n",
+ "\n",
+ " Total shear= -399.72 kg/cm^2 \n",
+ "\n",
+ " Bending stress = 372.27 kg/cm^2 (Compr.)\n",
+ "\n",
+ " Principal stresses are 627.07 -254.80 (comp.) kg/cm^2 \n",
+ "\n",
+ " FOr point B\n",
+ "\n",
+ " Bending shear stress is 0.97 k/cm^2\n",
+ "\n",
+ " Principal stresses are 959.64 -573.36 (comp.) kg/cm^2 \n",
+ "Answers in the text are approximations\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte permissible stress and developed stress\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "b=10. ##cm\n",
+ "h=10. ##cm\n",
+ "P=5. ##tonne\n",
+ "e=1. ##cm\n",
+ "E=12*10**4 ##kg/cm^2\n",
+ "str=130. ## kg/cm^2\n",
+ "n=3.\n",
+ "L=2. ##m\n",
+ "## calculations\n",
+ "L=L*100. ##cm\n",
+ "Pcr=math.pi**2*E*b*h**3/(12.*L**2.)\n",
+ "Pcr=Pcr/1000.\n",
+ "Smax=-P*1000./(b*h)-(P*1000.*1.*5.*12./10**4)*1./(1.-(n*P/Pcr))\n",
+ "## results\n",
+ "print'%s %.2f %s'%('permissible stress = ',str,' kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n develoed stress = ',Smax,' kg/cm^2')\n",
+ "print('\\n Since it is below the permissible stress, the design is safe')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "permissible stress = 130.00 kg/cm^2\n",
+ "\n",
+ " develoed stress = -126.52 kg/cm^2\n",
+ "\n",
+ " Since it is below the permissible stress, the design is safe\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initializatio of variables\n",
+ "#calculate Smax and percentage error\n",
+ "## linked to 9.13\n",
+ "b=10. ##cm\n",
+ "h=10. ##cm\n",
+ "P=5. ##tonne\n",
+ "e=1. ##cm\n",
+ "E=12.*10**4 ##kg/cm^2\n",
+ "str=130. ## kg/cm^2\n",
+ "n=3.\n",
+ "L=2. ##m\n",
+ "## calculations\n",
+ "L=L*100. ##cm\n",
+ "Pcr=math.pi**2*E*b*h**3/(12*L**2)\n",
+ "Pcr=Pcr/1000.\n",
+ "Smax=-P*1000./(b*h)-(P*1000.*1.*5.*12./10**4)*1./(1.-(n*P/Pcr))\n",
+ "Smax=abs(Smax)\n",
+ "\n",
+ "rr=b*h**3/(12.*100.)\n",
+ "Smax_se=P*1000./(b*h)*(1+e*5/rr*(1./math.cos(math.pi/2.*math.sqrt(n*P/Pcr))))\n",
+ "Perror=(Smax-Smax_se)/Smax\n",
+ "Perror=Perror*100.\n",
+ "Perror=abs(Perror)\n",
+ "## results\n",
+ "print'%s %.2f %s'%('Using secent formula, stress obtained is ',Smax_se,' kg/cm^2')\n",
+ "print'%s %.2f %s'%('\\n hence, the percentage error ',Perror,'')\n",
+ "## approximate answees in the text\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Using secent formula, stress obtained is 138.45 kg/cm^2\n",
+ "\n",
+ " hence, the percentage error 9.43 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialization of variables\n",
+ "#calculate maximum stress developed\n",
+ "P=400. ##kg/m\n",
+ "L=10. ##m\n",
+ "F=10. ##tonne\n",
+ "n=3.\n",
+ "Ixx=5943.1 ##cm^4\n",
+ "A=52.03 ##cm^2\n",
+ "rx=10.69 ##cm\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "## calculations\n",
+ "Pcr=math.pi**2*E*Ixx/((L*100.)**2.)\n",
+ "Pcr=Pcr/1000.\n",
+ "e=P*L**2/(8*F*1000.)\n",
+ "g=e*12.5*100./rx**2\n",
+ "Smax=F*1000./A*(1.+g*1./(1-n*(F/Pcr)))\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The maximum stress developed is ',Smax,' kg/cm^2')\n",
+ "\n",
+ "print('approximate calculations involved in the text book')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress developed is 1604.54 kg/cm^2\n",
+ "approximate calculations involved in the text book\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15-pg383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate maximum stress developed\n",
+ "##initialization of variables\n",
+ "import math\n",
+ "## linked to 9_14\n",
+ "## calculations\n",
+ "P=400. ##kg/m\n",
+ "L=10. ##m\n",
+ "F=10. ##tonne\n",
+ "n=3.\n",
+ "Ixx=5943.1 ##cm^4\n",
+ "A=52.03 ##cm^2\n",
+ "rx=10.69 ##cm\n",
+ "E=2*10**6 ##kg/cm^2\n",
+ "Pcr=math.pi**2.*E*Ixx/((L*100.)**2)\n",
+ "Pcr=Pcr/1000.\n",
+ "e=P*L**2./(8.*F*1000.)\n",
+ "g=e*12.5*100./rx**2.\n",
+ "Smax=F*1000./A*(1+g*1./(1.+n*(F/Pcr)))\n",
+ "## results\n",
+ "print'%s %.2f %s'%('The maximum stress developed is ',Smax,' kg/cm^2')\n",
+ "\n",
+ "print('approximate answer in the text')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress developed is 1029.29 kg/cm^2\n",
+ "approximate answer in the text\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Solid_Mechanics/screenshots/Chapter7.png b/Solid_Mechanics/screenshots/Chapter7.png
new file mode 100755
index 00000000..eb687e30
--- /dev/null
+++ b/Solid_Mechanics/screenshots/Chapter7.png
Binary files differ
diff --git a/Solid_Mechanics/screenshots/Chapter8.png b/Solid_Mechanics/screenshots/Chapter8.png
new file mode 100755
index 00000000..c53211b6
--- /dev/null
+++ b/Solid_Mechanics/screenshots/Chapter8.png
Binary files differ
diff --git a/Solid_Mechanics/screenshots/Chapter9.png b/Solid_Mechanics/screenshots/Chapter9.png
new file mode 100755
index 00000000..c53211b6
--- /dev/null
+++ b/Solid_Mechanics/screenshots/Chapter9.png
Binary files differ