diff options
author | hardythe1 | 2015-06-11 17:31:11 +0530 |
---|---|---|
committer | hardythe1 | 2015-06-11 17:31:11 +0530 |
commit | 251a07c4cbed1a5a960f5ed416ce6ac13c8152b7 (patch) | |
tree | cb7f084fad6d7ee6ae89e586fad0e909b5408319 /Solid_Mechanics_by_S._M._A._Kazimi/Chapter3.ipynb | |
parent | 47d7279a724246ef7aa0f5359cf417992ed04449 (diff) | |
download | Python-Textbook-Companions-251a07c4cbed1a5a960f5ed416ce6ac13c8152b7.tar.gz Python-Textbook-Companions-251a07c4cbed1a5a960f5ed416ce6ac13c8152b7.tar.bz2 Python-Textbook-Companions-251a07c4cbed1a5a960f5ed416ce6ac13c8152b7.zip |
add books
Diffstat (limited to 'Solid_Mechanics_by_S._M._A._Kazimi/Chapter3.ipynb')
-rwxr-xr-x | Solid_Mechanics_by_S._M._A._Kazimi/Chapter3.ipynb | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/Solid_Mechanics_by_S._M._A._Kazimi/Chapter3.ipynb b/Solid_Mechanics_by_S._M._A._Kazimi/Chapter3.ipynb new file mode 100755 index 00000000..84972e67 --- /dev/null +++ b/Solid_Mechanics_by_S._M._A._Kazimi/Chapter3.ipynb @@ -0,0 +1,315 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:06d678b0a78daa39d2ccf83b1f54b7f750b3218b6d64413136cd6df094ffadaf"
+ },
+ "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-pg82"
+ ]
+ },
+ {
+ "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'%s %.2f %s'%('gammaxy',gammaxy,'')\n",
+ "print'%s %.2f %s'%('gammayz',gammayz,'')\n",
+ "print'%s %.2f %s'%('gammazx',gammazx,'')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gammaxy 0.02 \n",
+ "gammayz 0.00 \n",
+ "gammazx 0.03 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#show that they equal\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "## initialization of variables\n",
+ "\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": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "#find all the componetns of epsillon and the invariants of epsillon new\n",
+ "## initialization of variables\n",
+ "\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",
+ "[[ 1. 0. 0.]\n",
+ " [ 0. 1. 0.]\n",
+ " [ 0. 0. 1.]]\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": 3
+ },
+ {
+ "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",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "#find the principal strains\n",
+ "\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": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |