{
 "metadata": {
  "name": "",
  "signature": "sha256:0f76ab875ca060ae01401c82a1da2d22d8a282ed35f8427bc0bde26d91d200b1"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter16-Fatigue:Progressive Fracture"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex1-pg573"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#calculate the magnitude of Pma x based on factory of safety \n",
      "## initialization of variables\n",
      "import math\n",
      "Y=345. ##MPa\n",
      "S_u=586. ##MPa\n",
      "d=20. ##mm\n",
      "R=800. ##mm\n",
      "##part (a)\n",
      "SF=1.8\n",
      "N=1e+07\n",
      "S_am=290. ##MPa\n",
      "## P_max not yet known. take it as unity until an equation to be solved is encountered\n",
      "P_max=1.\n",
      "c=d/2.\n",
      "M=SF/2.*P_max*R ##M=T\n",
      "I=math.pi*c**4./4.\n",
      "Sigma=M*c/I\n",
      "J=math.pi*c**4./2.\n",
      "tau=M*c/J\n",
      "S_max=315. ##MPa\n",
      "## P_max^2*(3*(tau/S_max)^2+(Sigmaa/S_max)^2)=1\n",
      "P_max=math.sqrt(1./((3.*(tau/S_max)**2.)+(Sigma/S_max)**2.))\n",
      "P_min=-5./6.*P_max\n",
      "print('part(a)')\n",
      "print'%s %.2f %s'%('\\n P_max = ',P_max,'N')\n",
      "print'%s %.2f %s'%('\\n P_min = ',P_min,'N')\n",
      "\n",
      "\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "part(a)\n",
        "\n",
        " P_max =  259.75 N\n",
        "\n",
        " P_min =  -216.46 N\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex2-pg578"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#compute signitficant value of the stres and maximum utilizable stress \n",
      "## initialization of variables\n",
      "import math\n",
      "b=10. ##mm\n",
      "M=1.\n",
      "t=50. ##mm\n",
      "rho=5. ##mm\n",
      "h=25. ##mm\n",
      "c=60. ##mm\n",
      "SF=4.0\n",
      "##part (a)\n",
      "S_cc=2.8\n",
      "q=0.94\n",
      "S_ce=1.+q*(S_cc-1.)\n",
      "## M is not known. take it as unity\n",
      "S_n=3.*M*t/(2.*h*(c**3-t**3))\n",
      "S_e=S_ce*S_n\n",
      "print('part (a)')\n",
      "print'%s %.2f %s'%('\\n Effective stress = ',S_e,' M')\n",
      "##part (b)\n",
      "S_max=172. ##MPa\n",
      "S_w=S_max/SF\n",
      "M=S_w/S_e\n",
      "print('\\n part (b)')\n",
      "print'%s %.2f %s'%('\\n M =',M/10**3,' N.m')\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "part (a)\n",
        "\n",
        " Effective stress =  0.00  M\n",
        "\n",
        " part (b)\n",
        "\n",
        " M = 484.52  N.m\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex3-pg578"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#calculate the siginificant stress at the root of the notch \n",
      "## initialization of variables\n",
      "import math\n",
      "rho=0.75 #mm\n",
      "S_n=32.97e-06 ## M\n",
      "S_cc=6.1\n",
      "q=0.69\n",
      "S_ce=1.+q*(S_cc-1)\n",
      "## M is not known. take it as unity\n",
      "M=1.\n",
      "S_e=S_ce*S_n\n",
      "print('part (a)')\n",
      "print'%s %.2f %s'%('\\n Effective stress = ',S_e,' M')\n",
      "## part (b)\n",
      "S_w=43. ##MPa\n",
      "M=S_w/S_e\n",
      "print('\\n part (b)')\n",
      "print'%s %.2f %s'%('\\n M =',M/10**3,' N.m')\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "part (a)\n",
        "\n",
        " Effective stress =  0.00  M\n",
        "\n",
        " part (b)\n",
        "\n",
        " M = 288.61  N.m\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex4-pg579"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#calculate the  magnitude of produce fracture of the tension member\n",
      "## initialization of variables\n",
      "import math\n",
      "import numpy\n",
      "E=72. ##Gpa\n",
      "v=0.33\n",
      "S_u=470. ##MPa\n",
      "Y=330. ##MPa\n",
      "S_an=190. ##MPa\n",
      "N=1e+06 ##cycles\n",
      "T=10. ##mm\n",
      "D=59. ##mm\n",
      "d=50. ##mm\n",
      "t=3. ##mm\n",
      "rho=t\n",
      "P_min=20. ##kN\n",
      "q=0.95\n",
      "##calculations\n",
      "P_min=P_min*10**3\n",
      "S_cc=1.90\n",
      "S_ce=1.+q*(S_cc-1.)\n",
      "A=T*d\n",
      "S_nMin=P_min/A\n",
      "S_nam=S_an/S_ce\n",
      "##(S_na/S_nam)+(S_nm/S_u)^2=1\n",
      "## S_nm^2=S_nMin^2+S_na^2+2*S_na*S_nMin\n",
      "c=S_nMin**2-S_u**2\n",
      "a=.1\n",
      "b=2.*S_nMin+S_u**2./S_nam\n",
      "S_na=numpy.roots([a ,b ,c])\n",
      "S_na=S_na[1]\n",
      "## Solving gives S_na\n",
      "S_nm=S_nMin+S_na\n",
      "S_nMax=S_nMin+2.*S_na\n",
      "P_max=A*S_nMax\n",
      "S_max=S_nm+S_ce*S_na\n",
      "S_min=S_nm-S_ce*S_na\n",
      "print'%s %.2f %s'%('P_max = ',P_max/10**3,' kN')\n",
      "print'%s %.2f %s'%('\\n S_max = ',S_max,' MPa')\n",
      "print'%s %.2f %s'%('\\n S_min = ',S_min,' MPa')\n",
      "\n",
      "\n",
      "\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "P_max =  117.62  kN\n",
        "\n",
        " S_max =  318.71  MPa\n",
        "\n",
        " S_min =  -43.47  MPa\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex5-pg584"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#calculate the total strain and member cycles\n",
      "## initialization of variables\n",
      "import math\n",
      "## Equation given: E_l =E_p + E_e\n",
      "## E_p = 0.58*(2N)^-0.57\n",
      "## E_e=0.0062*(2N)^-0.09\n",
      "## Part (a)\n",
      "def fun(N):\n",
      "    f = 0.58*(2*N)**(-0.57)+0.0062*(2.*N)**(-0.09)-0.01;\n",
      "\n",
      "\n",
      "Nc=6390.\n",
      "N=Nc\n",
      "E_p = 0.58*(2*N)**-0.57\n",
      "E_e = 0.0062*(2*N)**-0.09\n",
      "E_l=E_p+E_e\n",
      "print('Part (a)')\n",
      "print'%s %.5f %s'%('\\n Total strain =  ',E_l,'')\n",
      "##part (b)\n",
      "N=1/2.*10**6\n",
      "E_p = 0.58*(2*N)**-0.57\n",
      "E_e = 0.0062*(2*N)**-0.09\n",
      "E_l=E_p+E_e\n",
      "print('\\n Part (b)')\n",
      "print'%s %.5f %s'%('\\n Total strain =  ',E_l,'')\n",
      "## part (c)\n",
      "E_l=0.01\n",
      "## In order to solve for N We have to solve a non-linear equation\n",
      "\n",
      "N = 1.;##initial guess\n",
      "f = 1.;##inital guess\n",
      "while(abs(- 0.0000002)>0.000001):\n",
      "    f = fun(N);    \n",
      "if f>0:\n",
      "\tN = N+1182;\n",
      "elif f<0:\n",
      "        N = N-1;\n",
      "    \n",
      "print'%s %.2f %s'%('\\n N = ',N,' cycles.');\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Part (a)\n",
        "\n",
        " Total strain =   0.00529 \n",
        "\n",
        " Part (b)\n",
        "\n",
        " Total strain =   0.00201 \n",
        "\n",
        " N =  1183.00  cycles.\n"
       ]
      }
     ],
     "prompt_number": 5
    }
   ],
   "metadata": {}
  }
 ]
}