diff options
Diffstat (limited to 'Fluid_Mechanics')
26 files changed, 5741 insertions, 10 deletions
diff --git a/Fluid_Mechanics/Chapter_1.ipynb b/Fluid_Mechanics/Chapter_1.ipynb new file mode 100755 index 00000000..a2dd3e26 --- /dev/null +++ b/Fluid_Mechanics/Chapter_1.ipynb @@ -0,0 +1,61 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:4a6f98ae985b8e1b6e034e8590a04939cfd519f9354fb6a0851df17e977d9e9f" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 1: Fluid and their Properties" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.1, Page 14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + " #Initialization of Variable\n", + "sigma = 72.7*10**-3; #Surface Tension\n", + "r = 1 *10**-3; #Radius of Bubble\n", + "\n", + " #Calculations\n", + "P = 2*sigma/r;\n", + "print \"Excess Pressure(N/m2) :\",P\n", + "\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Excess Pressure(N/m2) : 145.4\n" + ] + } + ], + "prompt_number": 1 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_10.ipynb b/Fluid_Mechanics/Chapter_10.ipynb new file mode 100755 index 00000000..510f6bab --- /dev/null +++ b/Fluid_Mechanics/Chapter_10.ipynb @@ -0,0 +1,341 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:03b40b6d5c44ff714aac13480905f296c46afa917e2740a687e8aa66bb21b428" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 10: Laminar and Turbulent Flows in Bounded System" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.1, Page 329" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import symbols,diff,solve\n", + "\n", + " #Initializing the variables\n", + "mu = 0.9;\n", + "rho = 1260;\n", + "g = 9.81;\n", + "x = 45; #theta in degrees\n", + "P1 = 250 * 10**3;\n", + "P2 = 80* 10**3;\n", + "Z1 = 1;\n", + "Z2 = 0; # datum\n", + "U = -1.5;\n", + "Y = 0.01;\n", + "\n", + " #Calculations\n", + "gradP1 = P1+ rho*g*Z1;\n", + "gradP2 = P2+ rho*g*Z2;\n", + "DPstar = (gradP1-gradP2)*math.sin(math.radians(x))/(Z1-Z2);\n", + "A = U/Y; # Coefficient U/Y for equation 10.6\n", + "B = DPstar/(2*mu) # Coefficient dp*/dx X(1/2mu) for equation 10.6\n", + "y = symbols('y')\n", + "v = round((A + B*Y),1)*y -round(B)*y**2\n", + "duBYdy = diff(v,y);\n", + "tau = 0.9*duBYdy;\n", + "stagPnts = solve(duBYdy,y)\n", + "ymax=stagPnts[0] #value of y where derivative vanishes.;\n", + "umax = (A + B*Y)*ymax + B*ymax**2; # Check the value there is slight mistake in books answer\n", + "def u(y):\n", + " z = (A + B*Y)*y -B*y**2;\n", + " return diff(z,y)\n", + "def dif(y):\n", + " return round((A + B*Y)) -2*round(B)*y\n", + "\n", + "taumax=abs(mu*dif(Y))\n", + "\n", + "print \"velocity distribution :\",v\n", + "print \"shear stress distribution :\",mu*dif(y)\n", + "print \"maximum flow velocity (m/s) :\",round(umax,2)\n", + "print \"Maximum Shear Stress (kN/m^2):\",(round(taumax)/1000)\n", + " \n", + "\n", + "print " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "velocity distribution : -71638.0*y**2 + 566.4*y\n", + "shear stress distribution : -128948.4*y + 509.4\n", + "maximum flow velocity (m/s) : 3.36\n", + "Maximum Shear Stress (kN/m^2): 0.78\n", + "\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.2, Page 335" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "mu = 0.9;\n", + "rho = 1260;\n", + "d = 0.01;\n", + "Q = 1.8/60*10**-3; #Flow in m**3 per second\n", + "l = 6.5;\n", + "ReCrit = 2000;\n", + " #Calculations\n", + "A = (math.pi*d**2)/4;\n", + "MeanVel = Q/A;\n", + "Re = rho*MeanVel*d/mu/10; # Check properly the answer in book there is something wrong\n", + "Dp = 128*mu*l*Q/(math.pi*d**4)\n", + "Qcrit = Q*ReCrit/Re*10**3;\n", + "\n", + "print \"Pressure Loss (kN/m2) :\",round(Dp/1000,0)\n", + "print \"Maximum Flow rate (litres/s) :\",round(Qcrit,0)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure Loss (kN/m2) : 715.0\n", + "Maximum Flow rate (litres/s) : 112.0\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.3, Page 341" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "mu = 1.14*10**-3;\n", + "rho = 1000;\n", + "d = 0.04;\n", + "Q = 4*10**-3/60; #Flow in m**3 per second\n", + "l = 750;\n", + "ReCrit = 2000;\n", + "g = 9.81;\n", + "k = 0.00008; # Absolute Roughness\n", + "\n", + " #Calculations\n", + "A = (math.pi*d**2)/4;\n", + "MeanVel = Q/A;\n", + "Re = rho*MeanVel*d/mu;\n", + "Dp = 128*mu*l*Q/(math.pi*d**4);\n", + "hL = Dp/(rho*g);\n", + "f = 16/Re;\n", + "hlDa = 4*f*l*MeanVel**2/(2*d*g); # By Darcy Equation\n", + "Pa = rho*g*hlDa*Q;\n", + "\n", + " #Part(b)\n", + "Q = 30*10**-3/60; #Flow in m**3 per second\n", + "MeanVel = Q/A;\n", + "Re = rho*MeanVel*d/mu;\n", + "RR = k/d; # relative roughness\n", + "f = 0.008 #by Moody diagram for Re = 1.4 x 10**4 and relative roughness = 0.002\n", + "hlDb = 4*f*l*MeanVel**2/(2*d*g); # By Darcy Equation\n", + "Pb = rho*g*hlDb*Q;\n", + "\n", + "\n", + "print \"!---- Case (a) ----!\\n\",\"Head Loss(mm) :\",round(hlDa*1000,1)\n", + "print \"Power Required (W) :\",round(Pa,4)\n", + "print \"\\n!---- Case (b) ----!\\n\",\"Head Loss(m) :\",round(hlDb,2)\n", + "print \"Power Required (W) :\",round(Pb,0)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "!---- Case (a) ----!\n", + "Head Loss(mm) : 92.5\n", + "Power Required (W) : 0.0605\n", + "\n", + "!---- Case (b) ----!\n", + "Head Loss(m) : 4.84\n", + "Power Required (W) : 24.0\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.4, Page 343" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "w = 4.5;\n", + "d = 1.2 ;\n", + "C = 49;\n", + "i = 1/800;\n", + "\n", + " #Calculations\n", + "A = d*w;\n", + "P = 2*d + w;\n", + "m = A/P;\n", + "v = C*(m*i)**0.5;\n", + "Q = v*A;\n", + "\n", + "print \"Mean Velocity (m/s):\",round(v,2)\n", + "print \"Discharge (m3/s) :\",round(Q,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean Velocity (m/s): 1.53\n", + "Discharge (m3/s) : 8.28\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.5, Page 348" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import sympy\n", + "from sympy import symbols\n", + "\n", + " #Initializing the variables\n", + "r,R = symbols('r R')\n", + "\n", + "#Calculations\n", + "rbyR=round((1-(49/60)**7),3)\n", + "r = (rbyR)*R \n", + "\n", + "#Result\n", + "print \"radius at which actual velocity is equal to mean velocity is\",r" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "radius at which actual velocity is equal to mean velocity is 0.758*R\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.7, Page 355" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "d1 = 0.140;\n", + "d2 = 0.250;\n", + "DpF_DpR = 0.6; #Difference in head loss when in forward and in reverse direction\n", + "K = 0.33 #From table\n", + "g = 9.81;\n", + " #Calculations\n", + "ratA = (d1/d2)**2;\n", + "v =(DpF_DpR*2*g/((1-ratA)**2-K))**0.5;\n", + "\n", + "print \"Velocity (m/s):\",round(v,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity (m/s): 9.13\n" + ] + } + ], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_11.ipynb b/Fluid_Mechanics/Chapter_11.ipynb new file mode 100755 index 00000000..ac453318 --- /dev/null +++ b/Fluid_Mechanics/Chapter_11.ipynb @@ -0,0 +1,120 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:8adfc21cf4552e14b563ca7c0f2e56ece56cd7f1691cf9486f2cfbd789df7be1" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 11: Boundary Layer" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.1, Page 383" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "rho = 860;\n", + "v = 10**-5;\n", + "Us = 3;\n", + "b = 1.25;\n", + "l = 2;\n", + "\n", + " #Calculations\n", + "x = 1; # At x =1 \n", + "Rex = Us*x/v;\n", + "ReL = Us*l/v ;\n", + "mu = rho*v;\n", + "T0 = 0.332*mu*Us/x*Rex**0.5;\n", + "Cf = 1.33*ReL**-0.5;\n", + "F = rho*Us**2*l*b*Cf ;\n", + "print \"shear stress (N/m^2) :\" ,round(T0,1)\n", + "print \"Total, double-sided resistance of the plate (N) :\",round(F,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "shear stress (N/m^2) : 4.7\n", + "Total, double-sided resistance of the plate (N) : 33.224\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.2, Page 387" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Us = 6;\n", + "b = 3;\n", + "l = 30;\n", + "rho = 1000;\n", + "mu = 10**-3;\n", + "T = 20+273; # Temperature in Kelvin\n", + "\n", + " #Calculations\n", + " \n", + "ReL = rho*Us*l/mu; \n", + "Cf = 0.455*math.log10(ReL)**-2.58 ;\n", + "\n", + "F = rho*Us**2*l*b*Cf ;\n", + "Lt = 10**5*mu/(rho*Us); # Assuming transition at Rel = 10**5\n", + "\n", + "print \"Drag Force (kN) :\", round(F/1000,2)\n", + "print \"Transition length (m) :\",round(Lt,4)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Drag Force (kN) : 6.36\n", + "Transition length (m) : 0.0167\n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_12.ipynb b/Fluid_Mechanics/Chapter_12.ipynb new file mode 100755 index 00000000..745a2241 --- /dev/null +++ b/Fluid_Mechanics/Chapter_12.ipynb @@ -0,0 +1,319 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:24438326f2aac267ced1e2e3aa21e094819eefb50d5f8862608b62208400992d" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 12: Incompressible Flow around a Body" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.1, Page 399" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "x =35;\n", + "T = 50;\n", + "m = 1;\n", + "g =9.81;\n", + "rho = 1.2;\n", + "A = 1.2;\n", + "U0 = 40*1000/3600; # Velocity in m/s\n", + "\n", + " #Calculations\n", + "L = T*math.sin(math.radians(x))+m*g;\n", + "D =T*math.cos(math.radians(x));\n", + "Cl = 2*L/(rho*U0**2*A);\n", + "Cd = 2*D/(rho*U0**2*A); \n", + "\n", + "print \"Lift Coefficient :\",round(Cl,3)\n", + "print \"Drag Coefficient :\",round(Cd,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Lift Coefficient : 0.433\n", + "Drag Coefficient : 0.461\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.2, Page 406" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Vp =12;\n", + "lp = 40;\n", + "lm = 1;\n", + "As = 2500;\n", + "Dm = 32;\n", + "rhoP = 1025;\n", + "rhoM = 1000;\n", + "Ap = As;\n", + "\n", + " #Calculations\n", + "Am = As/40**2;\n", + "Vm = round(Vp*(lm/lp)**0.5,2);\n", + "Dfm = round(3.7*Vm**1.95*Am,1);\n", + "Rm = Dm - Dfm;\n", + "Rp = Rm *(rhoP/rhoM)*(lp/lm)**2*(Vp/Vm)**2;\n", + "Dfp = 2.9*Vp**1.8*Ap;\n", + "Dp = Rp + Dfp;\n", + "\n", + "print \"Expected total resistance (kN) :\",round(Dp/1000,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Expected total resistance (kN) : 1407.07\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.3, Page 410" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "U0 = 80*1000/3600;\n", + "d = 0.02;\n", + "rho =1.2;\n", + "mu = 1.7*10**-5;\n", + "A = 0.02*500; # Projected area of wire\n", + "N = 20; # No of cables\n", + "\n", + " #Calculations\n", + "Re = rho*U0*d/mu;\n", + "Cd = 1.2 # From figure 12.10 for given Re; \n", + "D = 0.5*rho*Cd*A*U0**2\n", + "F = N*D; \n", + "f = 0.198*(U0/d)*(1-19.7/Re);\n", + "\n", + "print \"Total force on tower (kN) :\",round(F/1000,2)\n", + "print \"Frequency (Hz) :\",round(f,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total force on tower (kN) : 71.11\n", + "Frequency (Hz) : 219.9\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.4, Page 415" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "mu = 0.03;\n", + "d = 10**-3;\n", + "rhoP = 1.1*10**3;\n", + "g = 9.81;\n", + "rho0 = 0.9*10**3;\n", + " #Calculations\n", + "B = 18*mu/(d**2*rhoP);\n", + "t = round(4.60/B,4);\n", + "Vt = round(d**2*(rhoP - rho0)*g/(18*mu),5);\n", + "Re = rho0*Vt*d/mu;\n", + "\n", + "print \"Time taken by the particle take to reach 99 per cent of its terminal velocity (s):\",t\n", + "print \"\\nReynolds No corrosponding to the velocity :\",Re" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Time taken by the particle take to reach 99 per cent of its terminal velocity (s): 0.0094\n", + "\n", + "Reynolds No corrosponding to the velocity : 0.1089\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.5, Page 417" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "muO = 0.0027;\n", + "Vt = 3*10**-3;\n", + "rhoW = 1000;\n", + "rhoP = 2.4*rhoW;\n", + "rhoO = 0.9*rhoW;\n", + "g = 9.81;\n", + "muA = 1.7*10**-5;\n", + "rhoA = 1.3;\n", + "\n", + " #Calculations\n", + "d = (18*muO*Vt/(rhoP-rhoO)/g)**0.5;\n", + "Re = Vt*d*rhoO/muO;\n", + "\n", + " #Movement of particle in upward direction\n", + "if(Re < 1):\n", + " v = 0.5;\n", + " \n", + " Re=5; # from fig 12.15\n", + " vt = muA*Re/(rhoA*d);\n", + " u = vt+v;\n", + " print \"Velocity of air stream blowing vertically up (m/s) :\",round(u,3) \n", + "else:\n", + " print \"strokes law is not valid\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity of air stream blowing vertically up (m/s) : 1.157\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.6, Page 429" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "c = 2;\n", + "s = 10;\n", + "rho = 5.33;\n", + "rho_ellip = 1.2;\n", + "D = 400;\n", + "L = 45000;\n", + "scale = 20;\n", + "U_windTunnel = 500;\n", + "U_proto = 400*1000/3600;\n", + "\n", + " #Calculations\n", + "A = c*s;\n", + "U_model = U_windTunnel/scale;\n", + "Cd = D/(0.5*rho*U_model**2*A);\n", + "Cl = L/(0.5*rho_ellip*U_proto**2*A); # Considering elliptical Lift model\n", + "Cdi = Cl**2/(math.pi*s/c); # Aspect Ratio = s/c \n", + "Cdt = Cd + Cdi;\n", + "Dw = 0.5*Cdt*rho_ellip*U_proto**2*A;\n", + "print \"Total drag on full sized wing (kN) :\",round(Dw/1000,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total drag on full sized wing (kN) : 2.65\n" + ] + } + ], + "prompt_number": 6 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_13.ipynb b/Fluid_Mechanics/Chapter_13.ipynb new file mode 100755 index 00000000..664b4abf --- /dev/null +++ b/Fluid_Mechanics/Chapter_13.ipynb @@ -0,0 +1,142 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:1f446f61d8838d40d2e31fd72ef3a0bc1e1a7f291c54a48c1366aef232ac3797" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 13: Compressible Flow around a Body" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 13.1, Page 444" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "rho0 = 1.8;\n", + "R = 287;\n", + "T = 75+273; # Temperature in kelvin \n", + "gma = 1.4; \n", + "Ma = 0.7;\n", + "\n", + " #Calculations\n", + "P0 = rho0*R*T;\n", + "c = (gma*R*T)**0.5;\n", + "V0 = Ma*c;\n", + "Pt = (P0**((gma-1)/gma) + rho0*((gma-1)/gma)*(V0**2/(2*P0**(1/gma))))**(gma/(gma-1));\n", + "rhoT = rho0*(Pt/P0)**(1/gma);\n", + "Tt = Pt/(R*rhoT)-273;\n", + "\n", + "print \"Staganation Pressure (kN/m2 ) :\",round(Pt/1000,1)\n", + "print \"Temperature (Degree Celcius) :\",round(Tt,1)\n", + "print \"Density of airstream (kg/m3) :\",round(rhoT,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Staganation Pressure (kN/m2 ) : 249.4\n", + "Temperature (Degree Celcius) : 109.1\n", + "Density of airstream (kg/m3) : 2.274\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 13.2, Page 454" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "R = 287;\n", + "T = 28+273;\n", + "gma = 1.4;\n", + "P = 1.02*10**5;\n", + "rhoHg = 13.6*10**3;\n", + "g = 9.81;\n", + "\n", + " #Calculations\n", + " #Case(a)\n", + "U0 = 50;\n", + "c = (gma*R*T)**0.5;\n", + "Ma = U0/c;\n", + "rho = P/(R*T);\n", + "DelP = 0.5*rho*U0**2; #Pt-P\n", + "ha = DelP/(rhoHg*g);\n", + "\n", + " #Case(b)\n", + "U0 = 250;\n", + "Ma = U0/c;\n", + "Pt = P*(1+(gma-1)*Ma**2/2)**(gma/(gma-1)); \n", + "DelP = Pt-P\n", + "hb = DelP/(rhoHg*g);\n", + "\n", + " #Case (c)\n", + "U0 = 420;\n", + "Ma1 =U0/c;\n", + "P2 = P*((2*gma/(gma+1))*Ma1**2 - ((gma-1)/(gma+1)));\n", + "N = Ma1**2 +2/(gma-1); # Numerator\n", + "D = 2*gma*Ma1**2/(gma-1)-1;\n", + "Ma2 = (N/D)**0.5;\n", + "Pt2 = P2*(1+(gma-1)*Ma2**2/2)**(gma/(gma-1));\n", + "hc = (Pt2-P2)/(rhoHg*g) ; \n", + "\n", + "print \"Difference in height of mercury column in case (a) in mm :\",round(ha*1000,2)\n", + "print \"Difference in height of mercury column in case (b) in mm :\",round(hb*1000,1)\n", + "print \"Difference in height of mercury column in case (c) in mm :\",round(hc*1000,0)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Difference in height of mercury column in case (a) in mm : 11.06\n", + "Difference in height of mercury column in case (b) in mm : 314.2\n", + "Difference in height of mercury column in case (c) in mm : 684.0\n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_14.ipynb b/Fluid_Mechanics/Chapter_14.ipynb new file mode 100755 index 00000000..2e55c7c8 --- /dev/null +++ b/Fluid_Mechanics/Chapter_14.ipynb @@ -0,0 +1,365 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:75785fe7e68940de5df81a115443b8d5c78793053ae837735e58f86a072c05cc" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 14: Steady Incompressible Flow in Pipe and Duct System" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.1, Page 468" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "L1 = 5;\n", + "L2 = 10;\n", + "d = 0.1;\n", + "f = 0.08;\n", + "Za_Zc = 4; #difference in height between A and C \n", + "g = 9.81 ;\n", + "Pa = 0;\n", + "Va = 0; \n", + "Za_Zb = -1.5;\n", + "V = 1.26;\n", + "rho = 1000;\n", + "\n", + " #Calculations\n", + "D = 1.5 + 4*f*(L1+L2)/d ; # Denominator in case of v**2 \n", + "v = (2*g*Za_Zc/D)**0.5;\n", + "Pb = rho*g*Za_Zb - rho*V**2/2*(1.5+4*f*L1/d);\n", + "print \"Pressure in the pipe at B (kN/m2):\",round(Pb/1000,2)\n", + "print \"Mean Velocity at C (m/s) :\",round(v,2)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure in the pipe at B (kN/m2): -28.61\n", + "Mean Velocity at C (m/s) : 1.26\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.3, Page 473" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from sympy import symbols,solve\n", + "import sympy\n", + "\n", + "\n", + " #Initializing the variables\n", + "Za_Zb = 10;\n", + "f = 0.008;\n", + "L = 100;\n", + "d1 = 0.05;\n", + "g = 9.81;\n", + "d2 = 0.1;\n", + "\n", + " #Calculations\n", + "\n", + "def flowRate(d):\n", + " D = 1.5 + 4*f*L/d ; # Denominator in case of v1**2\n", + " A = math.pi*d**2/4;\n", + " v = (2*g*Za_Zb/D)**0.5;\n", + " z = A*v;\n", + " return z \n", + "Q1 = flowRate(d1);\n", + "Q2 = flowRate(d2);\n", + "Q=round(Q1+Q2,4)\n", + "\n", + "\n", + "D=symbols('D')\n", + "roots=solve(241212*D**5 -3.2, D)\n", + "dia=roots[0]\n", + "\n", + "print \"Rate flow for pipe 1 (m^3/s) :\",round(Q1,4)\n", + "print \"Rate flow for pipe 2 (m^3/s) :\",round(Q2,4)\n", + "print \"Combined Rate flow (m^3/s) :\",round(Q,4)\n", + "print \"Diameter of single equivalent pipe (mm) :\",round(dia,3)*1000\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Rate flow for pipe 1 (m^3/s) : 0.0034\n", + "Rate flow for pipe 2 (m^3/s) : 0.019\n", + "Combined Rate flow (m^3/s) : 0.0224\n", + "Diameter of single equivalent pipe (mm) : 106.0\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.4, Page 476" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import solve,symbols\n", + "\n", + " #Initializing the variables\n", + "Za_Zb = 16;\n", + "Za_Zc = 24;\n", + "f = 0.01;\n", + "l1 = 120;\n", + "l2 = 60;\n", + "l3 = 40;\n", + "d1 = 0.12;\n", + "d2 = 0.075;\n", + "d3 = 0.060;\n", + "g = 9.81;\n", + " #Calculations\n", + "\n", + "v1=symbols('v1')\n", + "ash=solve(v1-0.3906*(g-1.25*v1**2)**0.5-0.25*(17.657-1.5*v1**2)**0.5,v1)\n", + "v1=round(abs(ash[0]),2)\n", + "Q1=math.pi/4*d1**2*v1\n", + "\n", + "v2=(g-1.25*v1**2)**0.5\n", + "Q2=math.pi/4*d2**2*v2\n", + "\n", + "v3=(17.657-1.5*v1**2)**0.5\n", + "Q3=math.pi/4*d3**2*v3\n", + "\n", + "print \"Flow rate in pipe 1 (m^3/s):\",round(Q1,4)\n", + "print \"Flow rate in pipe 2 (m^3/s):\",round(Q2,4)\n", + "print \"Flow rate in pipe 3 (m^3/s):\",round(Q3,4)\n", + "print \"continuity condition satisfied as Q1=Q2+Q3\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Flow rate in pipe 1 (m^3/s): 0.0206\n", + "Flow rate in pipe 2 (m^3/s): 0.0105\n", + "Flow rate in pipe 3 (m^3/s): 0.0101\n", + "continuity condition satisfied as Q1=Q2+Q3\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.5, Page 480" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "D = 0.3;\n", + "Q = 0.8;\n", + "rho = 1.2;\n", + "f = 0.008;\n", + "L_entry = 10;\n", + "L_exit = 30;\n", + "Lt = 20*D #Transition may be represented by a separation loss equivalent length of 20 * the approach duct diameter\n", + "K_entry = 4;\n", + "K_exit = 10\n", + "l = 0.4; # length of cross section\n", + "b = 0.2; # width of cross section\n", + "\n", + " #Calculations\n", + "A = math.pi*D**2/4;\n", + "Dp1 = 0.5*rho*Q**2/A**2*(K_entry + 4*f*(L_entry+Lt)/D);\n", + "area = l*b;\n", + "perimeter =2*(l+b);\n", + "m = area/perimeter;\n", + "Dp2 = 0.5*rho*Q**2/area**2*(K_exit + f*L_exit/m);\n", + "Dfan = Dp1+Dp2;\n", + "\n", + "print \"fan Pressure input (N/m2) :\",round(Dfan,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "fan Pressure input (N/m2) : 1254.6\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.6, Page 482" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "D = [0.15 , 0.3];\n", + "rho = 1.2;\n", + "f = 0.008;\n", + "L_entry = 10;\n", + "L_exit = 20;\n", + "Lt = 20*D[1] \n", + "K = 4;\n", + "Q1 = 0.2;\n", + "\n", + " #Calculations\n", + "Q2 = 4*Q1;\n", + "A=[0.0,0.0]\n", + "A[0] = math.pi*D[0]**2/4;\n", + "A[1] = math.pi*D[1]**2/4;\n", + "Dp1 = 0.5*rho*Q1**2/A[0]**2*(K + 4*f*L_entry/D[0]);\n", + "Dp2 = 0.5*rho*Q2**2/A[1]**2*(4*f*(L_exit + Lt)/D[1]);\n", + "Dfan = Dp1+Dp2;\n", + "\n", + "print \"fan Pressure input (N/m2) :\",round(Dfan,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "fan Pressure input (N/m2) : 684.51\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.7, Page 487" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from scipy.optimize import fsolve\n", + " \n", + " \n", + " \n", + " #Initializing the variables\n", + "d = [0.1 , 0.125, 0.15, 0.1, 0.1 ]; # Corrosponding to AA1B AA2B BC CD CF\n", + "l = [30 , 30 , 60, 15, 30]; # Corrosponding to AA1B AA2B BC CD CF\n", + "rho = 1.2;\n", + "f = 0.006;\n", + "Ha = 100;\n", + "Hf = 60;\n", + "He = 40;\n", + "K = [0.0, 0.0, 0.0, 0.0, 0.0]\n", + " #Calculations\n", + "for i in range(0,len(l)):\n", + " K[i] = f*l[i]/(3*d[i]**5);\n", + "\n", + "\n", + "K_ab = K[0]*K[1]/((K[0])**0.5+(K[1])**0.5)**2;\n", + "K_ac = K_ab + K[2];\n", + "Hc = (K_ac*Hf +K[4]*Ha/4)/(K_ac+K[4]/4);\n", + "Q = ((Ha - Hc)/K_ac)**0.5;\n", + "\n", + "def f(n):\n", + " z = He - Hc + (0.5*Q)**2 *(K[3]+(4000/n)**2);\n", + " return z\n", + "\n", + "n = fsolve(f,1);\n", + "\n", + "print \"total Volume flow rate (m3/s):\",round(Q, 4)\n", + "print \"Head at C (m) :\",round(Hc,2) \n", + "print \"Percentage valve opening (%) :\",round(n,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "total Volume flow rate (m3/s): 0.1016\n", + "Head at C (m) : 75.48\n", + "Percentage valve opening (%) : 38.58\n" + ] + } + ], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_15.ipynb b/Fluid_Mechanics/Chapter_15.ipynb new file mode 100755 index 00000000..95bd78ec --- /dev/null +++ b/Fluid_Mechanics/Chapter_15.ipynb @@ -0,0 +1,114 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:4f421cc7413696fe7c281427d95aff4b53c3ab081abe9cd6d31d1e2df1133e5a" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + " Chapter 15: Uniform Flows in Open Channels" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.1, Page 516" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "B =4;\n", + "D = 1.2;\n", + "C = 7.6;\n", + "n = 0.025;\n", + "s = 1/1800;\n", + "\n", + " #Calculations\n", + "W = B + 2*1.5*D;\n", + "A = D*(B+C)/2; # Area of parallelogram formed\n", + "P = B +2*1.2*(D**2+(1.5)**2)**0.5;\n", + "m =A/P;\n", + "i=s;\n", + "C = (23+0.00155/i+1/n)/(1+(23+0.00155/i)*n/(m)**0.5); # By Kutter formula\n", + "Q1 = C*A*(m*i)**0.5;\n", + "Q2 = A*(1/n)*m**(2/3)*(i)**0.5;\n", + "\n", + "print \"Q using Chezy formula with C determined from the Kutter formula (m^3/s) :\",round(Q1,2)\n", + "print \"Q using the Manning formula (m^3/s) :\",round(Q2,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Q using Chezy formula with C determined from the Kutter formula (m^3/s) : 5.65\n", + "Q using the Manning formula (m^3/s) : 5.69\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.2, Page 518" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "Q = 0.5;\n", + "C = 80;\n", + "i = 1/2000;\n", + "\n", + " #Calculations\n", + "\n", + "# A = D**2+(3/4)*D**2 = (7/4)*D**2\n", + "D = ((4/7)*(Q/C)*(2/i)**0.5)**(2/5)\n", + "\n", + "#Result\n", + "print \"Optimum depth = Optimum Width (in metres):\",round(D,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Optimum depth = Optimum Width (in metres): 0.552\n" + ] + } + ], + "prompt_number": 1 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_16.ipynb b/Fluid_Mechanics/Chapter_16.ipynb new file mode 100755 index 00000000..73f04778 --- /dev/null +++ b/Fluid_Mechanics/Chapter_16.ipynb @@ -0,0 +1,144 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:130e6e124bfc557e016f12e2356b74f1d97ea210c47b1944be1ebda3297e63a8" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 16: Non-Uniform Flow in Open Channels" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.2, Page 541" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "B = [1.4 ,0.9];\n", + "D = [0.6 ,0.32];\n", + "g = 9.81;\n", + "h = 0.03;\n", + "Z = 0.25; \n", + "\n", + " #Calculations\n", + "Q1 = B[1]*D[1]*(2*g*h/(1-(B[1]*D[1]/B[0]*D[0])**2))**0.5\n", + "E = D[0]-Z;\n", + "Q2 = 1.705*B[1]*E**1.5;\n", + "\n", + "print \"Volume flow rate (m3/s) :\",round(Q2,4) " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Volume flow rate (m3/s) : 0.3177\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.3, Page 546" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "a =0.5;\n", + "b = 0.5;\n", + "Dn = 1.2;\n", + "s = 1/1000;\n", + "C = 55;\n", + "g = 9.81;\n", + "\n", + " #Calculations\n", + "c = (1+a)/b; \n", + "QbyB = Dn*C*(Dn*s)**0.5;\n", + "q = QbyB;\n", + "Dc = (q**2/g)**(1/3);\n", + "\n", + "header = \"Mean Depth(Dm) Numenator Denominator\\t L\"\n", + "unit = \" (m) \\t \\t \\t \\t(m)\"\n", + "\n", + "m=[]\n", + "Dm=[]\n", + "N=[]\n", + "D=[]\n", + "Lm=[]\n", + "total=0\n", + "for c in range(7): \n", + " m.append(2.4-0.15*c);\n", + " Dm.append((m[c]+m[c]-0.15)/2); \n", + " N.append(1 - (Dc/Dm[c])**3) ; # Numerator\n", + " D.append(1 - (Dn/Dm[c])**3); # Denominator\n", + " Lm.append(150*(N[c]/D[c]));\n", + " total = total +Lm[c];\n", + "\n", + "print header\n", + "print unit\n", + "for c in range(7):\n", + " mm=str(Dm[c])+'\\t '+str(round(N[c],4))+' '+str(round(D[c],4))+' \\t'+str(round(Lm[c],2))\n", + " print mm\n", + " \n", + "print \"\\ndistance upstream covered (approx in m):\",round(total)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean Depth(Dm) Numenator Denominator\t L\n", + " (m) \t \t \t \t(m)\n", + "2.325\t 0.9576 0.8625 \t166.54\n", + "2.175\t 0.9482 0.8321 \t170.94\n", + "2.025\t 0.9358 0.7919 \t177.26\n", + "1.875\t 0.9192 0.7379 \t186.86\n", + "1.725\t 0.8962 0.6634 \t202.65\n", + "1.575\t 0.8636 0.5577 \t232.27\n", + "1.425\t 0.8159 0.4028 \t303.8\n", + "\n", + "distance upstream covered (approx in m): 1440.0\n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_17.ipynb b/Fluid_Mechanics/Chapter_17.ipynb new file mode 100755 index 00000000..2791e2c2 --- /dev/null +++ b/Fluid_Mechanics/Chapter_17.ipynb @@ -0,0 +1,274 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:c21785277c0a99c3eb4c310a9e20c477f6ab2a0a22da1b2d3844df1699a78d21" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 17: Compressible Flow in Pipes" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.1, Page 566" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import solve,symbols\n", + "\n", + " #Initializing the variables\n", + "g = 9.81;\n", + "rho = 1000;\n", + "rhoHg = 13.6*rho;\n", + "d1 = 0.075;\n", + "d2 = 0.025;\n", + "Pi = 0.250;\n", + "Pt = 0.150;\n", + "P_Hg = 0.760;\n", + "rho1 = 1.6;\n", + "gma = 1.4;\n", + "\n", + " #Calculations\n", + "P1 = (Pi+P_Hg)*rhoHg*g;\n", + "P2 = (Pt+P_Hg)*rhoHg*g;\n", + "rho2 = rho1*(P2/P1)**(1/gma);\n", + "V0=symbols('V0')\n", + "V1=symbols('V1')\n", + "Velo = solve([d2**2*V1*rho2-d1**2*V0*rho1,0.5*(V1**2 - V0**2)*((gma-1)/gma)*(rho2*rho1/(rho2*P1-rho1*P2))-1],[V0,V1])\n", + "s=(Velo[1])[0]\n", + "Flow = math.pi*d1**2/4*s;\n", + "\n", + "print \"Volume of flow (m3/s):\",round(Flow,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Volume of flow (m3/s): 0.06\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.2, Page 571" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Ma = 4;\n", + "gma = 1.4;\n", + "At = 500; # in mm\n", + "\n", + " #Calculations\n", + "N = 1 + (gma-1)*Ma**2/2;\n", + "D = (gma+1)/2 ;\n", + "#ratio of A/At ==R\n", + "R = round( (N/D)**((gma+1)/(2*(gma-1)))/Ma,2);\n", + "A=At*R\n", + "print \"Area of test section (mm^2):\",A" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Area of test section (mm^2): 5360.0\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.3, Page 575" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Ma1 = 2;\n", + "gma = 1.4;\n", + "T1 = 15+273; # In kelvin\n", + "P1 = 105; \n", + "\n", + " #Calculations\n", + "Ma2 = (((gma-1)*Ma1**2 +2)/(2*gma*Ma1**2-gma+1))**0.5;\n", + "P2 = P1*(1+gma*Ma1**2)/(1+gma*Ma2**2);\n", + "T2 = T1*(1 +(gma-1)/2*Ma1**2)/(1 +(gma-1)/2*Ma2**2);\n", + "\n", + "\n", + "print \"Mach No downstream shock wave :\",round(Ma2,3)\n", + "print \"Pressure (bar) of downstream shock wave :\",round(P2)\n", + "print \"Temperature (Degree C) of downstream shock wave :\",T2 - 273" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mach No downstream shock wave : 0.577\n", + "Pressure (bar) of downstream shock wave : 473.0\n", + "Temperature (Degree C) of downstream shock wave : 213.0\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.4, Page 581" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "gma = 1.4;\n", + "f = 0.00375;\n", + "d = 0.05;\n", + "\n", + " #Calculations\n", + "m = d/4;\n", + "def x(Ma):\n", + " A =(1 -Ma**2 )/(gma*Ma**2);\n", + " B = (gma+1)*Ma**2/(2+(gma-1)*Ma**2); \n", + " y = m/f*(A+ (gma+1)*math.log(B)/(2*gma));\n", + " return y\n", + "\n", + "X1 = x(0.2); # At entrance Ma = 0.2;\n", + "X06_X1 =x(0.6); # Section(b) Ma = 0.6;\n", + "\n", + "X06 = X1-X06_X1;\n", + "\n", + "print \"The Distance X1 at which the Mach number is unity (m) :\",round(X1,2)\n", + "print \"Distance from the entrance (m) :\",round(X06,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The Distance X1 at which the Mach number is unity (m) : 48.44\n", + "Distance from the entrance (m) : 46.81\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.5, Page 585" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from scipy.optimize import fsolve\n", + "\n", + " #Initializing the variables\n", + "gma = 1.4;\n", + "Q = 28/60; # m3/s\n", + "d = 0.1;\n", + "p1 = 200*10**3;\n", + "f = 0.004;\n", + "x_x1 = 60;\n", + "R = 287;\n", + "T = 15+273;\n", + "\n", + " #Calculations\n", + "A = math.pi*d**2/4;\n", + "m = d/4;\n", + "v1 = Q/A;\n", + "pa = p1*(1-f*(x_x1)*v1**2/(m*R*T))**0.5;\n", + "\n", + "def g(p):\n", + " A = (v1*p1)**2/(R*T)\n", + " B = f*A*x_x1/(2*m);\n", + " y = (p**2 - p1**2)/2 -A*math.log(p/p1) +B;\n", + " return y\n", + " \n", + "pb=fsolve(g,pa) # Guessing solution around pa\n", + "pb=pb[0]\n", + "print \"Pressure at the outlet, neglecting velocity changes (kN/m2) :\",round(pa/1000,1)\n", + "print \"Pressure at the outlet, allowing for velocity changes (kN/m2) :\",round(pb/1000,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure at the outlet, neglecting velocity changes (kN/m2) : 153.6\n", + "Pressure at the outlet, allowing for velocity changes (kN/m2) : 150.4\n" + ] + } + ], + "prompt_number": 6 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_2.ipynb b/Fluid_Mechanics/Chapter_2.ipynb new file mode 100755 index 00000000..835909e1 --- /dev/null +++ b/Fluid_Mechanics/Chapter_2.ipynb @@ -0,0 +1,493 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:56204579c9dff23fd133fce17f3b8e6b8ac01dae9f7f133693b953a21d5ed34c" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2: Pressure and Head" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.1, Page 30" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "z1 = 0; #Taking Ground as reference\n", + "z2 = -30 #Depth\n", + "rho = 1025 #Density\n", + "g = 9.81 #Acceleration due to gravity\n", + "\n", + " #Calculation\n", + "pressureIncrease = -rho*g*(z2-z1);\n", + "\n", + "print \"Increase in Pressure (KN/m2):\",round(pressureIncrease/1000,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Increase in Pressure (KN/m2): 301.7\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.2, Page 34" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "p1 = 22.4*10**3 #Initial Pressure\n", + "z1 = 11000 #Initial Height\n", + "z2 = 15000 #final Height\n", + "g = 9.81 #Acceleration due to gravity\n", + "R = 287; #Gas Constant\n", + "T = 273-56.6 #Temperature \n", + "\n", + " #Calculations\n", + "p2 = p1*math.exp(-g*(z2-z1)/(R*T));\n", + "rho2=p2/(R*T);\n", + " \n", + "print \"Final Pressure (kN/m2):\",round(p2/1000,2)\n", + "print \"Final Density (kg/m3):\",round(rho2,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Final Pressure (kN/m2): 11.91\n", + "Final Density (kg/m3): 0.192\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.3, Page 37" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "p1 = 101*10**3 #Initial Pressure\n", + "z1 = 0 #Initial Height\n", + "z2 = 1200 #Final Height\n", + "T1 = 15+273 #Initial Temperature\n", + "g = 9.81 #Acceleration due to gravity\n", + "gamma = 1.4 #Heat capacity ratio\n", + "R = 287 #Gas Constant\n", + "\n", + " #Calculations\n", + "p2 = p1*(1-g*(z2-z1)*(gamma-1)/(gamma*R*T1))**(gamma/(gamma-1));\n", + "dT_dZ = -(g/R)*((gamma-1)/gamma);\n", + "T2 = T1 + dT_dZ*(z2-z1);\n", + "rho2 = p2/(R*T2);\n", + "\n", + "print \"Final Pressure (kN/m2) :\",round(p2/1000,2)\n", + "print \"Temprature (in degree celcius):\",round(T2-273,1)\n", + "print \"Density (kg/m^3) :\",round(rho2,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Final Pressure (kN/m2) : 87.33\n", + "Temprature (in degree celcius): 3.3\n", + "Density (kg/m^3) : 1.101\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.4, Page 39" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "p1 = 101*10**3 #Initial Pressure\n", + "z1 = 0 #Initial Height\n", + "z2 = 7000 #Final Height\n", + "T1 = 15+273 #Initial Temperature\n", + "g = 9.81 #Acceleration due to gravity\n", + "R = 287 #Gas Constant\n", + "dT = 6.5/1000 #Rate of Variation of Temperature\n", + "\n", + " #Calculations\n", + "p2 = p1*(1-dT*(z2-z1)/T1)**(g/(R*dT));\n", + "T2 = T1 - dT*(z2-z1);\n", + "rho2 = p2/(R*T2);\n", + "\n", + "\n", + "print \"Final Pressure (kN/m^2) :\",round(p2/1000,2)\n", + "print \"Final Density (kg/m^3 ):\",round(rho2,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Final Pressure (kN/m^2) : 40.89\n", + "Final Density (kg/m^3 ): 0.588\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.5, Page 44" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "p = 350*10**3; #Gauge Pressure\n", + "pAtm = 101.3*10**3; #Atmospheric Pressure \n", + "rhoW = 1000; #Density of Water\n", + "sigma = 13.6; #Relative Density of Mercury\n", + "g = 9.81 #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "def Head(rho):\n", + " head = p/(rho*g);\n", + " return head\n", + "rhoM = sigma*rhoW;\n", + "pAbs = p + pAtm;\n", + "\n", + "print \"\\nPart(a)- Equivalent head of water (m) :\",round(Head(rhoW),2)\n", + "print \"\\nPart(b)- Equivalent head of water (m) :\",round(Head(rhoM),2)\n", + "print \"\\nAbsolute pressure (kN/m^2) :\",pAbs/1000" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "Part(a)- Equivalent head of water (m) : 35.68\n", + "\n", + "Part(b)- Equivalent head of water (m) : 2.62\n", + "\n", + "Absolute pressure (kN/m^2) : 451.3\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.6, Page 45" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " \n", + "\n", + " #Initializing the variables\n", + "rho = 10**3; #Density of water\n", + "h = 2; #Height\n", + "g = 9.81; #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "p=rho*h*g; \n", + "\n", + "print \"Gauge pressure (k/m2) :\",p/1000" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Gauge pressure (k/m2) : 19.62\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.7, Page 46" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "rho = 0.8*10**3; #Density of fluid\n", + "rhoM = 13.6*10**3; #Density of manometer liquid\n", + "g = 9.81 #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "def fluidPressure(h1,h2):\n", + " P = rhoM*g*h2-rho*g*h1;\n", + " return P\n", + "\n", + "p1=fluidPressure(0.5,0.9)/1000\n", + "p2=fluidPressure(0.1,-0.2)/1000\n", + "\n", + "print \"!-----Part (a)-----! \\nGauge pressure (kN/m2) :\",round(p1,2)\n", + "print \"\\n!-----Part (b)-----! \\nGauge pressure (kN/m2) :\",round(p2,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "!-----Part (a)-----! \n", + "Gauge pressure (kN/m2) : 116.15\n", + "\n", + "!-----Part (b)-----! \n", + "Gauge pressure (kN/m2) : -27.47\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.8, Page 47" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "rho = 10**3; #Density of fluid\n", + "rhoM = 13.6*10**3; #Density of manometer liquid\n", + "g = 9.81; #Acceleration due to gravity\n", + "H = 0.3; # Differnce in height = b-a as in text\n", + "h = 0.7;\n", + "\n", + " #Calculations\n", + "result = rho*g*H + h*g*(rhoM-rho);\n", + "\n", + "print \"Pressure difference (kN/m^2):\", round(result/1000,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure difference (kN/m^2): 89.467\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.9, Page 50" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "rho = 10**3; #Density of fluid\n", + "rhoM = 0.8*10**3; #Density of manometer liquid\n", + "g = 9.81; #Acceleration due to gravity\n", + "a = 0.25;\n", + "b = 0.15;\n", + "h = 0.3;\n", + " #Calculations\n", + "def PressureDiff(a,b,h,rho,rhoM):\n", + " P = rho*g*(b-a) + h*g*(rho-rhoM);\n", + " return P\n", + "print \"The presure difference,if the top of the manometer is filled with\"\n", + "print \"(a) air :\",PressureDiff(a,b,h,rho,0)/1000, \" N/m^2\"\n", + "print \"(b) oil of relative density 0.8. :\",PressureDiff(a,b,h,rho,rhoM), \"N/m^2\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The presure difference,if the top of the manometer is filled with\n", + "(a) air : 1.962 N/m^2\n", + "(b) oil of relative density 0.8. : -392.4 N/m^2\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.10, Page 54" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "phi = 30; #30 degree\n", + "h = 1.2 ; # Height of tank\n", + "l = 2; # Length of tank\n", + "\n", + " #Calculations\n", + "def SurfaceAngle(a,phi):\n", + " g=9.81; # m/s**2 \n", + " Theta = math.atan(-a*math.cos(math.radians(phi))/(g+a*math.sin(math.radians(phi)))); \n", + " return Theta\n", + "\n", + " #case (a) a = 4\n", + "\n", + "print \"ThetaA (degree) :\",round(180 + 180/math.pi*SurfaceAngle(4,phi),2)\n", + "\n", + " #Case (b) a = - 4.5\n", + "tanThetaR = math.tan((SurfaceAngle(-4.5,phi)));\n", + "\n", + "print \"\\nThetaR (degree) :\",round(SurfaceAngle(-4.5,phi)*180/math.pi,2)\n", + "\n", + "Depth = h - l*tanThetaR/2;\n", + "print \"\\nMaximum Depth of tank (m) :\",round(Depth,4)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "ThetaA (degree) : 163.65\n", + "\n", + "ThetaR (degree) : 27.27\n", + "\n", + "Maximum Depth of tank (m) : 0.6845\n" + ] + } + ], + "prompt_number": 4 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_20.ipynb b/Fluid_Mechanics/Chapter_20.ipynb new file mode 100755 index 00000000..f24f7af6 --- /dev/null +++ b/Fluid_Mechanics/Chapter_20.ipynb @@ -0,0 +1,115 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:042171008edad2dcea90c81036564026ff0ecc789ee16d3a2ccb0122fde141e9" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 20: Pressure Transient Theory and Surge Control" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.3, Page 692" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "c = 1250;\n", + "Dt = 0.02;\n", + "Dv = 0.5;\n", + "rho = 1000;\n", + "v =0.5;\n", + "\n", + " #Calculations\n", + "cDt = c*Dt;\n", + "Dp = rho*c*Dv;\n", + "DOv_DOt = Dv/Dt;\n", + "vDOv_DOt = v*Dv/cDt;\n", + "DOp_DOt = Dp/Dt;\n", + "vDOp_DOx = v*Dp/cDt;\n", + "Error = [vDOv_DOt*100/DOv_DOt ,vDOp_DOx*100/DOp_DOt];\n", + "print \"The percentage errors are :\",Error,\"\\nThese are very small hence can be neglected\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The percentage errors are : [0.04, 0.04] \n", + "These are very small hence can be neglected\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.5, Page 705" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "f = 0;\n", + "Atunnel = 1.227;\n", + "Ashaft = 12.57;\n", + "Q =2;\n", + "L = 200;\n", + "g = 9.81; \n", + "\n", + " #Calculations\n", + "Zmax = (Q/Ashaft)*(Ashaft*L/(Atunnel*g))**0.5;\n", + "T = 2*math.pi*(Ashaft*L/(Atunnel*g))**0.5;\n", + "\n", + "print \"Peak water level (m) :\",round(Zmax,3)\n", + "print \"Mass Oscillation Period (s) :\",round(T,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Peak water level (m) : 2.299\n", + "Mass Oscillation Period (s) : 90.8\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_22.ipynb b/Fluid_Mechanics/Chapter_22.ipynb new file mode 100755 index 00000000..2c113fed --- /dev/null +++ b/Fluid_Mechanics/Chapter_22.ipynb @@ -0,0 +1,191 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:783af12fd7d104e85c7e13e105c7550ca4a0a63a41968e5a9b0312d6fedb23a2" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 22: Theory of Rotodynamic Machine" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.1, Page 779" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "Q = 5;\n", + "R1 = 1.5/2;\n", + "R2 = 2/2; \n", + "w = 18;\n", + "rho = 1000;\n", + "rhoA = 1.2;\n", + "Hth = 0.017;\n", + "g=9.81;\n", + "\n", + " #Calculations\n", + "A = math.pi*(R2**2-R1**2);\n", + "Vf = Q/A;\n", + "Ut = w*R2;\n", + "Uh = w*R1;\n", + "B1t = math.atan(Vf/Ut);\n", + "B1h = math.atan(Vf/Uh);\n", + "E = Hth*rho/rhoA;\n", + "def Beta(u):\n", + " y = math.atan(Vf/(u-E*g/u));\n", + " return y\n", + "B2t = Beta(Ut);\n", + "B2h = Beta(Uh);\n", + "\n", + "print \"!----Blade Inlet Angles----!\"\n", + "print \"At tip (in degrees) :\",round(B1t*180/math.pi,1),\"\\nAt Hub (in degrees) :\",round(B1h*180/math.pi,1)\n", + "print \"\\n!----Blade Outlet Angles (Degrees)----!\"\n", + "print \"At tip (in degrees):\",round(B2t*180/math.pi,1),\"\\nAt Hub(in degrees) :\",round(B2h*180/math.pi,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "!----Blade Inlet Angles----!\n", + "At tip (in degrees) : 11.4 \n", + "At Hub (in degrees) : 15.1\n", + "\n", + "!----Blade Outlet Angles (Degrees)----!\n", + "At tip (in degrees): 19.5 \n", + "At Hub(in degrees) : 48.6\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.2, Page 793" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "D = 0.1;\n", + "t = 15*10**-3;\n", + "Q = 8.5/3600;\n", + "N = 750/60;\n", + "B2 = 25*math.pi/180; # Beta 2 ind degrees\n", + "g = 9.81;\n", + "z = 16;\n", + "\n", + " #Calculations\n", + "A = round(math.pi*D*t,5);\n", + "V_f2 = round(Q/A,3);\n", + "U2 = round(math.pi*N*D,3);\n", + "V_w2 = round(U2 - V_f2/math.tan(B2),1);\n", + "Hth = round(U2*V_w2/g,2);\n", + "Sf = round(1 - math.pi*math.sin(B2)/(z*(1-(V_f2/U2)/math.tan(B2))),3);\n", + "H = round(Sf*Hth,2);\n", + "\n", + "print \"Part (a) - Head developed (m): \",Hth\n", + "print \"Part (b) - Head developed (m): \",H" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (a) - Head developed (m): 1.16\n", + "Part (b) - Head developed (m): 1.03\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.3, Page 797" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Ma = 0.6;\n", + "Cl = 0.6;\n", + "tByC = 0.035; # Thickness to chord ratio\n", + "cByC = 0.015; # Camber to chord ratio\n", + "x = 3; # Angle of incidence\n", + "\n", + " #Calculations\n", + "lamda = 1/(1-Ma**2)**0.5;\n", + "Cl# = lamda*Cl;\n", + "tByC1 = tByC*lamda;\n", + "cByC1 = cByC*lamda;\n", + "Cl1 = Cl*lamda**2;\n", + "Ae = x*lamda;\n", + "print \"____Geometric Characterstics____\\n\"\n", + "print \"Thickness to chord ratio :\",tByC1\n", + "print \"Camber to chord ratio :\",cByC1\n", + "print \"Lift Coefficient :\",Cl1\n", + "print \"angle of incidence (Degrees) :\",Ae" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "____Geometric Characterstics____\n", + "\n", + "Thickness to chord ratio : 0.04375\n", + "Camber to chord ratio : 0.01875\n", + "Lift Coefficient : 0.9375\n", + "angle of incidence (Degrees) : 3.75\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_23.ipynb b/Fluid_Mechanics/Chapter_23.ipynb new file mode 100755 index 00000000..0ef6bc1d --- /dev/null +++ b/Fluid_Mechanics/Chapter_23.ipynb @@ -0,0 +1,317 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:109f899855f47f57b7b8d73d8df4dd5290683ba03d6e02690f896cfaa5c8d9e2" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 23: Performance of Rotodynamic Machines" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.1, Page 814" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from pylab import *\n", + "%pylab inline\n", + "\n", + " #Initializing the variables\n", + "Q = []\n", + "for c in range(9):\n", + " Q.append(7*c)\n", + "H = [40, 40.6, 40.4, 39.3, 38, 33.6, 25.6, 14.5, 0];\n", + "n = [0, 41, 60, 74, 83, 83, 74, 51, 0];\n", + "N1 = 750;\n", + "N2 = 1450;\n", + "D1 = 0.5;\n", + "D2 = 0.35;\n", + "\n", + " #Calculations\n", + "Q2=[]\n", + "H2=[]\n", + "for c in range(9):\n", + " Q2.append(Q[c]*(N2/N1)*(D2/D1)**3);\n", + " H2.append(H[c]*(N2/N1)**2*(D2/D1)**2);\n", + " \n", + "plot(Q,H,label='H1')\n", + "plot(Q,n,label='n1')\n", + "plot(Q2,H2,'--',label='H2')\n", + "plot(Q2,n,'--',label='n2')\n", + "legend( loc='upper right', numpoints = 1 )\n", + "xlabel(\"Q (m3/s)\");\n", + "ylabel(\"H (m of water) and n(percent)\")\n", + "grid(True)\n", + "show()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['linalg', 'draw_if_interactive', 'random', 'power', 'info', 'fft']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nRHiWAAAAAElFTkSuQmCC\n", + "text": [ + "<matplotlib.figure.Figure at 0x2dc9f90>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.2, Page 831" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "n = 0.9;\n", + "g = 9.81;\n", + "D = 1.45;\n", + "N = 375/60;\n", + "H = 200; # Real height\n", + "x = 165; # Theta\n", + "P = 3750*10**3;\n", + "rho = 1000;\n", + "\n", + " #Calculations\n", + "h = n*H; #Effective Head\n", + "v1 = (2*g*h)**0.5;\n", + "u = math.pi*D*N;\n", + "\n", + "n_a = (2*u/v1**2)*(v1-u)*(1-n*math.cos(math.radians(x)));\n", + "\n", + "P_b = P/n_a;\n", + "ppj = P_b/2; # Power per jet\n", + "d = (8*ppj/(rho*math.pi*v1**3))**0.5 ;\n", + "print \"the efficiency of runner :\",round(n_a,3)\n", + "print \"Diameter of Jet (m) :\",round(d,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the efficiency of runner : 0.933\n", + "Diameter of Jet (m) : 0.156\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.3, Page 834" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " #Example 23.3 \n", + "\n", + " #Initializing the variables\n", + "g = 9.81;\n", + "H = 12;\n", + "n = 0.8;\n", + "w = 300*2*math.pi/60;\n", + "Q = 0.28;\n", + "\n", + " #Calculations\n", + "V_f1 = 0.15*(2*g*H)**0.5;\n", + "V_f2 =V_f1;\n", + "V_w1 = (n*g*H)**0.5;\n", + "u1 = V_w1;\n", + "theta = math.atan(V_f1/u1);\n", + "u2 =0.5*u1;\n", + "B2 = math.atan(V_f2/u2);\n", + "r1 = u1/w;\n", + "b1 = Q/(V_f2*0.9*2*math.pi*r1); # vanes occupy 10 per cent of the circumference hence 0.9\n", + "b2 = 2*b1;\n", + "\n", + "print \"Guide vane angle (degree) :\",round(theta*180/math.pi,2)\n", + "print \"Vane angle at exit (degree) :\",round(B2*180/math.pi,2)\n", + "print \"Width of runner at inlet (mm) :\",round(b1*1000,1) \n", + "print \"Width of runner at exit (mm) :\",round(b2*1000,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Guide vane angle (degree) : 13.34\n", + "Vane angle at exit (degree) : 25.38\n", + "Width of runner at inlet (mm) : 69.6\n", + "Width of runner at exit (mm) : 139.3\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.4, Page 838" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import solve,symbols\n", + "\n", + " #Initializing the variables\n", + "H = 35;\n", + "g = 9.81;\n", + "D = 2;\n", + "N = 145/60;\n", + "z = 30*math.pi/180; # angle between vanes and direction of runner rotation\n", + "y = 28*math.pi/180; # angle between runner blades at the outlet.\n", + "\n", + " #Calculations\n", + "H_net = 0.93*H ; # since 7% head is lost\n", + "v1 = (2*g*H_net)**0.5;\n", + "u = math.pi*N*D;\n", + "\n", + " # from inlet velocity triangle\n", + "V_r1=14.3\n", + "## ash = cos(beta1+z)\n", + "ash = (V_r1**2+v1**2-u**2)/(2*V_r1*v1)\n", + "beta1=(z+math.acos(ash))*180/math.pi # in degrees\n", + "\n", + "V_r2=(1-8/100)*V_r1 #8 % loss due to friction\n", + "V_w1= u + V_r1*math.cos(math.radians(beta1))\n", + "V_w2= u - V_r2*math.cos(y)\n", + "\n", + "E = (u/g)*(V_w1 - V_w2);\n", + "n = E/H;\n", + "print \"Blade angle at inlet :\",round(beta1,1)\n", + "print \"Efficiency (%) :\",round(n*100)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Blade angle at inlet : 62.1\n", + "Efficiency (%) : 81.0\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.5, Page 844" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "s = 0.03;\n", + "P = 185*10**3;\n", + "rho = 0.86*10**3;\n", + "A = 2.8*10**-2;\n", + "N = 2250/60;\n", + "D = 0.46;\n", + "\n", + " #Calculations\n", + "R0 = 0.46/2;\n", + "Ws_Wp = 1-s;\n", + "n = Ws_Wp;\n", + "Pf = s*P;\n", + "Q = (2*Pf*A**2/(3.5*rho))**(1/3);\n", + "Wp = 2*math.pi*N; \n", + "Ri = ((1/Ws_Wp)*(R0**2 -P/(rho*Q*Wp**2)))**0.5;# Modified equation for power transmission.\n", + "Di = 2*Ri;\n", + "T = P/(rho*Wp**3 *D**5);\n", + " \n", + "print \"Mean diameter (mm) :\",round(Di*1000)\n", + "print \"Torque Coefficient :\",round(T,4)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean diameter (mm) : 326.0\n", + "Torque Coefficient : 0.0008\n" + ] + } + ], + "prompt_number": 5 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_24.ipynb b/Fluid_Mechanics/Chapter_24.ipynb new file mode 100755 index 00000000..ef4fb925 --- /dev/null +++ b/Fluid_Mechanics/Chapter_24.ipynb @@ -0,0 +1,183 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:0997b77d100b3345365d77881e9dcf23833d271e3f7741c8fb4ad6c260c5ffc6" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 24: Positive Displacement Machines" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.1, Page 860" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "H_at = 10.3;\n", + "Hs = 1.5;\n", + "Hd = 4.5;\n", + "Ls = 2;\n", + "Ld = 15;\n", + "g = 9.81;\n", + "Ds = 0.4; # Diameter of stroke\n", + "Db = 0.15; # Diameter of bore\n", + "Dd = 0.05; # Diameter of discharge and suction pipe\n", + "nu = 0.2;\n", + "f = 0.01;\n", + "abs_pump_pressure = 2.4;\n", + "\n", + " #Calculations\n", + "A = math.pi*(Db)**2/4;\n", + "a = math.pi*(Dd)**2/4;\n", + "r = Ds/2;\n", + "W = 2*math.pi*nu;\n", + "Hsf = 0; \n", + "def H_suck(n):\n", + " y = H_at - Hs +(-1)**n*(L/g)*(A/a)*W**2*r; \n", + " return y\n", + "\n", + "def H(n,DischargeOrSuction):\n", + " if(DischargeOrSuction == 1):\n", + " y = H_at - Hs +(-1)**n*(Ls/g)*(A/a)*W**2*r;\n", + " elif(DischargeOrSuction == 2):\n", + " y = H_at + Hd +(-1)**n*(Ld/g)*(A/a)*W**2*r;\n", + " else:\n", + " print \"There is something wrong :\"\n", + " return y\n", + "\n", + "def H_mid(DischargeOrSuction,uA):\n", + " if(DischargeOrSuction == 1):\n", + " Hsf = 4*f*Ls/(2*Dd*g)*(uA/a)**2;\n", + " y = H_at - Hs - Hsf;\n", + " elif(DischargeOrSuction == 2):\n", + " Hsf = 4*f*Ld/(2*Dd*g)*(uA/a)**2;\n", + " y = H_at + Hd + Hsf;\n", + " else:\n", + " print \"There is something wrong :\"\n", + " return y\n", + "\n", + "Hs_start = H(1,1); # Inertia head negative hence n = 1\n", + "Hs_end = H(2,1); # Inertia head positive hence n = 2\n", + "Hd_start = H(1,2);\n", + "Hd_end = H(2,2);\n", + "u = W*r;\n", + "Hs_mid = H_mid(1,u*A);\n", + "slip = 0.04;\n", + "Hd_mid = H_mid(2,u*A);\n", + "suction = [Hs_start, Hs_end, Hs_mid];\n", + "discharge = [Hd_start, Hd_end, Hd_mid];\n", + "suction1=[0,0,0]\n", + "discharge1=[0,0,0]\n", + "for c in range(3):\n", + " suction1[c] =round(suction[c],2)\n", + " discharge1[c] =round(discharge[c],2)\n", + "W_max = (abs((abs_pump_pressure - H_at + Hs)*(g/Ls)*(a/A)*(1/r)))**0.5;\n", + "W_max_rev = W_max/(2*math.pi)*60; # maximum rotation speed in rev/min\n", + "\n", + "header = \"Start End Mid\";\n", + "\n", + "print \"\\n!----Part(a)----! Head at \\n\",header\n", + "print suction1\n", + "print \"\\n!----Part(b)----! Head at \\n\",header\n", + "print discharge1\n", + "print \"\\n!----Part(c)----1 \\nDrive speed for s eperation (rev/min) :\",round(W_max_rev)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "!----Part(a)----! Head at \n", + "Start End Mid\n", + "[8.22, 9.38, 8.38]\n", + "\n", + "!----Part(b)----! Head at \n", + "Start End Mid\n", + "[10.45, 19.15, 17.93]\n", + "\n", + "!----Part(c)----1 \n", + "Drive speed for s eperation (rev/min) : 40.0\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.2, Page 863" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Example 24.2 \n", + "\n", + " #Initializing the variables\n", + "H_friction = 2.4;\n", + "H_at = 10.3;\n", + "Hs = 1.5;\n", + "L =2;\n", + "f = 0.01;\n", + "d = 0.05;\n", + "g = 9.81; # Diameter of stroke\n", + "Db = 0.15; # Diameter of bore\n", + "r = 0.2;\n", + "\n", + " #Calculations\n", + "A = math.pi*(Db)**2/4;\n", + "a = math.pi*(d)**2/4;\n", + "W= (((H_at - Hs - H_friction )*(2*d*g/(4*f*L)))**0.5)*(a/A)*(math.pi/r); # in rad/s\n", + "W_rev = W/(2*math.pi)*60; # maximum rotation speed in rev/min\n", + "# IMPORTANT : In book conversion from rad/s to rev/min is wrong, so answer will be diffrent from book\n", + " \n", + "print \"speed in (rad/s) :\",round(W,2)\n", + "print \"Increase in speed (rev/min):\",round(W_rev-40,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "speed in (rad/s) : 15.46\n", + "Increase in speed (rev/min): 107.65\n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_25.ipynb b/Fluid_Mechanics/Chapter_25.ipynb new file mode 100755 index 00000000..9b08e6f3 --- /dev/null +++ b/Fluid_Mechanics/Chapter_25.ipynb @@ -0,0 +1,328 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:2bebadfad4a18ede042a136ada8984e181f57290a23ad4ed8003a1f83445a447" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 25: Machine\u2013Network Interactions" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 25.4, Page 893" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "Pa_P1 = -200; # From previous Question\n", + "Q = 1.4311 ; # From previous questions.\n", + "\n", + " #Calculations\n", + "DpSys = Pa_P1 + 98.9*Q**2;\n", + "print \"System Operating point (m^3/s):\",round(DpSys,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "System Operating point (m^3/s): 2.55\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 25.7, Page 906" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import solve,symbols\n", + " \n", + "\n", + " #Initializing the variables\n", + "Vo = 25.3; #Outlet velocity\n", + "D = 10 ; # Mean hydraulic diameter\n", + "f = 0.008; # friction factor\n", + "X = 1000; # Length of road\n", + "P = 12600; # Absorbing power\n", + "Va = 300; # Tunnel air flow\n", + "K1 = 0.96;\n", + "K2 = 0.9;\n", + "T = 590; #Thrust\n", + "rho = 1.2; # Air density \n", + "\n", + " #Calculations\n", + "alpha = (1/D)**2;\n", + "A = math.pi*D**2/4; # Area of tunnel\n", + "Vt = Va/A;\n", + "W = Vo/Vt; #Omega\n", + "E = (1-alpha*W);\n", + "C = (1-alpha*W)*(1-E)**2 + E**2 - 1;\n", + " # Manipulating equation 25.20;\n", + "LHS = f*X*(E+1)**2/D + C + 1 ;\n", + "\n", + "n1 = symbols('n1')\n", + "result=solve(K1*(2*((alpha*W**2 + (1-alpha)*E**2-1)+(n1-1)*(alpha*W*(W-1)-C/2)))-LHS)\n", + "\n", + "n=result[0]\n", + "\n", + "\n", + " # Alternative approach using equation 25.22\n", + "n2 = (rho*((4*f*X*Vt**2)/(2*D) + 1.5*Vt**2/2))*A/(K1*K2*T); \n", + "Pt = round(n2)*P;\n", + "\n", + "print \"Number of fans required :\",round(n2)\n", + "print \"Total power consumed (KW) :\",Pt/1000" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of fans required : 6.0\n", + "Total power consumed (KW) : 75.6\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 25.8, Page 907" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import solve,symbols\n", + " #Initializing the variables\n", + "f = 0.008;\n", + "T = 290;\n", + "L = 750;\n", + "Dt = 9; # Diameter Tunnel\n", + "Df = 0.63; # Diameter fan\n", + "K1 = 0.98;\n", + "K2 = 0.92;\n", + "Vo = 27.9;\n", + "n = 10;\n", + "A=math.pi*Dt**2/4\n", + "rho=1.2\n", + "X=750\n", + " #Calculations\n", + "alpha = (Df/Dt)**2;\n", + " # equation 25.20 becomes when E = 1 nad C = 0\n", + "W=symbols('W')\n", + "omega = solve(2*K1* (alpha*W**2 +(n-1)*alpha*W*(W-1)) - 4*f*L/Dt -1)\n", + " \n", + "\n", + "for i in range(1,len(omega)): # since omega is always positive and real\n", + " if omega[i]>0:\n", + " w = round(omega[i],1);\n", + "Vt = Vo/w;\n", + "\n", + "# by equation 25.22\n", + "VT=(n*(K1*K2*T)/(A*(rho*((4*f*X)/(2*Dt) + 1.5/2))))**0.5\n", + "print \"Tunnel Velocity (m/s) :\",round(VT,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Tunnel Velocity (m/s) : 4.05\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 25.9, Page 914" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Ws = 0.45;\n", + "Ks = 3.2;\n", + "H = 152;\n", + "h = 0;\n", + "Hatm = 10.3;\n", + "Pv = 350; #vapour pressure\n", + "g = 9.81;\n", + "rho = 1000;\n", + " \n", + " #Calculations\n", + "Ht1 = 152*(Ws/Ks)**(4/3); # the value of Ht1 is 11.12 and in book it is taken as 11.2 so there will be a difference in final answer\n", + "Hvap = round(Pv/(rho*g),3);\n", + "Z = Hatm -h -Hvap -Ht1;\n", + "print \"Elevation of pump (m):\",round(Z,3)\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Elevation of pump (m): -0.851\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 25.11, Page 927" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import symbols,solve\n", + "import numpy as np\n", + " \n", + "\n", + " #Initializing the variables\n", + "Co = 0;\n", + "Qc = 0.0024;\n", + "V = 5400;\n", + "c = 10;\n", + " #Calculations\n", + "#####--------------------PART(A)-----------------#######\n", + "n1=symbols('n1')\n", + "def partA(n1):\n", + " Ci = 10;\n", + " # t = infinity so e^(-nt) = 0\n", + " Q=10000*Qc/(c-Co)\n", + " n1 = Q*3600/V; \n", + " return n1\n", + "ans=partA(n1)\n", + "\n", + "print \"Part(A) : number of air changes per hour if the garage is in continuous use and the maximum permissible concentration of carbon monoxide is 0.1 per cent. :\",ans,\"\\n\"\n", + "\n", + "#####--------------------PART(B)-----------------#######\n", + "n=symbols('n')\n", + "def partB(n):\n", + " Ci = 0; \n", + " n=[1.5,1.2,0.9,1.0] \n", + " t=1 # time in hours\n", + " error=[]\n", + " mini=100\n", + " ans=0\n", + " for i in range(4): \n", + " Q = V/3600; \n", + " A = 10000*Qc/Q; # as Co=0 \n", + " error.append(abs((A*(1-math.e**(-n[i]*t))/c)-n[i]));\n", + " if(error[i]<mini):\n", + " mini=error[i]\n", + " ans=n[i]\n", + " return ans \n", + "ans=partB(n)\n", + "print \"Part(B) : number of air changes per hour if this maximum level is reached after 1 hour and the garage is out of use :\",ans,'\\n'\n", + " \n", + "#####--------------------PART(C)-----------------#######\n", + "c=symbols('c')\n", + "def partC(c):\n", + " Ci = 0;\n", + " n = 1; \n", + " t = 0.333333 # 20 minutes in hours\n", + " Q = V*n/3600;\n", + " y = (Co + 10000*Qc/Q)*(1-math.e**(-n*t)) + Ci*math.e**(-n*t) ; \n", + " return y\n", + "ans=partC(c)\n", + "print \"Part(C) :the concentration after 20 minutes (Parts per 10000) :\",round(ans,3),'\\n'\n", + "#####--------------------PART(D)-----------------#######\n", + "t=symbols('t')\n", + "def partD(t):\n", + " Ci = 10;\n", + " n = 1; \n", + " c = 0.1;\n", + " t=np.log(100) \n", + " return round(t,2)\n", + "ans=partD(t) \n", + "print \"Part(D) : time necessary to run the ventilation system at the rate calculated in (b) to reduce the concentration to 0.001 per cent (in hours) :\",ans,\"hours\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part(A) : number of air changes per hour if the garage is in continuous use and the maximum permissible concentration of carbon monoxide is 0.1 per cent. : 1.6 \n", + "\n", + "Part(B) : number of air changes per hour if this maximum level is reached after 1 hour and the garage is out of use : 1.0 \n", + "\n", + "Part(C) :the concentration after 20 minutes (Parts per 10000) : 4.535 \n", + "\n", + "Part(D) : time necessary to run the ventilation system at the rate calculated in (b) to reduce the concentration to 0.001 per cent (in hours) : 4.61 hours\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_3.ipynb b/Fluid_Mechanics/Chapter_3.ipynb new file mode 100755 index 00000000..68980a40 --- /dev/null +++ b/Fluid_Mechanics/Chapter_3.ipynb @@ -0,0 +1,372 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:540962ba0b5999b583f0620c9dca124d46f25fe569649c6c842d96cfa42351a3" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3: Static Forces on Surfaces. Buoyancy" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.1, Page 65" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "a = 2.7; #Upper edge\n", + "b = 1.2 ; #Lower edge\n", + "width = 1.5; #Width of trapezoidal plate\n", + "h = 1.1; #Height of water column above surface\n", + "rho = 1000;\n", + "g = 9.81 #Acceleration due to gravity\n", + "phi = 90 #Angle between wall and surface\n", + "\n", + " #Calculations\n", + "A = 0.5*(a+b)*width; #Area of Trapezoidal Plate\n", + "y = (2*(0.5*width*0.75)*0.5 + (1.2*width)*0.75)/A;\n", + "z = y+h; #Depth of center of pressure\n", + "R = rho*g*A*z #Resultant force\n", + "\n", + "I0 = 1.2*1.5**3/12 +1.2*1.5*1.85**2 + 1.5*1.5**3/36 + 1.5*0.75*1.6**2 #Second moment of area\n", + "D = (math.sin(math.degrees(phi)))**2*I0/(A*z); #depth of center of pressure\n", + "M = R*(1.8533-1.1); #Moment about hinge\n", + "print \"Moment about the hinge line (kN/m):\",round(M/1000)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Moment about the hinge line (kN/m): 38.0\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.2, Page 67" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "w = 1.8; #Width of plate\n", + "h1 = 5; #Height of plate and water in upstream\n", + "h2 = 1.5; #Height of water in downstream\n", + "rho = 1000;\n", + "g = 9.81 ; #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "def waterForce(area,meanHeight):\n", + " F = rho * g * area * meanHeight;\n", + " return F\n", + "\n", + "P = waterForce(w*h1,h1/2)-waterForce(w*h2,h2/2);# Resultant force on gate \n", + "x = (waterForce(w*h1,h1/2)*(h1/3) - waterForce(w*h2,h2/2)*(h2/3))/P;# point of action of p from bottom\n", + "R = P/(2*math.sin(math.radians(20))); # Total Reaction force\n", + "Rt = 1.18*R/4.8; #Reaction on Top\n", + "Rb = R - Rt ; #Reaction at bottom\n", + "\n", + "print \"Reaction at top (kN):\",round(Rt/1000,1)\n", + "print \"Reaction at bottom (kN):\",round(Rb/1000,2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Reaction at top (kN): 72.2\n", + "Reaction at bottom (kN): 221.45\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.3, Page 70" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "D = 1.8; #Depth of tank\n", + "h = 1.2; #Depth of water\n", + "l = 3; #Length of wall of tank\n", + "p = 35000; #Air pressure\n", + "rho = 10**3; #Density of water\n", + "g = 9.81; #Acceleration due to gravity\n", + "\n", + "\n", + " #Calculations\n", + "Ra = p*D*l; #Force due to air\n", + "Rw = .5*(rho*g*h)*h*l; #Force due to water\n", + "R = Ra + Rw; # Resultant force\n", + "x = (Ra*0.9+Rw*0.4)/R; # Height of center of pressure from base\n", + "print \"Resultant force on the wall (kN) :\",round(R/1000,2)\n", + "print \"Height of the centre of pressure above the base (m) :\",round(x,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Resultant force on the wall (kN) : 210.19\n", + "Height of the centre of pressure above the base (m) : 0.85\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.4, Page 72" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " \n", + "\n", + " #Initializing the variables\n", + "R = 6; # Radius of arc\n", + "h = 2*R*math.sin(math.radians(30)); #Depth of water\n", + "rho = 10**3; #Density of water\n", + "g = 9.81; #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "Rh = (rho*g*h**2)/2; # Resultant horizontal force per unit length\n", + "Rv = rho*g*((60/360)*math.pi*R**2 -R*math.sin(math.radians(30))*R*math.cos(math.radians(30)));# Resultant vertical force per unit length\n", + "R = (Rh**2+Rv**2)**0.5; # Resultant force on gate\n", + "theta = 180/math.pi*math.atan(Rv/Rh); #Angle between resultant force and horizontal\n", + "\n", + "print \"Magnitute of resultant force (kN/m) :\",round(R/1000,2)\n", + "print \"Direction of resultant force to the horizontal(Degrees):\",round(theta,2)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Magnitute of resultant force (kN/m) : 179.45\n", + "Direction of resultant force to the horizontal(Degrees): 10.27\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.5, Page 75" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "B = 6; # Width of pontoon\n", + "L = 12; #Length of pontoon\n", + "D = 1.5; #Draught of pontoon\n", + "Dmax = 2; #Maximum permissible draught\n", + "rhoW = 1000; #Density of fresh water\n", + "rhoS = 1025; #Density of sea water\n", + "g = 9.81; #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "def Weight(D):\n", + " W = rhoW*g*B*L*D;\n", + " return W\n", + "\n", + "W = Weight(D); # Weight of pontoon in fresh water = weight of water displaced\n", + "Ds = W/(rhoS*g*B*L); #Draught in sea water\n", + "L = Weight(Dmax) - Weight(D); # maximum load that can be supported\n", + "\n", + "print \"Weight of pontoon (kN) :\",round(W/1000,1)\n", + "print \"Draught in sea (m) :\",round(Ds,2)\n", + "print \"Load (kN) :\",round(L/1000,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Weight of pontoon (kN) : 1059.5\n", + "Draught in sea (m) : 1.46\n", + "Load (kN) : 353.16\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.6, Page 80" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables\n", + "D = 1.8; # Diameter of buoy\n", + "H = 1.2; #Height of buoy\n", + "W = 10*10**3; #Weight of buoy\n", + "L = 2*10**3; #Load\n", + "G = 0.45; # Center of gravity\n", + "rho = 1025; #Density of sea water\n", + "g = 9.81; #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "Z = 4*(W+L)/(rho*g*math.pi*D**2); # Depth of Immersion\n", + "BG = (math.pi*D**4/64)/(math.pi*D**2*Z/4);\n", + "Z = 0.5*Z +BG; # Position of combined center of gravity\n", + "Z1 = ((W+L)*Z-0.45*W)/L; #Maximum height of load above bottom\n", + "\n", + "print \"Maximum height of center of gravity above bottom (m) :\",round(Z1,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum height of center of gravity above bottom (m) : 1.748\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.7, Page 83" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables\n", + "l = 20; # Length of barage\n", + "b = 6; #Width of barage\n", + "r = 3; #Radius of circular top of barage\n", + "W = 200*10**3; #Weight of empty barage\n", + "d1 = 0.8; # Depth of water in 1st half\n", + "d2 = 1; # Depth of water in 2nd half\n", + "rho = 1000; #Density of water\n", + "R = 0.8; #Relative density of liquid\n", + "g = 9.81; #Acceleration due to gravity\n", + "ZG = 0.45; # Center of gravity of barage\n", + "\n", + " #Calculations\n", + "I00 = l*b**3/12 +math.pi*b**4/128;\n", + "ICC = l*(.5*b)**3/12;\n", + "L = d1*rho*g*l*b/2*(d1+d2); # Weight of liquid load\n", + "W = L + W; #Total weight\n", + "A = l*b +math.pi*r**2/2; # Area of plane of waterline\n", + "V = W/(rho*g); # Volume of vessel submerged\n", + "D = V/A ; #Depth submerged\n", + "ZB = .5*D; #Height of center of buoyancy\n", + "NM = ZB-ZG +(1/V)*(I00-R*2*ICC); # Effective metacentric height\n", + "P = R*rho*g*l*b/2*(d2-d1); #overturning moment \n", + "theta = math.atan(P*1.5/(W*NM))*180/math.pi; #Angle of roll\n", + "# converting into degrees and minutes\n", + "thetaD=round(theta-1)\n", + "thetaM=(theta-thetaD)*60/100\n", + "print \"Angle of roll is\",thetaD,\"degrees\",round(thetaM,2),\"minutes\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Angle of roll is 2.0 degrees 0.37 minutes\n" + ] + } + ], + "prompt_number": 7 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_4.ipynb b/Fluid_Mechanics/Chapter_4.ipynb new file mode 100755 index 00000000..b2b61c13 --- /dev/null +++ b/Fluid_Mechanics/Chapter_4.ipynb @@ -0,0 +1,200 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:27e5ceeda6b81a3ecd6f6bb5786adb4aab2ca8fa416667ba9a518e71b4bbf42b" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4: Motion Fluid Particles and Streams" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.1, Page 103" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from pylab import *\n", + "import numpy as np\n", + "%pylab inline\n", + "\n", + " #Initializing the variables\n", + "x = [0, 23, 28, 31, 32, 29, 22, 14, 0]\n", + "y = np.linspace(0,80,9)\n", + "xlabel('Velocity (m/s)')\n", + "ylabel('Distance from one side(mm)')\n", + "title('Velocity Distribution Curve')\n", + "grid(1)\n", + "\n", + " #Calculations\n", + "plot(x,y,'-*')\n", + "show()\n", + "mu=[17.5 , 26.0, 29.6, 31.9, 30.7, 25.4, 18.1, 7.7]\n", + " # mean velocity\n", + "print \"Mean velocity (m/s):\",round(mean(mu),2)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['linalg', 'draw_if_interactive', 'random', 'power', 'info', 'fft']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x3032e50>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean velocity (m/s): 23.36\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.2, Page 106" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from pylab import *\n", + "import numpy as np\n", + "\n", + " #Initializing the variables all unknowns are assigned 0\n", + "\n", + "d = [0.0, 0.05, 0.075, 0, 0.030];\n", + "Q = [0, 0, 0, 0, 0];\n", + "V = [0, 0, 2, 1.5, 0];\n", + "A = [0, 0, 0, 0, 0]\n", + " #Calculations\n", + "A2 = math.pi*d[2]**2/4;\n", + "Q[2] =A2*V[2];\n", + "Q = [0,Q[2], Q[2], Q[2]/1.5 , 0.5*Q[2]/1.5];\n", + "d[3] = (Q[3]*4/(V[3]*math.pi))**0.5;\n", + "for i in range(0,5):\n", + " A[i] = math.pi*d[i]**2/4;\n", + "V[1] = V[2]*(A[2]/A[1]);\n", + "V[4]=Q[4]/A[4];\n", + "\n", + "\n", + "header = \"Diameter(mm) Area(m2)\\t Flow Rate(m3/s) Velocity(m/s)\"\n", + "print header\n", + "for c in range(1,5):\n", + " mm=str(round(d[c]*1000,1))+'\\t '+str(round(A[c],6))+' \\t '+str(round(Q[c],6))+' \\t'+str(round(V[c],2))\n", + " print mm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Diameter(mm) Area(m2)\t Flow Rate(m3/s) Velocity(m/s)\n", + "50.0\t 0.001963 \t 0.008836 \t4.5\n", + "75.0\t 0.004418 \t 0.008836 \t2.0\n", + "70.7\t 0.003927 \t 0.00589 \t1.5\n", + "30.0\t 0.000707 \t 0.002945 \t4.17\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.3, Page 108" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "import sympy\n", + "from sympy import diff, Symbol\n", + "\n", + "\n", + "#Initializing the variables \n", + "'''\n", + "def df(x, h=0.1e-5):\n", + " return ( f(x+h/2) - f(x-h/2) )/h\n", + " return df\n", + "\n", + "print df(2*x,h)\n", + "'''\n", + "x = Symbol('x') \n", + "vx = 3-x\n", + "vy = 4+2*x\n", + "vz = 2-x \n", + "\n", + " #Calculations\n", + "delVx = vx.diff(x); \n", + "delVy = vx.diff(x);\n", + "delVz = vx.diff(x); \n", + "\n", + "result = delVx+delVy+delVz;#requirement of continuity equation (result = 0)\n", + "print \"Satisfy requirement of continuity \"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Satisfy requirement of continuity \n" + ] + } + ], + "prompt_number": 10 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_5.ipynb b/Fluid_Mechanics/Chapter_5.ipynb new file mode 100755 index 00000000..b12249f7 --- /dev/null +++ b/Fluid_Mechanics/Chapter_5.ipynb @@ -0,0 +1,517 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:04c1d9ce4358772aaf36727d98b4d1c000b18de791fe80fc4e6e1ac3cabc0050" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5: The Momentum Equation and its Applications" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.1, Page 119" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables \n", + "\n", + "l = 60 ; #Length of pipeline\n", + "rho = 1000; # Density of liquid\n", + "a = 0.02; #Acceleration of fluid\n", + "\n", + " #Calculations\n", + "delP = rho*l*a; #Change in pressure\n", + "print \"Increase of pressure difference required (kN/m2):\",delP/1000" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Increase of pressure difference required (kN/m2): 1.2\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.2, Page 121" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables \n", + "v = 5; #Velocity of jet \n", + "rho = 1000; #density of water\n", + "d = 0.025; #Diameter of fixed nozzle\n", + "\n", + " #Calculations\n", + " #--Part(a) Variation of force exerted normal to the plate with plate angle--//\n", + "header = \"Theta\\t vcos(x)\\t pAv\\t Force\"\n", + "unit = \"deg\\t m/s\\t kg/s\\t N\"\n", + "\n", + "A = math.pi*d**2/4;\n", + "x = range(0,91,15);\n", + "for c in range(len(x)):\n", + " x[c]=1.0*x[c]\n", + "m = round(rho*A*v,2);\n", + "ma = [m,m,m,m,m,m,m];\n", + "vcomp=[]\n", + "force=[]\n", + "for c in x:\n", + " vcomp.append(round(v*math.cos(math.radians(c)),2))\n", + " force.append(round((rho*A*v**2)*math.cos(math.radians(c)),2))\n", + "\n", + "print header\n", + "print unit\n", + "for c in range(len(x)):\n", + " mm=str(x[c])+' \\t '+str(vcomp[c])+' \\t'+str(ma[c])+' \\t'+str(force[c])\n", + " print mm\n", + "##value = [x,vcomp,ma,force]\n", + "##print value,unit, header\n", + "\n", + " #--Part(b) Variation of force exerted normal to the plate with plate velocity--// \n", + "header =\"Theta\\t v\\t u\\t v-u\\t pA(v-u)\\t Force\\t\"\n", + "unit =\"deg\\t m/s\\t m/s\\t m/s\\t kg/s\\t N\\t\"\n", + "x = [0,0,0,0,0]\n", + "v = [5,5,5,5,5]\n", + "u = range(2,-3,-1);\n", + "D=[]\n", + "Prod=[]\n", + "Force=[]\n", + "for c in range(5):\n", + " D.append(v[c]-u[c])\n", + " Prod.append(round((rho*A*D[c]),2))\n", + " Force.append(round((rho*A*D[c]**2),2))\n", + " \n", + "print '\\n',\"(b)\",\"\\n\",header\n", + "print unit\n", + "for c in range(len(x)):\n", + " mm=str(x[c])+' \\t '+str(v[c])+' \\t '+str(u[c])+' \\t '+str(D[c])+' \\t '+str(Prod[c])+' \\t '+str(Force[c])\n", + " print mm\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Theta\t vcos(x)\t pAv\t Force\n", + "deg\t m/s\t kg/s\t N\n", + "0.0 \t 5.0 \t2.45 \t12.27\n", + "15.0 \t 4.83 \t2.45 \t11.85\n", + "30.0 \t 4.33 \t2.45 \t10.63\n", + "45.0 \t 3.54 \t2.45 \t8.68\n", + "60.0 \t 2.5 \t2.45 \t6.14\n", + "75.0 \t 1.29 \t2.45 \t3.18\n", + "90.0 \t 0.0 \t2.45 \t0.0\n", + "\n", + "(b) \n", + "Theta\t v\t u\t v-u\t pA(v-u)\t Force\t\n", + "deg\t m/s\t m/s\t m/s\t kg/s\t N\t\n", + "0 \t 5 \t 2 \t 3 \t 1.47 \t 4.42\n", + "0 \t 5 \t 1 \t 4 \t 1.96 \t 7.85\n", + "0 \t 5 \t 0 \t 5 \t 2.45 \t 12.27\n", + "0 \t 5 \t -1 \t 6 \t 2.95 \t 17.67\n", + "0 \t 5 \t -2 \t 7 \t 3.44 \t 24.05\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.3, Page 123" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " \n", + "\n", + " #Initializing the variables \n", + "x = 60; #Angle of deflection theta\n", + "rho = 1000; # Density of liquid\n", + "V1 = 30; #Acceleration of fluid\n", + "V2 = 25;\n", + "m = .8; #Discharge through A\n", + "\n", + " #Calculations\n", + "def Reaction(Vin , Vout):\n", + " R = m*(Vin -Vout) ;\n", + " return R\n", + "Rx = Reaction(V1,V2*math.cos(math.radians(x)));\n", + "Ry = -Reaction(0,V2*math.sin(math.radians(x)));\n", + "print \"Reaction in X-direction (N) :\",Rx\n", + "print \"Reaction in Y-direction (N) :\",round(Ry,2)\n", + "print \"Net Reaction (N) :\",round((Rx**2 +Ry**2)**0.5,2)\n", + "print \"Inclination of Resultant Force with x-direction (Degrees):\",round(180/math.pi*math.atan(Ry/Rx),2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Reaction in X-direction (N) : 14.0\n", + "Reaction in Y-direction (N) : 17.32\n", + "Net Reaction (N) : 22.27\n", + "Inclination of Resultant Force with x-direction (Degrees): 51.05\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.4, Page 125" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables \n", + "v1 = 36 ; #Exit velocity\n", + "u = 15; #Velocity of vane\\\n", + "x = 30; # Angle between vanes and flow\n", + "rho = 1000; # Density of water\n", + "d = .1; # Diameter of jet\n", + "\n", + " #Calculations\n", + "alp = (180/math.pi)*math.atan((v1*math.sin(math.radians(x))/(v1*math.cos(math.radians(x))-u)));\n", + "v2 = 0.85*v1*math.sin(math.radians(x));\n", + "bta = (180/math.pi)*math.acos((u*math.sin(math.radians(alp))/v2));\n", + "m = (rho*math.pi*v1*d**2)/4;\n", + "Vin = v1*math.cos(math.radians(x));\n", + "Vout = v2*math.cos(math.radians(90));\n", + "Rx = m*(Vin-Vout);\n", + "\n", + "\n", + "print \"Inlet Angle (Degrees) :\", round(alp,2)\n", + "print \"Outlet Angle (Degrees) :\", round(bta,2)\n", + "print \"Force exerted by vanes (N) :\", round(Rx) \n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Inlet Angle (Degrees) : 48.05\n", + "Outlet Angle (Degrees) : 43.18\n", + "Force exerted by vanes (N) : 8815.0\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.5, Page 127" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables \n", + "rho = 850 ; # Density of liquid\n", + "a = 0.02 #Acceleration of fluid\n", + "x = 45 ;\n", + "d1 = .5 ;\n", + "d2 = .25;\n", + "p1 = 40*10**3;\n", + "p2 = 23*10**3;\n", + "Q = .45;\n", + " \n", + " #Calculations\n", + "A1 = (math.pi*d1**2)/4;\n", + "A2 = (math.pi*d2**2)/4;\n", + "v1 = Q/A1;\n", + "v2 = Q/A2;\n", + "\n", + "Rx = p1*A1 - p2*A2*math.cos(math.radians(x)) - rho*Q*(v2*math.cos(math.radians(x))-v1);\n", + "Ry = p2*A2*math.sin(math.radians(x)) + rho*Q*v2*math.sin(math.radians(x));\n", + "\n", + "print \"Resultant force on the bend (kN) :\",round((Rx**2 +Ry**2)**0.5/1000,3)\n", + "print \"Inclination of Resultant Force with x-direction (Degrees):\",round(math.atan(Ry/Rx)*180/math.pi)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Resultant force on the bend (kN) : 6.362\n", + "Inclination of Resultant Force with x-direction (Degrees): 31.0\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.6, Page 129" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + "\n", + " #Initializing the variables \n", + "v = 4.9; #Velocity of Jet\n", + "rho = 1000; # Density of water\n", + "d = 0.05;\n", + "u = 1.2 # Velocity of tank\n", + " #Calculations\n", + "Vout = v;\n", + "Vin = 0;\n", + "m = rho*math.pi*d**2*v/4;\n", + "R = m*(Vout-Vin);\n", + "print \"Reaction of jet on tank (N) :\",round(R,2)\n", + "print \"Work done per second (W) :\",round(R*u,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Reaction of jet on tank (N) : 47.14\n", + "Work done per second (W) : 56.57\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.7, Page 130" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from scipy import integrate\n", + " \n", + " \n", + "\n", + " #Initializing the variables \n", + "Vj = 5*10**6; # Velocity of Jet\n", + "Mr = 150000; # Mass of Rocket\n", + "Mf0 = 300000; # Mass of initial fuel\n", + "Vr = 3000; # Velocity of jet relative to rocket\n", + "g = 9.81; # Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "m = Vj/Vr; #Rate of fuel consumption\n", + "T = Mf0/m; # Burning time\n", + "\n", + "def f(t,m,Vr,Mr,Mf0,g):\n", + " return m*Vr /(Mr + Mf0 - m*t) - g;\n", + " \n", + "args = (5000/3,3000,150000,300000,9.81)\n", + "Vt = integrate.quad(f, 0.0, 180, args)\n", + "\n", + "def h(t,Vr,g):\n", + " return -g*t - Vr*math.log(1 - t/269.95);\n", + " \n", + "args = (3000,9.81)\n", + "Z1 = integrate.quad(h, 0.0, 180, args)\n", + "Z2 = Vt[0]**2/(2*g);\n", + "\n", + "print \"(a)Burning time (s) :\",T\n", + "print \"(b)Speed of rocket when all fuel is burned (m/s):\",round(Vt[0],2)\n", + "print \"(c)Maximum height reached (km) :\",round((Z2+Z1[0])/1000,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Burning time (s) : 180.0\n", + "(b)Speed of rocket when all fuel is burned (m/s): 1530.04\n", + "(c)Maximum height reached (km) : 203.8\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.8, Page 134" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "V = 200; #Velocity in still air\n", + "Vr = 700; #velocity of gas relative to engine\n", + "mf = 1.1; # Fuel Consumption\n", + "r = 1/40 ; \n", + "P1 =0;\n", + "P2 = 0;\n", + "\n", + " #Calculations\n", + "m1 = mf/r;\n", + "T = m1*((1+r)*Vr -V);\n", + "print \"(a)Thrust (kN) :\",T/1000\n", + "\n", + "W = T*V;\n", + "print \"(b)Work done per second (kW) :\",W/1000\n", + "\n", + "Loss = 0.5*m1*(1+r)*(Vr-V)**2;\n", + "print \"(c)Efficiency (%) :\",round(W/(W+Loss)*100,1) " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Thrust (kN) : 22.77\n", + "(b)Work done per second (kW) : 4554.0\n", + "(c)Efficiency (%) : 44.7\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.10, Page 140" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables \n", + "rho = 1000; # Density of water\n", + "Q = 10; #Acceleration of fluid\n", + "r2 = 1.6;\n", + "r1 = 1.2;\n", + "V1 = 2.3;\n", + "V2 = 0.2;\n", + "rot = 240; \n", + "\n", + " #Calculations\n", + "Tf = rho*Q*(V2*r2 - V1*r1);\n", + "T = -Tf;\n", + "n = rot / 60;\n", + "P = 2*round(math.pi,3)*n*T;\n", + "\n", + "print \"Torque exerted by fluid (N.m):\",T\n", + "print \"Theoretical power output (kW) :\",round(P/1000,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Torque exerted by fluid (N.m): 24400.0\n", + "Theoretical power output (kW) : 613.32\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_6.ipynb b/Fluid_Mechanics/Chapter_6.ipynb new file mode 100755 index 00000000..5cde4008 --- /dev/null +++ b/Fluid_Mechanics/Chapter_6.ipynb @@ -0,0 +1,504 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:df3153eb902c7efba51ed445ceefd3e3c02fa6ed938e4ef53fe06333d531bf11" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6: The Energy Equation and its Applications" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.1, Page 170" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "Pc = 0; # Atmospheric Pressure\n", + "Z3 = 30+2; #height of nozzle\n", + "Ep = 50 ; #Energy per unit weight supplied by pump\n", + "d1 = 0.150; #Diameter of sump\n", + "d2 = 0.100; #Diameter of delivery pipe\n", + "d3 = 0.075 ; #Diameter of nozzle\n", + "g = 9.81; # Acceleration due to gravity\n", + "Z2 = 2; #Height of pump\n", + "rho = 1000; # Density of water\n", + "\n", + " #Calculations\n", + "U3 = (2*g*(Ep-Z3)/(1+5*(d3/d1)**4 + 12*(d3/d2)**4))**0.5;\n", + "U1 = U3/4;\n", + "Pb = rho*g*Z2 + 3*rho*U1**2;\n", + "print \"Velocity of Jet through nozzle (m/s) :\",round(U3,3)\n", + "print \"Pressure in the suction pipe at the inlet to the pump at B (kN/m^2) :\",round(Pb/1000,3) " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity of Jet through nozzle (m/s) : 8.314\n", + "Pressure in the suction pipe at the inlet to the pump at B (kN/m^2) : 32.58\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.2, Page 183" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + " #Initializing the variables \n", + "x = 45; # Inclination of pipe\n", + "l = 2; #Length of pipe under consideration\n", + "Ep = 50 ; #Energy per unit weight supplied by pump\n", + "d1 = 0.2; #Diameter of sump\n", + "d2 = 0.1; #Diameter of delivery pipe\n", + "g = 9.81; # Acceleration due to gravity\n", + "rho = 1000; # Density of water\n", + "V1 = 2;\n", + "RD_oil = 0.9; # relative density of oil\n", + "RD_Merc = 13.6; # Relative density of Mercury\n", + "\n", + " #Calculations\n", + "V2 = V1*(d1/d2)**2;\n", + "dZ = round(l*math.sin(math.radians(x)),3); # it is used in book as 1.414,by rounding so here also\n", + "rho_Oil = RD_oil*rho;\n", + "rho_Man = RD_Merc*rho;\n", + "dP = 0.5*rho_Oil*(V2**2-V1**2) + rho_Oil*g*dZ;\n", + "h = rho_Oil *( dP/(rho_Oil*g)- dZ)/(rho_Man - rho_Oil);\n", + "\n", + "print \"Pressure Difference(N/m2) : \",round(dP,0)\n", + "print \"Difference in the level of mercury (m):\",round(h,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure Difference(N/m2) : 39484.0\n", + "Difference in the level of mercury (m): 0.217\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.3, Page 187" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "d1 = 0.25; #Pipeline diameter\n", + "d2 = 0.10; #Throat diameter\n", + "h =0.63; #Difference in height\n", + "rho = 1000; #Density of water\n", + "g = 9.81 #Acceleration due to gravity\n", + "\n", + " #Calculations\n", + "rho_Hg = 13.6*rho;\n", + "rho_Oil = 0.9*rho;\n", + "A1 = (math.pi*d1**2)/4; # Area at entry\n", + "m = (d1/d2)**2; #Area ratio\n", + "Q = (A1/(m**2-1)**0.5)*(2*g*h*(rho_Hg/rho_Oil -1))**0.5;\n", + "\n", + "print \"Thepretical Volume flow rate (m3/s ):\",round(Q,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Thepretical Volume flow rate (m3/s ): 0.105\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.4, Page 190" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "\n", + "x = 1.5;\n", + "y =0.5;\n", + "H = 1.2;\n", + "A = 650*10**-6;\n", + "Q =0.117;\n", + "g = 9.81;\n", + "\n", + " #Calculations\n", + "Cv =(x**2/(4*y*H))**0.5;\n", + "Cd = Q / (60*A*(2*g*H)**0.5);\n", + "Cc = Cd/Cv;\n", + "\n", + "\n", + "print \"Coefficient of velocity :\",round(Cv,3)\n", + "print \"Coefficient of Discharge :\",round(Cd,3)\n", + "print \"Coefficient of contraction :\",round(Cc,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Coefficient of velocity : 0.968\n", + "Coefficient of Discharge : 0.618\n", + "Coefficient of contraction : 0.639\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.5, Page 192" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "B = 0.7;\n", + "H1 = 0.4;\n", + "H2 = 1.9;\n", + "g =9.81;\n", + "z = 1.5 ; # height of opening\n", + "\n", + " #Calculations\n", + "Q_Th = 2/3 *B*(2*g)**0.5*(H2**1.5 - H1**1.5);\n", + "A = z*B;\n", + "h = 0.5*(H1+H2);\n", + "Q = A*(2*g*h)**0.5;\n", + "\n", + "print \"Percentage error in discharge (%):\",round((Q-Q_Th)*100/Q_Th,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Percentage error in discharge (%): 1.98\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.6, Page 195" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "Cd = 0.6; #Coefficient of discharge\n", + "Q = 0.28;\n", + "x = 90; #Theta\n", + "g = 9.81;\n", + "dH = 0.0015;\n", + "\n", + " #Calculations\n", + "H = (Q*(15/8)/(Cd*(2*g)**0.5*math.tan(math.radians(x/2))))**(2/5)\n", + "Frac_Q = 5/2 *( dH/H);\n", + "\n", + "print \"Percentage error in discharge(%)\",round(Frac_Q*100,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Percentage error in discharge(%) 0.72\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.7, Page 196" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "B = 0.9;\n", + "H = 0.25;\n", + "alpha = 1.1;\n", + "g = 9.81; \n", + "\n", + " #Calculations\n", + "Q = 1.84 * B * H**(3/2);\n", + "print \"Q(m3/s) :\",Q\n", + "\n", + "i = 1;\n", + "while(i <= 3):\n", + " v = Q /(1.2* (H+0.2));\n", + " print \"V(m/s) :\",round(v,4)\n", + " k = ((1 + alpha*v**2/(2*g*H))**1.5 -(alpha*v**2/(2*g*H))**1.5 );\n", + " Q = k* 1.84 * B * H**(3/2);\n", + " print \"Q(m3/s) :\",round(Q,4)\n", + " i = i+1;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Q(m3/s) : 0.207\n", + "V(m/s) : 0.3833\n", + "Q(m3/s) : 0.2161\n", + "V(m/s) : 0.4001\n", + "Q(m3/s) : 0.2168\n", + "V(m/s) : 0.4016\n", + "Q(m3/s) : 0.2169\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.8, Page 197" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "rho = 1000;\n", + "v = 66 ;\n", + "Q = 0.13;\n", + "g = 9.81; \n", + "z =240;\n", + "\n", + " #Calculations\n", + "P_Jet = 0.5*rho*v**2*Q;\n", + "P_Supp = rho*g*Q*z;\n", + "P_Lost = P_Supp -P_Jet;\n", + "h = P_Lost/(rho*g*Q);\n", + "eff = P_Jet/P_Supp;\n", + "\n", + "print \"Part(a) - power of the jet(kW): \",round(P_Jet/1000,2)\n", + "print \"Part(b) - power supplied from the reservoir (kW):\",round(P_Supp/1000,2) \n", + "print \"Part(C) - head used to overcome losses (m): \",round(h,2)\n", + "print \"Part(d) - Efficiency(%) : \",round(eff*100,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part(a) - power of the jet(kW): 283.14\n", + "Part(b) - power supplied from the reservoir (kW): 306.07\n", + "Part(C) - head used to overcome losses (m): 17.98\n", + "Part(d) - Efficiency(%) : 92.5\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.9, Page 203" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from scipy import integrate\n", + "\n", + " #Initializing the variables \n", + "r1 = 0.2;\n", + "Z1 = 0.500;\n", + "Z2 = 0.340;\n", + "g = 9.81;\n", + "rho = 0.9*1000 ;\n", + "\n", + " #Calculations\n", + "r0 = r1*((2-2*Z2/Z1)**0.5);\n", + "omega = round((2*g*Z1/r0**2)**0.5,1)\n", + "\n", + "def G(r):\n", + " out =r**3 - r*r0**2;\n", + " return out\n", + " \n", + "results = integrate.quad(G, r0, r1)\n", + "\n", + "F = rho*omega**2*math.pi*results[0];\n", + "\n", + "print r0,r1\n", + "print \"Part(a) Speed of rotation (rad/s ):\",round(omega,1)\n", + "print \"Part(b) Upward force on the cover (N): \",round(F,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "0.16 0.2\n", + "Part(a) Speed of rotation (rad/s ): 19.6\n", + "Part(b) Upward force on the cover (N): 56.3\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.10, Page 206" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "Ra = 0.2;\n", + "Rb = 0.1;\n", + "H = 0.18;\n", + "Za = 0.125;\n", + "\n", + " #Calculations\n", + "Y = Ra**2*(H-Za);\n", + "Zb = H - Y/Rb**2;\n", + "\n", + "print \"Height above datum of a point B on the free surface at a radius of 100 mm (mm):\",Zb*1000" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Height above datum of a point B on the free surface at a radius of 100 mm (mm): -40.0\n" + ] + } + ], + "prompt_number": 10 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_7.ipynb b/Fluid_Mechanics/Chapter_7.ipynb new file mode 100755 index 00000000..95848de2 --- /dev/null +++ b/Fluid_Mechanics/Chapter_7.ipynb @@ -0,0 +1,221 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:58b7373e6785b57ec4db0eaf49754884e3dad15de9e9489fc1c2bb500d413f82" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7: Two-Dimentional Idea Flow" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.2, Page 235" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables \n", + "x = 120; #Theta\n", + "r = 1;\n", + "v0 = 0.5;\n", + "q = 2;\n", + "theta =120;\n", + "\n", + " #Calculations\n", + "Vr = v0*r*math.cos(math.radians(theta)) +q/(2*math.pi)\n", + "Vth = -v0*math.sin(math.radians(theta))\n", + "V = (Vr**2+Vth**2)**0.5;\n", + "alpha = math.atan(abs(Vth/Vr));\n", + "bet = x-alpha*180/math.pi;\n", + "\n", + "\n", + "print \"Fluid Velocity(m/s) :\",round(V,3)\n", + "print \"Beta (Degree) :\",round(bet,2)\n", + "print \"Alpha (Degree) :\",round(alpha*180/math.pi,2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fluid Velocity(m/s) : 0.438\n", + "Beta (Degree) : 38.96\n", + "Alpha (Degree) : 81.04\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.3, Page 239" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "from scipy.optimize import fsolve\n", + "import sympy\n", + "from sympy import RootOf, I, Symbol\n", + " #Initializing the variables \n", + "q = 10;\n", + "def shi(x,y):\n", + " Z = (q/2/math.pi)*(math.atan(y/(x-1))-math.atan(y/(x+1))) - 25*y;\n", + " return Z\n", + "h = 0.0000001;\n", + "Vinf = 25;\n", + "x=Symbol('x')\n", + " #Calculations\n", + "#f = lambda x : x**2 - 2/(5*math.pi) -1\n", + "result = [RootOf(x**2- 2/(5*math.pi) -1,i) for i in (0,1)] \n", + "\n", + "root1=round(result[0],3)\n", + "root2=round(result[1],3)\n", + "l = abs(abs(root1)+abs(root2));\n", + "Ymax = 0.047;\n", + "width = 2*Ymax;\n", + "Vx = (shi(1-h,1)-shi(1-h,1-h))/h; # At x=1 the function atan is not defined hence taking x a little smaller.\n", + "Vy = -1*(shi(1-2*h,1)-shi(1-h,1))/h; # At x=1 the function atan is not defined hence taking x a little smaller.\n", + "\n", + "V = (Vx**2+Vy**2)**0.5;\n", + "rho = Symbol('rho')\n", + "dP = rho/2*round((V**2 - Vinf**2),2); #difference in pressure\n", + "\n", + "print \"Pressure Difference (N/m2) :\",dP\n", + "print \"Velocity (m/s) :\",round(V,2)\n", + "print \"Length of Rankine Body(m) :\",l\n", + "print \"Width of Rankine Body (m) :\",width" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure Difference (N/m2) : 16.93*rho\n", + "Velocity (m/s) : 25.67\n", + "Length of Rankine Body(m) : 2.124\n", + "Width of Rankine Body (m) : 0.094\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.4, Page 242" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math #Example 7.4\n", + "\n", + " #Initializing the variables\n", + "a = 0.02;\n", + "r = 0.05;\n", + "V0 = 1;\n", + "x = 135; # Theta\n", + "def shi(r,x):\n", + " Z = V0*math.sin(math.radians(x))*(r-((a**2)/r));\n", + " return Z\n", + "h = 0.0001;\n", + "\n", + " #Calculations\n", + "Vr = 57*(shi(r,x+h)-shi(r,x))/(r*h);\n", + "Vx = -1*(shi(r+h,x)-shi(r,x))/h;\n", + "\n", + "print \"Radial Velocity (m/s) :\",round(Vr,3)\n", + "print \"Normal component of velocity (m/s):\",round(Vx,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Radial Velocity (m/s) : -0.591\n", + "Normal component of velocity (m/s): -0.82\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.5, Page 246" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "rho = 1000;\n", + "r = 2;\n", + "psi = 2*math.log(r);\n", + "\n", + " #Calculations\n", + "y = psi/math.log(r); # y = GammaC / 2*pi\n", + "v = y/r;\n", + "dPbydr = rho*v**2/r;\n", + "print \"Pressuer Gradient (N/m3 ) :\",dPbydr" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressuer Gradient (N/m3 ) : 500.0\n" + ] + } + ], + "prompt_number": 5 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_8.ipynb b/Fluid_Mechanics/Chapter_8.ipynb new file mode 100755 index 00000000..cd940a0c --- /dev/null +++ b/Fluid_Mechanics/Chapter_8.ipynb @@ -0,0 +1,73 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:b0713ad3f7c2f18448b69f687926b2d86e094144766f7b44f7fc20525a516074" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8: Dimensional Analysis" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.1, Page 268" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "P1 = 57; #Power in SI\n", + "M = 1/14.6; #Ratio of mass in SI/British\n", + "L = 1/0.3048; #Ratio of length in SI/British\n", + "T = 1; #Ratio of time in SI/British\n", + "\n", + "#Calculations\n", + "'''\n", + "n1 is the horsepower and N1 is the corresponding number of British units (ft*lbf/second),\n", + "then N1 = 550*n1.\n", + "Similarly, for the SI system, n2 in kW,\n", + " N2 = 1000*n2\n", + "''' \n", + "N = (T**3)/(M*L**2) # N2/N1\n", + "n = N*550/1000 #n2/n1 \n", + "P2 = n*P1 ; #Power in kW\n", + "\n", + "print \"Power in kW :\",round(P2,1)\n", + "print \"Conversion Factor :\",round(n,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power in kW : 42.5\n", + "Conversion Factor : 0.746\n" + ] + } + ], + "prompt_number": 1 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/Chapter_9.ipynb b/Fluid_Mechanics/Chapter_9.ipynb new file mode 100755 index 00000000..5d9fe9d6 --- /dev/null +++ b/Fluid_Mechanics/Chapter_9.ipynb @@ -0,0 +1,337 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:38d704564aa6536fc6da296a78f2a33e8cb9eb20a3ce0fa8f700546de7fd07b5" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 9: Similarity" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.1, Page 291" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + "\n", + "\n", + " #Initializing the variables\n", + "Vp = 10;\n", + "LpByLm = 20;\n", + "rhoPbyRhoM = 1;\n", + "muPbymuM = 1;\n", + " #Calculations\n", + "Vm = Vp*LpByLm*rhoPbyRhoM*muPbymuM;\n", + " \n", + "print \"Mean water tunnel flow velocity (m/s) :\",Vm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean water tunnel flow velocity (m/s) : 200\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.2, Page 292" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + "\n", + " #Initializing the variables\n", + "Vp = 3;\n", + "LpByLm = 30;\n", + "rhoPbyRhoM = 1;\n", + "muPbymuM = 1;\n", + "\n", + " #Calculations\n", + "Vm = Vp*LpByLm*rhoPbyRhoM*muPbymuM;\n", + " \n", + "print \"Mean water tunnel flow velocity (m/s):\",Vm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean water tunnel flow velocity (m/s): 90\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.3, Page 293" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + "\n", + " #Initializing the variables\n", + "Vp = 100;\n", + "cP = 340;\n", + "cM = 295;\n", + "rhoM = 7.7;\n", + "rhoP = 1.2;\n", + "muM = 1.8*10**-5;\n", + "muP = 1.2*10**-5;\n", + "\n", + " #Calculations\n", + "Vm = Vp*(cM/cP);\n", + "LmByLp = 1/((Vm/Vp)*(muM/muP)*(rhoM/rhoP));\n", + "FmByFp = (rhoM/rhoP)*(Vm/Vp)**2*(LmByLp)**2;\n", + "\n", + "print 'Mean wind tunnel flow velocity(m/s) :',round(Vm,2)\n", + "print \"Percentage ratio of forces (%) :\",round(FmByFp*100,2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mean wind tunnel flow velocity(m/s) : 86.76\n", + "Percentage ratio of forces (%) : 6.93\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.4, Page 295" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + "\n", + " #Initializing the variables\n", + "def pLossRatio(RatRho,RatMu,RatL):\n", + " Z = RatRho*RatMu**2*RatL**2;\n", + " return Z\n", + "\n", + " #Calculations\n", + " #Case (a) : water is used\n", + "RatRho = 1;\n", + "RatMu = 1;\n", + "RatL = 10;\n", + "print \"(a)Ratio of pressure losses between the model and the prototype if water is used :\",pLossRatio(RatRho,RatMu,RatL)\n", + "\n", + "# Case (b) : air is used\n", + "RatRho = 1000/1.23;\n", + "RatMu = 1.8*10**-5/10**-3;\n", + "\n", + "print \"(b)Ratio of pressure losses between the model and the prototype if air is used :\",round(pLossRatio(RatRho,RatMu,RatL),2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Ratio of pressure losses between the model and the prototype if water is used : 100\n", + "(b)Ratio of pressure losses between the model and the prototype if air is used : 26.34\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.5, Page 296" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + " #Initializing the variables\n", + "scale = 1/50;\n", + "ratArea = scale**2;\n", + "Qp = 1200;\n", + "\n", + " #Calculations\n", + "LmByLp = (ratArea)**0.5;\n", + "VmByVp = (LmByLp)**0.5;\n", + "Qm = Qp*ratArea*VmByVp;\n", + "\n", + "print \"Water flow rate (m3/s ):\",round(Qm,3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Water flow rate (m3/s ): 0.068\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.6, Page 298" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + " #Initializing the variables\n", + "Qa = 2;\n", + "Na = 1400;\n", + "rhoA = 0.92;\n", + "rhoS = 1.3;\n", + "DaByDs = 1;\n", + "dPa = 200;\n", + "\n", + " #Calculations\n", + "Ns = Na*(rhoA/rhoS)*(DaByDs);\n", + "Qs = Qa*(Ns/Na);\n", + "dPs = dPa *(rhoS/rhoA)*(Ns/Na)**2*(1/DaByDs)**2;\n", + "\n", + "print \"Fan test speed (rev/s):\",round(Ns,1)\n", + "print \"Flow rate (m3/s) :\",round(Qs,3)\n", + "print \"Pressure rise (N/m2 ) :\",round(dPs,1) " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fan test speed (rev/s): 990.8\n", + "Flow rate (m3/s) : 1.415\n", + "Pressure rise (N/m2 ) : 141.5\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.8, Page 304" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "import math\n", + " \n", + "\n", + " #Initializing the variables\n", + "V = 300 # Volume rate\n", + "w = 3;\n", + "d = 65;\n", + "l = 30;\n", + "scaleH = 30/1000/18;\n", + "scaleV = 1/60;\n", + "ZmByZr = 1/60;\n", + "LmByLr = 1/600;\n", + "rho = 1000;\n", + "mu = 1.14*10**-3;\n", + "\n", + " #Calculations\n", + "Vr = V/(w*d); \n", + "Vm =Vr*(ZmByZr)**0.5;\n", + "m = (w*d*scaleH*scaleV)/(d*scaleH + 2*w*scaleV);\n", + "Rem = rho*Vm*m/mu;\n", + "TmByTr = LmByLr*(1/ZmByZr)**0.5;\n", + "Tm = 12.4*60*TmByTr;\n", + "\n", + "\n", + "\n", + "print \"Tidal Period (minutes):\",round(Tm,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Tidal Period (minutes): 9.6\n" + ] + } + ], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Fluid_Mechanics/README.txt b/Fluid_Mechanics/README.txt index 8c978256..d96dbe87 100755 --- a/Fluid_Mechanics/README.txt +++ b/Fluid_Mechanics/README.txt @@ -1,10 +1,10 @@ -Contributed By: Rahul Joshi -Course: mtech -College/Institute/Organization: IIT Bombay -Department/Designation: Mechanical Engineering -Book Title: Fluid Mechanics -Author: Irfan A. Khan -Publisher: Holt, Rinehart and Winston, The Dryden Press , Saunders College Publishing -Year of publication: 1987 -Isbn: 0-03-071473-7 -Edition: 1st Edition
\ No newline at end of file +Contributed By: Ashish Kumar +Course: btech +College/Institute/Organization: IITB +Department/Designation: Aerospace Engg. +Book Title: Fluid Mechanics +Author: John F. Douglas +Publisher: Pearson Education +Year of publication: 2005 +Isbn: 978-0-13-129293-2 +Edition: 5th
\ No newline at end of file diff --git a/Fluid_Mechanics/screenshots/incresepressure.png b/Fluid_Mechanics/screenshots/incresepressure.png Binary files differnew file mode 100755 index 00000000..aaeed6e9 --- /dev/null +++ b/Fluid_Mechanics/screenshots/incresepressure.png diff --git a/Fluid_Mechanics/screenshots/veldistrtn.png b/Fluid_Mechanics/screenshots/veldistrtn.png Binary files differnew file mode 100755 index 00000000..1b513465 --- /dev/null +++ b/Fluid_Mechanics/screenshots/veldistrtn.png diff --git a/Fluid_Mechanics/screenshots/veldistrtn_1.png b/Fluid_Mechanics/screenshots/veldistrtn_1.png Binary files differnew file mode 100755 index 00000000..359a0fa5 --- /dev/null +++ b/Fluid_Mechanics/screenshots/veldistrtn_1.png |