diff options
author | root | 2014-07-14 15:31:28 +0530 |
---|---|---|
committer | root | 2014-07-14 15:31:28 +0530 |
commit | 5a3a66e158c99bbf7900278d8e7056136d628dbe (patch) | |
tree | 6d8c0f65acb3e9451d5092e8d718e7febcbd0d05 /Transport_Phenomena:_A_Unified_Approach | |
parent | 69aa63da6cb2bc3f5822533e3f97c46d7efbaafc (diff) | |
download | Python-Textbook-Companions-5a3a66e158c99bbf7900278d8e7056136d628dbe.tar.gz Python-Textbook-Companions-5a3a66e158c99bbf7900278d8e7056136d628dbe.tar.bz2 Python-Textbook-Companions-5a3a66e158c99bbf7900278d8e7056136d628dbe.zip |
adding books
Diffstat (limited to 'Transport_Phenomena:_A_Unified_Approach')
18 files changed, 6643 insertions, 0 deletions
diff --git a/Transport_Phenomena:_A_Unified_Approach/README.txt b/Transport_Phenomena:_A_Unified_Approach/README.txt new file mode 100755 index 00000000..d5738e6f --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/README.txt @@ -0,0 +1,10 @@ +Contributed By: pratik gandhi +Course: bca +College/Institute/Organization: Cybercom Creation +Department/Designation: Developer +Book Title: Transport Phenomena: A Unified Approach +Author: Robert S. Brodkey & Harry C. Hershey +Publisher: McGraw - Hill Book Company, New York +Year of publication: 1988 +Isbn: 0-07-007963-3 +Edition: 1st
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch1.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch1.ipynb new file mode 100755 index 00000000..11b7627d --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch1.ipynb @@ -0,0 +1,118 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 1 : introduction to transport phenomena" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.1 - Page No : 6\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "v=0.01283; \t\t\t #[m**3] - volume of tank in m**3\n", + "v=0.4531; \t\t\t #[ft**3] - volume of tank in ft**3\n", + "p=2; \t\t\t #[atm] - pressure\n", + "T=1.8*300; \t\t\t #[degR] - temperature\n", + "R=0.73; \t\t \t #[(atm*ft**3)/(lbmol*degR)] - gas constant\n", + "\n", + "# Calculations\n", + "# usin the equation of state for an ideal gas pv=nRT\n", + "n=(p*v)/(R*T);\n", + "\n", + "xN2=0.5; \t\t\t # fractiom of N2 in math.tank\n", + "nN2=xN2*n;\n", + "Ca=nN2/v;\n", + "\n", + "# Results\n", + "print \"no. of moles , n = %.3e\"%n\n", + "print \"Ca = %.2e lb*mol/ft**3\"%(Ca);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "no. of moles , n = 2.299e-03\n", + "Ca = 2.54e-03 lb*mol/ft**3\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.2 - Page No :9\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from numpy import *\n", + "\n", + "# the three unknowns are x,y,z\n", + "# the three equations are-\n", + "# x+y+z = 1500\n", + "# (1) 0.05*x+0.15*y+0.40*z = 1500*0.25\n", + "# (2) 0.95*x+0.00*y+0.452*z = 1500*0.50\n", + "# Variables\n", + "a = array([[1, 1, 1],[0.05, 0.15, 0.40],[0.95, 0 ,0.452]])\n", + "d = array([[1500.],[1500.*0.25],[1500.*0.50]])\n", + "\n", + "# Calculations\n", + "#ainv = linalg.inv(a);\n", + "#sol = ainv * d;\n", + "sol = linalg.solve(a,d)\n", + "# Results\n", + "print \"the amount of concentrated HNO3 is %.0fkg \\\n", + "\\nthe amount of concentrated H2SO4 is %.0fkg \\\n", + "\\nthe amount of waste acids is %.0fkg\"%(sol[1],sol[0],round(sol[2],-1));\n", + "\n", + "# Answer may be different because of rounding error and inbuilt function solve." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the amount of concentrated HNO3 is 307kg \n", + "the amount of concentrated H2SO4 is 423kg \n", + "the amount of waste acids is 770kg\n" + ] + } + ], + "prompt_number": 7 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch10.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch10.ipynb new file mode 100755 index 00000000..92be1ce5 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch10.ipynb @@ -0,0 +1,957 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 10 : Fluid flow in ducts" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.1 - Page No :405\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "# Variables\n", + "T = 30.; \t\t\t #[degC] - temperature\n", + "d = 8.265*10**-4; \t\t\t #[m] - diameter of the capillary viscometer\n", + "deltapbyL = -0.9364; \t\t #[psi/ft] - pressure drop per unit length\n", + "\n", + "# Calculations\n", + "deltapbyL = deltapbyL*(2.2631*10**4); \t\t\t #[kg/m**2*sec**2] - pressure drop per unit length\n", + "Q = 28.36*(10**-6)*(1./60);\n", + "p = (0.88412-(0.92248*10**-3)*T)*10**3; \t\t\t #[kg/m**3] - density\n", + "s = (math.pi*(d**2))/4.;\n", + "U = Q/s;\n", + "tauw = (d/4.)*(-deltapbyL);\n", + "shearrate = (8*U)/d;\n", + "mu = tauw/(shearrate);\n", + "\n", + "# Results\n", + "print \" The viscosity is mu = %.3ef kg/m*sec = %.4f cP\"%(mu,mu*10**3);\n", + "print \" Finally, it is important to check the reynolds number to make sure the above equation applies\"\n", + "Nre = (d*U*p)/(mu);\n", + "print \" Nre = %d\"%Nre\n", + "print \" The flow is well within the laminar region and therefore the above equation applies\";\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The viscosity is mu = 5.135e-04f kg/m*sec = 0.5135 cP\n", + " Finally, it is important to check the reynolds number to make sure the above equation applies\n", + " Nre = 1214\n", + " The flow is well within the laminar region and therefore the above equation applies\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.2 - Page No :407\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Nreold = 1214.;\n", + "Uold = 0.8810;\n", + "Nre = 13700.;\n", + "U = Uold*(Nre/Nreold);\n", + "Lbyd = 744.;\n", + "T = 30.; \n", + "\n", + "# Calculations\n", + "# umsing the newton raphson method to calculate the value of f from the equation - 1/(f**(1/2)) = 4*math.log(Nre*(f**(1/2)))-0.4\n", + "f = 0.007119;\n", + "p = (0.88412-(0.92248*10**-3)*T)*10**3; \t\t\t #[kg/m**3] - density\n", + "tauw = (1./2)*p*(U**2)*f;\n", + "deltap = tauw*(4.)*(Lbyd);\n", + "d = 0.03254/12; \t\t\t #[ft]\n", + "L = Lbyd*d;\n", + "\n", + "# Results\n", + "print \" Pressure drop is -deltap = %.3e N/m**2 = %.1f kpa = 130 psi\"%(deltap,deltap*10**-3); \n", + "print \" A pressure drop of 130 psi on a tube of length of %.3f ft is high and \\\n", + "\\nshows the impracticality of flows at high reynolds number in smaller tubes\"%(L);\n", + "\n", + "# Answer may vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure drop is -deltap = 8.968e+05 N/m**2 = 896.8 kpa = 130 psi\n", + " A pressure drop of 130 psi on a tube of length of 2.017 ft is high and \n", + "shows the impracticality of flows at high reynolds number in smaller tubes\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.3 - Page No :414\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "u = 1./60; \t\t\t #[m/sec] - velocity\n", + "p = 1000.; \t\t\t #[kg/m**3] - density\n", + "mu = 1*10.**-3; \t\t #[kg/m*sec] - vismath.cosity\n", + "d = 6*10.**-2; \t\t #[m] - insid_e diameter of tube\n", + "L = 300.; \t\t\t #[m] - length of the tube\n", + "\n", + "# Calculations\n", + "Nre = (d*u*p)/(mu);\n", + "f = 16./Nre;\n", + "deltap = (4.*f)*(L/d)*((p*(u**2))/2.);\n", + "\n", + "# Results\n", + "print \"Nre = \",Nre,\"therefore the flow is laminar\"\n", + "print \"f = \" , f\n", + "print \"Pressure drop -delta P = %.2f N/m**2 = %.4f kPa = %.3e psi\"%(deltap,deltap*10**-3,deltap*1.453*10**-4);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Nre = 1000.0 therefore the flow is laminar\n", + "f = 0.016\n", + "Pressure drop -delta P = 44.44 N/m**2 = 0.0444 kPa = 6.458e-03 psi\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.4 - Page No :415\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "from numpy import *\n", + "\n", + "# Variables\n", + "# given\n", + "d = 6.*10**-2; \t\t\t #[m] - insid_e diameter of tube\n", + "p = 1000.; \t\t\t #[kg/m**3] - density\n", + "# for smooth pipe\n", + "Nre = array([10**4, 10**5]);\n", + "f = array([0.0076, 0.0045]);\n", + "mu = 10.**-3; \t\t\t #[kg/m**2*s]\n", + "U = (Nre*mu)/(d*p);\n", + "L = 300.; \t\t\t #[m] - length of the tube\n", + "\n", + "# Calculations\n", + "deltap = zeros(2)\n", + "for i in range(2):\n", + " deltap[i] = (4*f[i])*(L/d)*((p*(U[i]**2))/2.);\n", + "\n", + "\n", + "# Results\n", + "print \"for smooth pipe\"\n", + "print \" Nre f -deltap\";\n", + "print \" %6.0f %6.4f %6.3f\"%(Nre[0],f[0],deltap[0])\n", + "print \" %6.0f %6.4f %6.3f\"%(Nre[1],f[1],deltap[1])\n", + "\n", + "# for commercial steel\n", + "Nre = array([10**4, 10**5]);\n", + "f = array([0.008 ,0.0053]);\n", + "U = (Nre*mu)/(d*p);\n", + "L = 300.; \t\t\t #[m] - length of the tube\n", + "for i in range(2):\n", + " deltap[i] = (4*f[i])*(L/d)*((p*(U[i]**2))/2);\n", + "\n", + "print \"\\nfor commercial steel pipe\"\n", + "print \" Nre f -deltap\";\n", + "print \" %6.0f %6.4f %6.3f\"%(Nre[0],f[0],deltap[0])\n", + "print \" %6.0f %6.4f %6.3f\"%(Nre[1],f[1],deltap[1])\n", + "\n", + "# for cast iron pipe\n", + "Nre = array([10**4 ,10**5]);\n", + "f = array([0.009 ,0.0073]);\n", + "U = (Nre*mu)/(d*p);\n", + "L = 300.; \t\t\t #[m] - length of the tube\n", + "for i in range(2):\n", + " deltap[i] = (4*f[i])*(L/d)*((p*(U[i]**2))/2);\n", + "\n", + "print \"\\nfor cast iron pipe\"\n", + "print \" Nre f -deltap\";\n", + "print \" %6.0f %6.4f %6.3f\"%(Nre[0],f[0],deltap[0])\n", + "print \" %6.0f %6.4f %6.3f\"%(Nre[1],f[1],deltap[1])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "for smooth pipe\n", + " Nre f -deltap\n", + " 10000 0.0076 2111.111\n", + " 100000 0.0045 125000.000\n", + "\n", + "for commercial steel pipe\n", + " Nre f -deltap\n", + " 10000 0.0080 2222.222\n", + " 100000 0.0053 147222.222\n", + "\n", + "for cast iron pipe\n", + " Nre f -deltap\n", + " 10000 0.0090 2500.000\n", + " 100000 0.0073 202777.778\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.5 - Page No :417\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "L = 300.; \t\t\t #[m] - length of pipe\n", + "d = 0.06; \t\t\t #[m] - insid_e diameter\n", + "deltap = 147.*10**3; \t\t #[Pa] - pressure the pump can supply\n", + "ebyd = 0.000762; \t\t\t # relative roughness\n", + "p = 1000.; \t\t\t #[kg/m**3] - density\n", + "mu = 1.*10**-3; \t\t\t #[kg/m*sec] - viscosity\n", + "tauw = (d*(deltap))/(4.*L);\n", + "\n", + "# using the hit and trial method for estimation of flow velocity\n", + "# Calculations\n", + "# let \n", + "f = 0.005;\n", + "U = ((2*tauw)/(p*f))**(1./2);\n", + "Nre = (d*U*p)/mu;\n", + "\n", + "# from the graph value of f at the above calculated reynolds no. and the given relative roughness(e/d)\n", + "f = 0.0054;\n", + "U = ((2*tauw)/(p*f))**(1./2);\n", + "Nre = (d*U*p)/mu;\n", + "\t\t\t # from the graph value of f at the above calculated reynolds no. and the given relative roughness(e/d)\n", + "f = 0.0053;\n", + "U = ((2*tauw)/(p*f))**(1./2);\n", + "Nre = (d*U*p)/mu;\n", + "\n", + "# from the graph value of f at the above calculated reynolds no. and the given relative roughness(e/d)\n", + "f = 0.0053;\n", + "# At this point the value of f is deemed unchanged from the last iteration .Hence, the values obtained after the third iteration are the converged values\n", + "\n", + "# Results\n", + "print \" The maximum flow velocity is U = %f m/sec\"%(U);\n", + "\n", + "# Answer may vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The maximum flow velocity is U = 1.665408 m/sec\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.6 - Page No :419\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "L = 300.; \t\t\t #[m] - length of pipe\n", + "d = 0.06; \t\t\t #[m] - insid_e diameter\n", + "deltap = 147.*10**3; \t #[Pa] - pressure the pump can supply\n", + "ebyd = 0.000762; \t\t # relative roughness\n", + "p = 1000.; \t\t\t #[kg/m**3] - density\n", + "\n", + "# Calculations\n", + "mu = 1*10**-3; \t\t\t #[kg/m*sec] - viscosity\n", + "Nvk = ((d*p)/mu)*((d*(deltap))/(2*L*p))**(1./2);\n", + "\n", + "# From the fig at given von karman no and relative roughness the value of f is-\n", + "f = 0.0055;\n", + "Nre = Nvk/(f**(1./2))\n", + "U = (Nre*mu)/(d*p);\n", + "\n", + "# Results\n", + "print \"von karman no. %.0f\"%Nvk\n", + "print \" Average velocity = %.2f m/sec\"%(U);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "von karman no. 7275\n", + " Average velocity = 1.63 m/sec\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.7 - Page No :422\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "L = 300.; \t\t\t #[m] - length of pipe\n", + "d = 0.06; \t\t\t #[m] - insid_e diameter\n", + "p = 1000.; \t\t\t #[kg/m**3] - density\n", + "mu = 1.*10**-3; \t\t\t #[kg/m*sec] - viscosity\n", + "\n", + "# Calculations\n", + "Nre = array([10.**4, 10.**5]);\n", + "U = (Nre*mu)/(d*p);\n", + "velocityhead = (U**2)/2.;\n", + "N = (L/d)/45.; \t\t\t # no of velocity heads\n", + "deltap = p*N*(velocityhead);\n", + "\n", + "# Results\n", + "for i in range(2):\n", + " print \"Nre = \",Nre[i]\n", + " print \" velocity head = %.5f m**2/sec**2\"%(velocityhead[i]);\n", + " print \" -deltap = %.3f kPa = %.3f psi\"%(deltap[i]*10**-3,deltap[i]*1.453*10**-4);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Nre = 10000.0\n", + " velocity head = 0.01389 m**2/sec**2\n", + " -deltap = 1.543 kPa = 0.224 psi\n", + "Nre = 100000.0\n", + " velocity head = 1.38889 m**2/sec**2\n", + " -deltap = 154.321 kPa = 22.423 psi\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.8 - Page No :439\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "mu = 6.72*10**-4; \t\t #[lb/ft*sec] - viscosity\n", + "p = 62.4; \t\t\t #[lb/ft**3] - density\n", + "S = 0.03322; \t\t\t #[ft**2] - flow area\n", + "d = 0.206; \t\t\t #[ft]\n", + "e = 1.5*10**-4; \t\t # absolute roughness for steel pipe\n", + "ebyd = e/d;\n", + "Nre = 10.**5;\n", + "\n", + "# friction factor as read from fig in book for the given reynolds no. and relative roughness is-\n", + "f = 0.0053;\n", + "U = (Nre*mu)/(p*d);\n", + "Q = U*S;\n", + "gc = 32.174;\n", + "\n", + "# Calculations\n", + "# (a) equivalent length method\n", + "deltapbyL = f*(4/d)*(p*(U**2))*(1/(2*gc))*(6.93*10**-3);\n", + "\n", + "# using L = Lpipe+Lfittings+Lloss;\n", + "Lfittings = 2342.1*d;\n", + "kc = 0.50; \t\t\t # due to contraction loss\n", + "ke = 1.; \t\t\t # due to enlargement loss\n", + "Lloss = (kc+ke)*(1./(4*f))*d;\n", + "Lpipe = 137.;\n", + "L = Lpipe+Lfittings+Lloss;\n", + "deltap = deltapbyL*L;\n", + "patm = 14.696; \t\t\t #[psi] - atmospheric pressure\n", + "p1 = patm+deltap;\n", + "print \" a)The inlet pressure is p1 = %.1f psi\"%(p1);\n", + "\n", + "# (b) loss coefficient method\n", + "# using the equation deltap/p = -(Fpipe+Ffittings+Floss)\n", + "L = 137.;\n", + "kfittings = 52.39;\n", + "sigmaF = ((4.*f*(L/d))+kc+ke+kfittings)*((U**2)/(2*gc));\n", + "deltap = (p*sigmaF)/(144.);\n", + "p1 = patm+deltap;\n", + "\n", + "# Results\n", + "print \" b)The inlet pressure is p1 = %.1f psi\"%(p1);\n", + "print \" Computation of the pressure drop by the loss coefficient method differs from the equivalent length \\\n", + " \\nmethod by less than 1 psi\";\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a)The inlet pressure is p1 = 26.7 psi\n", + " b)The inlet pressure is p1 = 27.2 psi\n", + " Computation of the pressure drop by the loss coefficient method differs from the equivalent length \n", + "method by less than 1 psi\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.9 - Page No :443\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "L1 = 50.; \t\t\t #[m] - length of first pipe\n", + "L2 = 150.; \t\t\t #[m] - length of second pipe\n", + "L3 = 100.; \t\t\t #[m] - length of third pipe\n", + "d1 = 0.04; \t\t\t #[m] - diameter of first pipe\n", + "d2 = 0.06; \t\t\t #[m] - diameter of second pipe\n", + "d3 = 0.08; \t\t\t #[m] - diameter of third pipe\n", + "deltap = -1.47*10**5; \t\t\t #[kg/m*sec] - pressure drop\n", + "mu = 1*10.**-3; \t\t\t #[kg/m*sec] - viscosity\n", + "p = 1000.; \t\t\t #[kg/m**3] - density\n", + "\n", + "# Calculation and Results\n", + "# for branch 1\n", + "S = (math.pi*(d1**2))/4;\n", + "Nvk = ((d1*p)/mu)*(-(d1*deltap)/(2*L1*p))**(1./2);\n", + "f = (1./(4*math.log10(Nvk)-0.4))**2;\n", + "U = (((-deltap)/p)*(d1/L1)*(2./4)*(1./f))**(1./2);\n", + "w1 = p*U*S;\n", + "print \" For first branch w1 = %.2f kg/sec\"%(w1);\n", + "\t\t\t # for branch 2\n", + "S = (math.pi*(d2**2))/4;\n", + "Nvk = ((d2*p)/mu)*(-(d2*deltap)/(2*L2*p))**(1./2);\n", + "f = (1./(4*math.log10(Nvk)-0.4))**2;\n", + "U = (((-deltap)/p)*(d2/L2)*(2./4)*(1./f))**(1./2);\n", + "w2 = p*U*S;\n", + "print \" For second branch w2 = %.2f kg/sec\"%(w2);\n", + "\t\t\t # for branch 3\n", + "S = (math.pi*(d3**2))/4;\n", + "Nvk = ((d3*p)/mu)*(-(d3*deltap)/(2*L3*p))**(1./2);\n", + "f = (1./(4*math.log10(Nvk)-0.4))**2;\n", + "U = (((-deltap)/p)*(d3/L3)*(2./4)*(1./f))**(1./2);\n", + "w3 = p*U*S;\n", + "print \" For third branch w3 = %.2f kg/sec\"%(w3);\n", + "\n", + "# total flow rate w = w1+w2+w3\n", + "w = w1+w2+w3;\n", + "print \" total flow rate is w = %.1f kg/sec\"%(w);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " For first branch w1 = 4.74 kg/sec\n", + " For second branch w2 = 7.59 kg/sec\n", + " For third branch w3 = 20.42 kg/sec\n", + " total flow rate is w = 32.7 kg/sec\n" + ] + } + ], + "prompt_number": 36 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.11 - Page No : 447\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "sp = 1.1;\n", + "p = sp*62.4; \t\t\t #[lb/ft**3] - density\n", + "mu = 2*6.72*10**-4; \t #[lb/ft*sec] - viscosity\n", + "Q = 400.; \t\t\t #[gpm] - volumetric flow rate\n", + "e = 1.5*10**4; \t\t #roughness of steel pipe\n", + "gc = 32.174;\n", + "kexit = 1.;\n", + "kentrance = 0.5;\n", + "\n", + "# Calculations\n", + "# 4 in schedule pipe\n", + "d = 4.026/12; \t\t\t #[ft]\n", + "U4 = Q/39.6; \t\t\t #[ft/sec]\n", + "Lgv = 13.08;\n", + "Lglv = 114.1;\n", + "Le = 40.26;\n", + "Lpipe_4 = 22.;\n", + "Lfittings_4 = Lgv+Lglv+Le;\n", + "Lloss = 0;\n", + "L_4 = Lpipe_4+Lfittings_4+Lloss;\n", + "Nre_4 = (d*U4*p)/mu;\n", + "f = 0.00475;\n", + "Fpipe_4 = ((4*f*L_4)/d)*(U4**2)*(1/(2*gc));\n", + "Floss_4 = ((kentrance+0)*(U4**2))/(2*gc);\n", + "\n", + "# 5 in schedule pipe\n", + "d = 5.047/12;\n", + "U5 = Q/62.3;\n", + "Lgv = 10.94;\n", + "Le = 75.71;\n", + "Lpipe_5 = 100.;\n", + "Lfittings_5 = Lgv+Le;\n", + "Lloss = 0.;\n", + "L_5 = Lpipe_5+Lfittings_5+Lloss;\n", + "Nre = (d*U5*p)/mu;\n", + "f = 0.00470;\n", + "Fpipe_5 = ((4*f*L_5)/d)*(U5**2)*(1./(2*gc));\n", + "Floss_5 = ((kexit+0)*(U5**2))/(2*gc);\n", + "\n", + "# 6 in schedule pipe\n", + "d = 6.065/12;\n", + "U6 = Q/90.;\n", + "Lgv = 6.570;\n", + "Le = 30.36;\n", + "Lpipe_6 = 4.;\n", + "Lfittings_6 = Lgv+Le;\n", + "Lloss = 0.;\n", + "L_6 = Lpipe_6+Lfittings_6+Lloss;\n", + "Nre = (d*U6*p)/mu;\n", + "f = 0.00487;\n", + "Fpipe_6 = ((4*f*L_6)/d)*(U6**2)*(1./(2*gc));\n", + "kc = 0.50;\n", + "Floss_6 = kc*((U6**2)/(2*gc));\n", + "Ffittings = 0.;\n", + "deltap_6 = p*(Fpipe_6+Ffittings+Floss_6);\n", + "\n", + "# 3/4 in 18 gauge tube\n", + "d = 0.652112/12;\n", + "L_3by4 = 15.;\n", + "U_3by4 = (Q*0.962)/100.;\n", + "Floss_3by4 = 100.*(kexit+kentrance)*((U_3by4**2.)/2.);\n", + "Nre = d*U_3by4*p*(1./mu);\n", + "f = 0.08*((Nre)**(-1./4))+0.012*((d)**(1./2));\n", + "deltap_3by4 = ((4*f*p*L_3by4)/d)*((U_3by4**2)/(2*gc));\n", + "Fpipe_3by4 = 100.*((4.*f*L_3by4)/d)*((U_3by4**2.)/(2.*gc));\n", + "deltap_spraysystem = 25.; \t\t\t #[psi]\n", + "Fspraysystem = (deltap_spraysystem/p)*(144.);\n", + "delta_p = (p*(kexit+kentrance))*((U_3by4**2.)/(2.*gc))\n", + "Fpipe = Fpipe_4+Fpipe_5+Fpipe_6;\n", + "Floss = Floss_4+Floss_5+Floss_6+Floss_3by4;\n", + "ws = 0. + (((15.**2)-0)/(2*gc))+38.9+382.5;\n", + "w = (Q*p)/(7.48);\n", + "Ws = (ws*w)/(33000.);\n", + "efficiency = 0.6;\n", + "Ws_actual = Ws/efficiency\n", + "\n", + "# Results\n", + "print \" The power supplied to the pump is %.1f hp\"%(Ws_actual);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The power supplied to the pump is 78.8 hp\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.12 - Page No :454\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "kexit = 1.;\n", + "kentrance = 0.5;\n", + "Q = 400.; \t\t\t #[gpm] - volumetric flow rate\n", + "gc = 32.174;\n", + "\n", + "# for 4 inch pipe\n", + "d = 4.026; \t\t #[inch]\n", + "L = 22.; \t\t\t #[ft]\n", + "Lbyd = (L*12)/(d);\n", + "\n", + "# Calculation and Results\n", + "# adding the contributions due to fittings \n", + "Lbyd = Lbyd+3*13+340+4*30;\n", + "N = Lbyd/45.;\n", + "N = N+kentrance+0;\n", + "U4 = Q/39.6; \t\t\t #[ft/sec]\n", + "Fpipe_4 = (N*(U4**2))/(2*gc);\n", + "print \" F4 in.pipes = %.2f ft*lbf/lbm\"%(Fpipe_4);\n", + "\n", + "# for 5 inch pipe\n", + "L = 100.; \t\t\t #[ft]\n", + "d = 5.047; \t\t\t #[inch]\n", + "Lbyd = (L*12.)/(d);\n", + "\n", + "# valves contributes 26 diameters and six elbows contribute 30 diameters ecah;therefore\n", + "Lbyd = Lbyd+26+6*30;\n", + "N = Lbyd/45.; \t\t\t # no. of velocity heads\n", + "N = N+kexit+kentrance;\n", + "U5 = Q/62.3;\n", + "Fpipe_5 = (N*(U5**2))/(2*gc);\n", + "print \" F5 in.pipes = %.2f ft*lbf/lbm\"%(Fpipe_5);\n", + "\n", + "# for 6 inch pipe\n", + "d = 6.065; \t\t #[inch]\n", + "L = 5.; \t\t\t #[ft]\n", + "Lbyd = (L*12.)/(d);\n", + "\n", + "# adding the contributions due to fittings \n", + "Lbyd = Lbyd+1*13+2*30;\n", + "N = Lbyd/45;\n", + "N = N+0+kentrance;\n", + "U6 = Q/90.;\n", + "Fpipe_6 = (N*(U6**2))/(2*gc);\n", + "print \" F6 in.pipes = %.3f ft*lbf/lbm\"%(Fpipe_6);\n", + "F_largepipes = Fpipe_4+Fpipe_5+Fpipe_6;\n", + "print \" Flarge pipes = %.2f ft*lbf/lbm\"%(F_largepipes);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " F4 in.pipes = 20.69 ft*lbf/lbm\n", + " F5 in.pipes = 7.28 ft*lbf/lbm\n", + " F6 in.pipes = 0.719 ft*lbf/lbm\n", + " Flarge pipes = 28.68 ft*lbf/lbm\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.14 - Page No :459\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "l = 0.09238;\n", + "rh = 0.1624*l;\n", + "L = 300.;\n", + "de = 4.*rh;\n", + "p = 1000.; \t\t\t #[kg/m**3]\n", + "mu = 10.**-3; \t\t\t #[kg/m*sec]\n", + "Uavg = 1.667;\n", + "\n", + "# Calculations\n", + "Nre = (de*Uavg*p)/mu;\n", + "f = 0.0053;\n", + "deltap = ((4.*f*L)/de)*(p*(Uavg**2)*(1./2));\n", + "\n", + "# Results\n", + "print \" Pressure drop -deltap = %.3e kg/m*s = %.3e N/m**2 = %.1f kPa\"%(deltap,deltap,deltap*10**-3);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure drop -deltap = 1.473e+05 kg/m*s = 1.473e+05 N/m**2 = 147.3 kPa\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.15 - Page No :466\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "Q = 400.; \t\t\t #[gpm]\n", + "p = 1.1*62.4; \t \t\t #[lbm/ft**3]\n", + "mu = 2.*(6.72*10**-4); \t #[lb/ft*sec]\n", + "e = 1.5*10**4;\n", + "\n", + "# Calculations\n", + "# 4 inch schedule pipe\n", + "d = 0.3355;\n", + "S = (math.pi*(d**2))/4;\n", + "U4 = Q/39.6;\n", + "ebyd = e/d;\n", + "w = 3671./60;\n", + "pm = 13.45*62.4;\n", + "g = 32.1;\n", + "gc = 32.174;\n", + "deltaz = 2.5;\n", + "deltap = (g/gc)*(pm-p)*(deltaz);\n", + "betaa = ((1.)/(1.+((2*p*gc)*(deltap))*(((0.61*S)/w)**2)))**(1./4);\n", + "d2 = betaa*d;\n", + "Nre2 = (4*w)/(math.pi*d2*mu);\n", + "a = (1./30)*4.026;\n", + "b = (1./4)*(2.013-1.21);\n", + "c = (1./8)*(2.42);\n", + "if a<b :\n", + " if a<c :\n", + " opt = a;\n", + " else:\n", + " opt = c;\n", + "else:\n", + " if b<c:\n", + " opt = b;\n", + " else:\n", + " opt = c;\n", + "\n", + "# Results\n", + "print \" The pertinent orifice details are orifice diameter = %.3f in corner taps, \\\n", + " \\n square edge orifice plate not over %.3f in thick\"%(d2*12,opt);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The pertinent orifice details are orifice diameter = 2.425 in corner taps, \n", + " square edge orifice plate not over 0.134 in thick\n" + ] + } + ], + "prompt_number": 42 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.16 - Page No :470\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Q = 400.; \t \t\t #[gpm]\n", + "p = 1.1*62.4; \t\t\t #[lbm/ft**3]\n", + "mu = 2*(6.72*10**-4); \t\t\t #[lb/ft*sec]\n", + "e = 1.5*10**4;\n", + "\n", + "# Calculations\n", + "# 4 inch schedule pipe\n", + "d = 0.3355;\n", + "S = (math.pi*(d**2))/4;\n", + "U4 = Q/39.6;\n", + "ebyd = e/d;\n", + "w = 3671./60;\n", + "pm = 13.45*62.4;\n", + "g = 32.1;\n", + "gc = 32.174;\n", + "Nre = (d*U4*p)/mu;\n", + "if Nre>10**4:\n", + " c = 0.98;\n", + "\n", + "deltaz = 2.5;\n", + "deltap = (g/gc)*(pm-p)*(deltaz);\n", + "betaa = ((1.)/(1+((2*p*gc)*(deltap))*(((c*S)/w)**2)))**(1./4);\n", + "d2 = betaa*d;\n", + "\n", + "# Results\n", + "print \" The pertinentr details of the venturi design are Throat diameter = %.2f inch \\\n", + "\\n Approach angle = 25 Divergence angle = 7\"%(d2*12);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The pertinentr details of the venturi design are Throat diameter = 1.95 inch \n", + " Approach angle = 25 Divergence angle = 7\n" + ] + } + ], + "prompt_number": 44 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 10.17 - Page No :477\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Uzmax = 3.455; \t\t\t #[ft/sec]\n", + "m = 32;\n", + "a1 = -0.3527;\n", + "a2 = -0.6473;\n", + "rbyro = 0.880;\n", + "\n", + "# Calculations\n", + "UzbyUzmax = 1+a1*(rbyro**2)+a2*(rbyro**(2*m));\n", + "Uz = Uzmax*(UzbyUzmax);\n", + "Uzavg = (4./9)*Uzmax+(5./18)*(Uz+Uz);\n", + "\n", + "# Results\n", + "print \" the average velocity is Uzavg = %.2f ft/sec \\\n", + "\\n Thus, in this Example there is an inherent error of 5.5 percent, even before any experimental errors are introduced\"%(Uzavg);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the average velocity is Uzavg = 2.93 ft/sec \n", + " Thus, in this Example there is an inherent error of 5.5 percent, even before any experimental errors are introduced\n" + ] + } + ], + "prompt_number": 10 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch11.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch11.ipynb new file mode 100755 index 00000000..9c17f43d --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch11.ipynb @@ -0,0 +1,598 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 11 : Heat and mass transfer in duct flow" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.1 - Page No :497\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "# Variables\n", + "# given\n", + "K_drywall = 0.28; \t\t\t #[Btu/ft*degF] - thermal conductivity of dry wall\n", + "K_fibreglass = 0.024; \t\t #[Btu/ft*degF] - thermal conductivity of fibre glass\n", + "K_concrete = 0.5; \t\t\t #[Btu/ft*degF] - thermal conductivity of concrete\n", + "T4 = 0.; \t\t #[degF]\n", + "T1 = 65.; \t\t\t #[degF]\n", + "deltaT = T4-T1; \t \t #[degF]\n", + "a = 1.; \t\t #[ft**2] - assuming area of 1 ft**2\n", + "deltax1 = 0.5/12; \t\t\t #[ft]\n", + "deltax2 = 3.625/12; \t\t #[ft]\n", + "deltax3 = 6./12; \t\t\t #[ft]\n", + "\n", + "# Calculations\n", + "R1 = deltax1/(K_drywall*a); \t\t\t #[h*degF/Btu]\n", + "R2 = deltax2/(K_fibreglass*a); \t\t\t #[h*degF/Btu]\n", + "R3 = deltax3/(K_concrete*a); \t \t\t #[h*degF/Btu]\n", + "qx = deltaT/(R1+R2+R3);\n", + "q12 = -qx;\n", + "q23 = -qx;\n", + "q34 = -qx;\n", + "deltaT1 = (-q12)*deltax1*(1./(K_drywall*a));\n", + "T2 = T1+deltaT1;\n", + "deltaT2 = (-q23)*deltax2*(1./(K_fibreglass*a));\n", + "T3 = T2+deltaT2;\n", + "deltaT3 = (-q34)*deltax3*(1./(K_concrete*a));\n", + "T4 = T3+deltaT3;\n", + "\n", + "# Results\n", + "print \" T1 = %.0f F \\\n", + "\\n T2 = %.1f F \\\n", + "\\n delta T2 = %.2f deg F \\\n", + "\\n T3 = %.2f F \\\n", + "\\n delta T3 = %.2f deg F \\\n", + "\\n T4 = %.0f F\"%(T1,T2,deltaT2,T3,deltaT3,T4);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " T1 = 65 F \n", + " T2 = 64.3 F \n", + " delta T2 = -59.56 deg F \n", + " T3 = 4.73 F \n", + " delta T3 = -4.73 deg F \n", + " T4 = 0 F\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.2 - Page No :501\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "r1 = (2.067/2.)/(12); \t\t #[ft]\n", + "r2 = r1+0.154/12; \t\t\t #[ft]\n", + "r3 = r2+3/12.; \t\t\t #[ft]\n", + "L = 1.; \t\t\t #[ft]\n", + "Ka = 26.; \t\t\t #[Btu/h*ft*degF]\n", + "Kb = 0.04; \t\t #[Btu/h*ft*degF]\n", + "T1 = 50.; \t\t\t #[degF]\n", + "\n", + "# Calculations\n", + "Ra = (math.log(r2/r1))/(2*math.pi*L*Ka);\n", + "Rb = (math.log(r3/r2))/(2*math.pi*L*Kb);\n", + "R = Ra+Rb;\n", + "deltaT = -18; \t\t\t #[degF] - driving force\n", + "Qr = -(deltaT/(R));\n", + "deltaT1 = (-Qr)*(Ra);\n", + "T2 = T1+deltaT1;\n", + "\n", + "# Results\n", + "print \" Qr = %.3f\"%Qr;\n", + "print \" The interface temperature is T2 = %.3f degF\"%(T2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Qr = 3.589\n", + " The interface temperature is T2 = 49.997 degF\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.3 - Page No :502\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Ra = 8.502*10**-4; \t\t\t #[h*degF*Btu**-1]\n", + "Rb = 5.014; \t\t \t #[h*degF*Btu**-1]\n", + "r1 = (2.067/2)/(12.); \t\t\t #[ft]\n", + "r2 = r1+0.154/12.; \t\t\t #[ft]\n", + "r3 = r2+3/12.; \t\t\t #[ft]\n", + "d1 = 2.*r1;\n", + "d0 = 2.*r3;\n", + "h0 = 25.; \t \t\t #[Btu/h*ft**2*degF]\n", + "h1 = 840.; \t\t\t #[Btu/h*ft**2*degF]\n", + "L = 1.; \t\t\t #[ft] - considering 1 feet length\n", + "\n", + "# Calculations\n", + "R0 = 1./(h0*math.pi*d0*L);\n", + "R1 = 1./(h1*math.pi*d1*L);\n", + "R = R0+R1+Ra+Rb;\n", + "deltaT = -400; \t\t\t #[degF]\n", + "Qr = -(deltaT)/R;\n", + "# the heat loss calculated above is the heat loss per foot.therefore for 500 ft\n", + "L = 500.;\n", + "Qr = Qr*L;\n", + "\n", + "# Results\n", + "print \" the heat loss for a 500 feet pipe is qr = %.2e Btu/h\"%(Qr);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the heat loss for a 500 feet pipe is qr = 3.97e+04 Btu/h\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.5 - Page No :521\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Nre = 50000.;\n", + "d = 0.04; \t\t\t #[m] - diameter of pipe\n", + "\n", + "# physical properties of water\n", + "T1 = 293.15; \t\t\t #[K]\n", + "T2 = 303.15; \t\t\t #[K]\n", + "T3 = 313.15; \t\t\t #[K]\n", + "p1 = 999.; \t\t\t #[kg/m**3] - density of water at temperature T1\n", + "p2 = 996.0; \t\t\t #[kg/m**3] - density of water at temperature T2\n", + "p3 = 992.1; \t\t\t #[kg/m**3] - density of water at temperature T3\n", + "mu1 = 1.001; \t\t\t #[cP] - viscosity of water at temperature T1\n", + "mu2 = 0.800; \t\t\t #[cP] - viscosity of water at temperature T2\n", + "mu3 = 0.654; \t\t\t #[cP] - viscosity of water at temperature T3\n", + "k1 = 0.63; \t\t\t #[W/m*K] - thermal conductivity of water at temperature T1\n", + "k2 = 0.618; \t\t\t #[W/m*K] - thermal conductivity of water at temperature T2\n", + "k3 = 0.632; \t\t\t #[W/m*K] - thermal conductivity of water at temperature T3\n", + "cp1 = 4182.; \t\t\t #[J/kg*K] - heat capacity of water at temperature T1\n", + "cp2 = 4178.; \t\t\t #[J/kg*K] - heat capacity of water at temperature T2\n", + "cp3 = 4179.; \t\t\t #[J/kg*K] - heat capacity of water at temperature T3\n", + "Npr1 = 6.94; \t\t\t # prandtl no. at temperature T1\n", + "Npr2 = 5.41; \t\t\t # prandtl no. at temperature T2\n", + "Npr3 = 4.32; \t\t\t # prandtl no. at temperature T3\n", + "\n", + "\n", + "# Calculations\n", + "# (a) Dittus -Boelter-this correction evalutes all properties at the mean bulk temperature,which is T1\n", + "kmb = 0.603\n", + "h = (kmb/d)*0.023*((Nre)**(0.8))*((Npr1)**0.4);\n", + "\n", + "\n", + "# Results\n", + "print \" a) Dittus -Boelter the heat transfer coefficient is \\nh = %.0f W/m**2*K \\\n", + " = %.0f Btu/ft**2*h**-1*degF\"%(h,h*0.17611);\n", + "\n", + "# (b) Seid_er Tate-this correlation evaluates all the properties save muw at the mean bulk temperature \n", + "h = (kmb/d)*(0.027)*((Nre)**0.8)*((Npr1)**(1./3))*((mu1/mu3)**0.14);\n", + "print \" b) Seid_er Tate the heat transfer coefficient is \\nh = %.0f W/m**2*K \\\n", + " = %.0f Btu/ft**2*h**-1*degF\"%(h,h*0.17611);\n", + "\n", + "# (c) Sleicher-Rouse equation\n", + "a = 0.88-(0.24/(4+Npr3));\n", + "b = (1./3)+0.5*math.exp((-0.6)*Npr3);\n", + "Nref = Nre*(mu1/mu2)*(p2/p1);\n", + "Nnu = 5+0.015*((Nref)**a)*((Npr3)**b);\n", + "h = Nnu*(kmb/d);\n", + "print \" c) Sleicher-Rouse equation the heat transfer coefficient is \\nh = %.0f W/m**2*K \\\n", + " = %.0f Btu/ft**2*h**-1*degF\"%(h,h*0.17611);\n", + "\n", + "# (d) Colbum Analogy- the j factor for heat transfer is calculated\n", + "jh = 0.023*((Nref)**(-0.2));\n", + "Nst = jh*((Npr2)**(-2./3));\n", + "U = (Nre*mu1*10**-3)/(d*p1);\n", + "h = Nst*(p1*cp1*U);\n", + "print \" d) Colbum Analogy the heat transfer coefficient is \\nh \\\n", + " = %.0f W/m**2*K = %.0f Btu/ft**2*h**-1*degF\"%(h,h*0.17611);\n", + "\n", + "# (e) Friend-Metzner\n", + "f = 0.005227;\n", + "Nnu = ((Nre)*(Npr1)*(f/2.)*((mu1/mu3)**0.14))/(1.20+((11.8)*((f/2)**(1./2))*(Npr1-1)*((Npr1)**(-1./3))));\n", + "h = Nnu*(kmb/d);\n", + "print \" e) Friend-Metzner the heat transfer coefficient is \\nh = %.0f W/m**2*K \\\n", + " = %.0f Btu/ft**2*h**-1*degF\"%(h,h*0.17611);\n", + "\n", + "# (f) Numerical analysis\n", + "Nnu = 320.;\n", + "h = Nnu*(kmb/d);\n", + "print \" f) Numerical analysis the heat transfer coefficient is \\nh = %.0f W/m**2*K \\\n", + " = %.0f Btu/ft**2*h**-1*degF\"%(h,h*0.17611);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a) Dittus -Boelter the heat transfer coefficient is \n", + "h = 4322 W/m**2*K = 761 Btu/ft**2*h**-1*degF\n", + " b) Seid_er Tate the heat transfer coefficient is \n", + "h = 4733 W/m**2*K = 834 Btu/ft**2*h**-1*degF\n", + " c) Sleicher-Rouse equation the heat transfer coefficient is \n", + "h = 4766 W/m**2*K = 839 Btu/ft**2*h**-1*degF\n", + " d) Colbum Analogy the heat transfer coefficient is \n", + "h = 4292 W/m**2*K = 756 Btu/ft**2*h**-1*degF\n", + " e) Friend-Metzner the heat transfer coefficient is \n", + "h = 4713 W/m**2*K = 830 Btu/ft**2*h**-1*degF\n", + " f) Numerical analysis the heat transfer coefficient is \n", + "h = 4824 W/m**2*K = 850 Btu/ft**2*h**-1*degF\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.6 - Page No :525\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "Tw = 680.; \t\t\t #[K] - temperature at the wall\n", + "Tb = 640.; \t\t\t #[K] - temperature at the bulk\n", + "Tf = (Tw+Tb)/2; \t\t\t #[K]\n", + "Nre = 50000.;\n", + "vmb = 2.88*10.**-7;\n", + "vf = 2.84*10.**-7;\n", + "Nref = Nre*(vmb/vf);\n", + "k = 27.48;\n", + "d = 0.04;\n", + "\n", + "# Calculation and Results\n", + "# from table 11.3 the prandtl no. is\n", + "Npr = 8.74*10**-3\n", + "\n", + "# consmath.tant heat flow\n", + "Nnu = 6.3+(0.0167)*((Nref)**0.85)*((Npr)**0.93);\n", + "h = Nnu*(k/d);\n", + "print \" constant heat flow h = %.0f W/m**2*K = %.0f Btu/ft**2*h*degF\"%(h,round(h*0.17611,-1));\n", + "\n", + "# constant wall temperature\n", + "Nnu = 4.8+0.0156*((Nref)**0.85)*((Npr)**0.93);\n", + "h = Nnu*(k/d);\n", + "print \" constant wall temperature h = %d W/m**2*K = %d Btu/ft**2*h*degF\"%(h,h*0.17611);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " constant heat flow h = 5723 W/m**2*K = 1010 Btu/ft**2*h*degF\n", + " constant wall temperature h = 4600 W/m**2*K = 810 Btu/ft**2*h*degF\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.7 - Page No :536\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "di = 0.620; \t\t\t #[inch] - internal diameter\n", + "d0 = 0.750; \t\t\t #[inch] - outer diameter\n", + "Ai = 0.1623; \t\t\t #[ft**2/ft]\n", + "Ao = 0.1963; \t\t\t #[ft**2/ft]\n", + "wc = 12*(471.3/0.9425); #[lb/h]\n", + "cp = 1.; \t\t\t #[Btu/lbm*degF] - heat capacity of water\n", + "Tco = 110.;\n", + "Tci = 50.;\n", + "\n", + "# Calculations\n", + "qtotal = wc*cp*(Tco-Tci);\n", + "deltaH_coldwater = 3.6*10**5;\n", + "deltaH_vapourization = 1179.7-269.59;\n", + "wh = deltaH_coldwater/deltaH_vapourization;\n", + "hi = 80.; \t\t\t #[Btu/h*ft**2*degF]\n", + "ho = 500.; \t\t\t #[Btu/h*ft**2*degF]\n", + "km = 26.; \t\t\t #[Btu/h*ft*degF]\n", + "Ui = 1./((1./hi)+((Ai*math.log(d0/di))/(2*math.pi*km))+(Ai/(Ao*ho)));\n", + "deltaT1 = 300-50.;\n", + "deltaT2 = 300-110.;\n", + "LMTD = (deltaT1-deltaT2)/(math.log(deltaT1/deltaT2));\n", + "A = qtotal/(Ui*LMTD);\n", + "L = A/Ai;\n", + "\n", + "# Results\n", + "print \"the length of the heat exchanger is L = %.2f ft\"%(L);\n", + "\n", + "# Answer is slightly different becasue of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the length of the heat exchanger is L = 145.53 ft\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.8 - Page No :537\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "L = 30.; \t\t\t #[ft] - length\n", + "Ai = 0.1623*L;\n", + "di = 0.620; \t\t\t #[inch] - internal diameter\n", + "d0 = 0.750; \t\t\t #[inch] - outer diameter\n", + "Ao = 0.1963*L; \t\t #[ft**2/ft]\n", + "wc = 12.*(471.3/0.9425);\n", + "cp = 1.; \t\t\t #[Btu/lbm*degF] - heat capacity of water\n", + "\n", + "# Calculations\n", + "deltaH_coldwater = 3.6*10**5;\n", + "deltaH_vapourization = 1179.7-269.59;\n", + "wh = deltaH_coldwater/deltaH_vapourization;\n", + "hi = 80.; \t\t\t #[Btu/h*ft**2*degF]\n", + "ho = 500.; \t\t #[Btu/h*ft**2*degF]\n", + "km = 26.; \t\t\t #[Btu/h*ft*degF]\n", + "Ui = 1./((1./hi)+(((Ai/L)*math.log(d0/di))/(2*math.pi*km))+(Ai/(Ao*ho)));\n", + "deltaT1 = 300-50.;\n", + "deltaT = deltaT1/(math.exp((Ui*Ai)/(wc*cp)));\n", + "Tsat = 300.;\n", + "Tc2 = Tsat-deltaT;\n", + "\n", + "# Results\n", + "print \" Therefore, the outlet temperature of the cold fluid_ is Tc2 = %.2f degF\"%(Tc2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Therefore, the outlet temperature of the cold fluid_ is Tc2 = 63.75 degF\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.9 - Page No :538\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Ai = 4.869;\n", + "wc = 6000.;\n", + "cp = 1.;\n", + "Rf = 0.002;\n", + "Uclean = 69.685;\n", + "\n", + "# Calculations\n", + "Udirty = 1./(Rf+(1./Uclean));\n", + "deltaT1 = 300.-50;\n", + "deltaT2 = deltaT1/(math.exp((Udirty*Ai)/(wc*cp)));\n", + "Th2 = 300.;\n", + "Tc2 = Th2-deltaT2;\n", + "\n", + "# Results\n", + "print \" the outlet temperature is Tc2 = %.1f degF\"%(Tc2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the outlet temperature is Tc2 = 62.1 degF\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 11.10 - Page No :544\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "Ui = 325.; \t\t\t #[W/m**2*K] - overall heat transfer coefficient\n", + "Thi = 120.; \t\t\t #[degC] - inlet temperature of hydrocarbon\n", + "Tho = 65.; \t\t\t #[degC] - outlet temperature of hydrocarbon\n", + "Tci = 15.; \t\t\t #[degC] - inlet temperature of water\n", + "Tco = 50.; \t\t\t #[degC] - outlet temperture of water\n", + "cp = 4184.; \t\t\t #[J/kg*K] - heat capacity of water\n", + "ch = 4184.*0.45\t\t\t #[J/kg*K] - heat capacity of hydrocarbon\n", + "wc = 1.2; \t\t\t #[kg/sec] - mass flow rate of water\n", + "\n", + "# Calculation and Results\n", + "wh = ((wc*cp)*(Tco-Tci))/((ch)*(Thi-Tho));\n", + "qtotal = wc*cp*(Tco-Tci);\n", + "\n", + "# (a) - parallel double pipe\n", + "F = 1.;\n", + "Thi = 120.; \t\t\t #[degC] - inlet temperature of hydrocarbon\n", + "Tho = 65.; \t\t\t #[degC] - outlet temperature of hydrocarbon\n", + "Tci = 15.; \t\t\t #[degC] - inlet temperature of water\n", + "Tco = 50.; \t\t\t #[degC] - outlet temperture of water\n", + "deltaT1 = Thi-Tci;\n", + "deltaT2 = Tho-Tco;\n", + "LMTD = (deltaT2-deltaT1)/(math.log(deltaT2/deltaT1));\n", + "Ai = qtotal/((Ui*LMTD));\n", + "print \" a) parallel double pipe Ai = %.2f m**2\"%(Ai);\n", + "\n", + "# (b) - counter flow\n", + "F = 1.;\n", + "Thi = 120.; \t\t\t #[degC] - inlet temperature of hydrocarbon\n", + "Tho = 65.; \t\t\t #[degC] - outlet temperature of hydrocarbon\n", + "Tco = 15.; \t\t\t #[degC] - inlet temperature of water\n", + "Tci = 50.; \t\t\t #[degC] - outlet temperture of water\n", + "deltaT1 = Thi-Tci;\n", + "deltaT2 = Tho-Tco;\n", + "LMTD = (deltaT2-deltaT1)/(math.log(deltaT2/deltaT1));\n", + "Ai = qtotal/((Ui*LMTD));\n", + "print \" b) counter flow Ai = %.2f m**2\"%(Ai);\n", + "\n", + "# (c) - 1-2 shell and tube \n", + "Thi = 120.; \t\t\t #[degC] - inlet temperature of hydrocarbon\n", + "Tho = 65.; \t\t\t #[degC] - outlet temperature of hydrocarbon\n", + "Tci = 15.; \t\t\t #[degC] - inlet temperature of water\n", + "Tco = 50.; \t\t\t #[degC] - outlet temperture of water\n", + "Z = (Thi-Tho)/(Tco-Tci);\n", + "nh = (Tco-Tci)/(Thi-Tci);\n", + "deltaT1 = Thi-Tco;\n", + "deltaT2 = Tho-Tci;\n", + "F = 0.92;\n", + "LMTD = (F*(deltaT2-deltaT1))/(math.log(deltaT2/deltaT1));\n", + "Ai = qtotal/((Ui*LMTD));\n", + "print \" c) 1-2 shell and tube Ai = %.2f m**2\"%(Ai);\n", + "\n", + "# (d) - 2-4 shell and tube\n", + "Thi = 120.; \t\t\t #[degC] - inlet temperature of hydrocarbon\n", + "Tho = 65.; \t\t\t #[degC] - outlet temperature of hydrocarbon\n", + "Tci = 15.; \t\t\t #[degC] - inlet temperature of water\n", + "Tco = 50.; \t\t\t #[degC] - outlet temperture of water\n", + "Z = (Thi-Tho)/(Tco-Tci);\n", + "nh = (Tco-Tci)/(Thi-Tci);\n", + "F = 0.975;\n", + "LMTD = (F*(deltaT2-deltaT1))/(math.log(deltaT2/deltaT1));\n", + "Ai = qtotal/((Ui*LMTD));\n", + "print \" d) 2-4 shell and tube Ai = %.2f m**2\"%(Ai);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a) parallel double pipe Ai = 11.69 m**2\n", + " b) counter flow Ai = 9.10 m**2\n", + " c) 1-2 shell and tube Ai = 9.89 m**2\n", + " d) 2-4 shell and tube Ai = 9.33 m**2\n" + ] + } + ], + "prompt_number": 19 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch12.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch12.ipynb new file mode 100755 index 00000000..78211403 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch12.ipynb @@ -0,0 +1,680 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 12 : Transport past immersed bodies" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.2 - Page No :562\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "\n", + "# Variables\n", + "p = 1.2047*0.06243; \t\t\t #[lb/ft**3]\n", + "mu = (18.17*10**-6)*(0.6720); \t #[lb/ft*sec]\n", + "v = mu/p;\n", + "x = 2.; \t\t\t #[ft]\n", + "U = 6.; \t\t\t #[ft/sec]\n", + "\n", + "# Calculation and Results\n", + "Nre = (x*U)/v;\n", + "print \"The Reynolds number is well within the laminar region %.3e Nre\"%Nre\n", + "del_ = 5*x*(Nre)**(-1./2);\n", + "C1 = 0.33206;\n", + "Cd = 2.*C1*(Nre)**(-1./2);\n", + "L2 = 2.; \t\t\t #[ft]\n", + "L1 = 1.; \t\t\t #[ft]\n", + "b = 1.;\n", + "F = ((2*(C1)*U*b))*((mu*p*U)**(1./2))*(((L2)**(1./2))-((L1)**(1./2)));\n", + "gc = 32.174;\n", + "F = F/gc;\n", + "print \" The value of F properly expressed in force units is F = %.3e lbf\"%(F);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The Reynolds number is well within the laminar region 7.391e+04 Nre\n", + " The value of F properly expressed in force units is F = 1.204e-04 lbf\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.3 - Page No :569\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "\n", + "# Variables\n", + "U = 3.; \t\t\t #[m/sec]\n", + "x1 = 1.; \t\t\t #[m]\n", + "x2 = 2.; \t\t\t #[m]\n", + "\n", + "# Calculations\n", + "p = 1./(1.001*10**-3); \t\t\t #[kg/m**3];\n", + "mu = 1.*10**-3; \t\t\t #[kg/m*sec]\n", + "Nre1 = (x1*U*p)/(mu);\n", + "Nre2 = (x2*p*U)/(mu);\n", + "tauw = (1./2)*(p*(U**2))*((2*math.log10(Nre1)-0.65)**(-2.3));\n", + "B = 1700.;\n", + "Cd = (0.455*(math.log10(Nre2))**-2.58)-(B/(Nre2));\n", + "Lb = 2.0;\n", + "F = (1./2)*(p*(U**2))*(Lb)*(Cd);\n", + "\n", + "Xc = round((5*10**5 * mu)/(U*p),3)\n", + "CDlaminar = round(4*.33206*(5*10**5)**(-1./2),5)\n", + "Flaminar= round(1./2*(p*U**2)*Xc*CDlaminar,3)\n", + "Cd = round(.455*((math.log10(Nre2))**-2.58),6)\n", + "Fturbulent1 = round(1./2*(p*U**2)*x2*Cd,2)\n", + "Fturbulent2 = round(1./2*(p*U**2)*Xc*.005106,3)\n", + "Factual = 1.411 + Fturbulent1 - Fturbulent2\n", + "\n", + "\n", + "# Results\n", + "print \" the drag on the plate is F = %f kg*m/sec**2 = %.1f N\"%(F,F);\n", + "print ' total drag on the plate Factual = %.2f N'%Factual\n", + "print \" the shear stress is %.f N/m^2\"%tauw\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the drag on the plate is F = 26.801111 kg*m/sec**2 = 26.8 N\n", + " total drag on the plate Factual = 26.93 N\n", + " the shear stress is 14 N/m^2\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.5 - Page No :576\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables \n", + "T = 290.; \t\t\t #[K] - temperature of flowing water\n", + "U = 3.; \t\t\t #[m/sec] - free stream velocity\n", + "Tfs = 285.; \t\t\t #[K] - temperature of free stream\n", + "vr = 10.**-3; \t\t\t #[m**3/kg] - volume per unit mass\n", + "p = 1./vr; \t\t\t #[kg/m**3] - density of water at Tfs\n", + "mu = 1225.*10**-6; \t #[N*sec/m**2]\n", + "k = 0.590; \t\t\t #[W/m*K]\n", + "Npr = 8.70;\n", + "\n", + "# Calculation and Results\n", + "# (a) The length of laminar boundary\n", + "Nre = 5.*10**5;\n", + "xc = (Nre)*(mu/(p*U));\n", + "print \" a) The length of laminar boundary is xc = %.4f m\"%(xc);\n", + "# (b) Thickness of the momentum boundary layer and thermal boundary layer\n", + "del_ = 5*xc*((Nre)**(-1./2));\n", + "del_h = del_*((Npr)**(-1./3));\n", + "print \" b) The thickness of momentum boundary layer is del_ = %.3e m \\n The \\\n", + " thickness of the hydryodynamic layer is del_h = %.3e m\"%(del_,del_h);\n", + "\n", + "# (c) Local heat transfer coefficient\n", + "x = 0.2042; \t\t\t #[ft]\n", + "hx = ((0.33206*k)/(x))*((Nre)**(1./2))*((Npr)**(1./3));\n", + "print \" c) The local heat transfer coefficient is h = %.0f W/m**2*K \\\n", + " = %.0f Btu/hr*ft**2*degF\"%(hx,hx*0.17611);\n", + "\n", + "# (d) Mean heat transfer coefficient\n", + "hm = 2*hx;\n", + "print \" d) The mean heat transfer coefficient is h = %.0f W/m**2*K \\\n", + " = %.0f Btu/hr*ft**2*degF\"%(hm,round(hm*0.17611,1));\n", + "\n", + "# Answer may vary because of rounding error.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a) The length of laminar boundary is xc = 0.2042 m\n", + " b) The thickness of momentum boundary layer is del_ = 1.444e-03 m \n", + " The thickness of the hydryodynamic layer is del_h = 7.019e-04 m\n", + " c) The local heat transfer coefficient is h = 1395 W/m**2*K = 246 Btu/hr*ft**2*degF\n", + " d) The mean heat transfer coefficient is h = 2791 W/m**2*K = 492 Btu/hr*ft**2*degF\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.10 - Page No :590\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "T = 293.15; \t\t\t #[K]\n", + "pp = 999.; \t\t\t #[kg/m**3] - density of water\n", + "mu = 0.01817*10**-3; \t #[kg/m*sec] - viscosity of air\n", + "p = 1.205; \t\t\t #[kg/m**3] - density of air\n", + "d = 5*10**-6; \t\t\t #[m] - particle diameter\n", + "g = 9.80; \t\t\t #[m/sec**2]\n", + "\n", + "# Calculations\n", + "rp = d/2;\n", + "Ut = ((2*g*(rp**2))*(pp-p))/(9*mu);\n", + "Nre = (d*Ut*p)/(mu);\n", + "Fp = 6*math.pi*mu*rp*Ut;\n", + "\n", + "# Results\n", + "print \" The drag force is Fp = %.2e N\"%(Fp);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The drag force is Fp = 6.40e-13 N\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.11 - Page No :591\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "T = 293.15; \t\t\t #[K]\n", + "pp = 999.; \t\t\t #[kg/m**3] - density of water\n", + "mu = 0.01817*10**-3; \t #[kg/m*sec] - viscosity of air\n", + "p = 1.205; \t\t\t #[kg/m**3] - density of air\n", + "d = 5*10**-6; \t\t\t #[m] - particle diameter\n", + "g = 9.80; \t\t\t #[m/sec**2]\n", + "\n", + "# Calculations\n", + "rp = d/2;\n", + "Ut = ((2*g*(rp**2))*(pp-p))/(9*mu);\n", + "Nre = (d*Ut*p)/(mu);\n", + "t = ((-2*(rp**2)*pp))/(9*mu)*(math.log(1-0.99));\n", + "\n", + "# Results\n", + "print \" Time for the drop of water in previous Example from an initial \\\n", + " velocity of zero to 0.99*Ut is \\n t = %.3e sec\"%(t);\n", + "print \" In other words, the drop accelerates almost instantaneously to its terminal velocity\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Time for the drop of water in previous Example from an initial velocity of zero to 0.99*Ut is \n", + " t = 3.517e-04 sec\n", + " In other words, the drop accelerates almost instantaneously to its terminal velocity\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.12 - Page No : 594\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "pp = 1.13*10**4; \t\t\t #[kg/m**3] - density of lead particle\n", + "p = 1.22; \t\t\t #[kg/m**3] - density of air\n", + "g = 9.80; \t\t\t #[m/sec**2] - acceleration due to gravity\n", + "d = 2*10**-3; \t\t\t #[m] - diameter of particle\n", + "mu = 1.81*10**-5; \t\t\t #[kg/m*sec] - viscosity of air\n", + "\n", + "# Calculations\n", + "# let us assume\n", + "Cd = 0.44;\n", + "Ut = ((4*d*g*(pp-p))/(3*p*Cd))**(1./2);\n", + "Nre = (Ut*d*p)/(mu);\n", + "\n", + "# from fig 12,16 value of Cd is\n", + "Cd = 0.4;\n", + "Ut = ((4*d*g*(pp-p))/(3*p*Cd))**(1./2);\n", + "Nre = (Ut*d*p)/(mu);\n", + "\n", + "# Results\n", + "# Within the readibility of the chart Cd is unchanged and therefore the above obtained Cd is the final answer\n", + "\n", + "print \" The terminal velocity is Ut = %.2f m/sec\"%(Ut);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The terminal velocity is Ut = 24.60 m/sec\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.13 - Page No :595\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "distance = 1./12; \t #[ft]\n", + "time = 60.; \t\t #[sec]\n", + "Ut = distance/time;\n", + "mu = 1.68; \t\t #[lb/ft*sec] - viscosity \n", + "pp = 58.; \t\t\t #[lb/ft**3] - density of sphere\n", + "p = 50.; \t\t\t #[lb/ft**3] - density of polymer solution\n", + "g = 32.; \t\t\t #[ft/sec] - acceleration due to gravity\n", + "\n", + "# Calculations\n", + "rp = ((9*mu)*(Ut)*((2*g)**(-1))*((pp-p)**(-1)))**(1./2);\n", + "Nre = (rp*2*Ut*p)/(mu);\n", + "\n", + "# Results\n", + "print \" The required particle diameter would be about %.2f inch\"%(rp*2*12);\n", + "print \"Nre = %.2e\"%Nre\n", + "print \" This reynolds number is well within the stokes law region ; thus the design is reasonable\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The required particle diameter would be about 0.15 inch\n", + "Nre = 5.29e-04\n", + " This reynolds number is well within the stokes law region ; thus the design is reasonable\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.14 - Page No :616\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "T = 842.; \t\t\t #[degF] - temperature\n", + "P = 14.6; \t\t\t #[psia] - pressure\n", + "p = 0.487; \t\t #[kg/m**3] - density of air\n", + "mu = 3.431*10**-5; \t #[kg/m*sec] - viscosity of air\n", + "k = 0.05379; \t\t\t #[W/m*K] - thermal conductivity\n", + "Npr = 0.7025; \t\t\t #prandtl no.\n", + "\n", + "# Calculation and Results\n", + "# (a) static void_ fraction\n", + "mcoal = 15.*2000; \t #[lb] - mass of coal\n", + "pcoal = 94.; \t\t #[lbm/ft**3] - density of coal\n", + "d = 10.; \t\t\t #[ft]\n", + "L = 7.; \t\t\t #[ft]\n", + "area = ((math.pi*(d**2))/4);\n", + "Vcoal = mcoal/pcoal;\n", + "Vtotal = area*L;\n", + "e = (Vtotal-Vcoal)/(Vtotal);\n", + "print \"(a) The void_ fraction is E = %.2f\"%e\n", + "\n", + "# (b) minimum void_ fraction and bed height\n", + "d = 200.; \t\t\t #[um] - particle diameter\n", + "Emf = 1-0.356*((math.log10(d))-1);\n", + "\n", + "# this value seems to be a lottle low and therefore 0.58 will be used\n", + "Emf = 0.58;\n", + "Lmf = ((L)*(1-e))/(1-Emf);\n", + "print \" b) The bed height is Lmf = %.3f ft\"%(Lmf);\n", + "\n", + "# (c) Minimum fluid_ization velocity\n", + "P1 = 20.; \t\t\t #[psia]\n", + "P2 = 14.696; \t\t\t #[psia]\n", + "p1 = (p*P1)/(P2);\n", + "\n", + "# the archimid_es no. is\n", + "g = 9.78; \t\t\t #[m/sec**2]\n", + "Nar = p1*g*((d*10**-6)**3)*(1506-p1)*((1./(mu)**2));\n", + "C1 = 27.2;\n", + "C2 = 0.0408;\n", + "Nremf = (((C1**2)+C2*Nar)**(1./2))-C1;\n", + "Umf = (Nremf*mu)/((d*10**-6)*p1);\n", + "print \" c) The minimum fluid_ization velocity is Umf = %.4f %% m/sec\"%(Umf);\n", + "\n", + "# (d) Minimum pressure\n", + "del_tapmf = (1506-p1)*(g)*(1-Emf)*((Lmf*12*2.54)/(100))+p1*g*Lmf;\n", + "print \" d) The minimum pressure drop for fluid_ization is -del_tapmf = %.3e Pa\"%(del_tapmf);\n", + "\n", + "# (e) Particle settling velocity\n", + "Cd = 0.44;\n", + "Ut = (((8*((d*10**-6)/2)*g)*(1506-p1))/(3*p1*Cd))**(1./2);\n", + "Nrep = (Ut*d*10**-6*p1)/(mu);\n", + "print \"Nrep = %.2f\"%Nrep\n", + "Ut = ((5.923/18.5)*(((d*10**-6)*p1)/(mu))**(0.6))**(1./(2-0.6))\n", + "print \" e) The particle settling velocity is Ut = %.5f m/sec\"%(Ut);\n", + "\n", + "# (f) Bed to wall heat transfer coefficient\n", + "Nrefb = (d*10**-6)*2.5*Umf*p1*(1./mu);\n", + "Nnufb = 0.6*Npr*((Nrefb)**(0.3));\n", + "hw = Nnufb*(k/(d*10**-6));\n", + "print \" f) The bed to wall heat transfer coefficient is hw = %.1f W/m**2*K\"%(hw);\n", + "\n", + "# Answer may vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) The void_ fraction is E = 0.42\n", + " b) The bed height is Lmf = 9.675 ft\n", + " c) The minimum fluid_ization velocity is Umf = 0.0129 % m/sec\n", + " d) The minimum pressure drop for fluid_ization is -del_tapmf = 1.830e+04 Pa\n", + "Nrep = 14.18\n", + " e) The particle settling velocity is Ut = 0.79114 m/sec\n", + " f) The bed to wall heat transfer coefficient is hw = 60.6 W/m**2*K\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.15 - Page No :618\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "pp = 249.6; \t\t #[lb/ft**3] - density of catalyst\n", + "p = 58.; \t\t\t #[lb/ft**3] - density of liquid\n", + "g = 32.174; \t\t #[ft/sec**2]\n", + "gc = 32.174;\n", + "Lmf = 5.; \t\t\t #[ft] - height of bed\n", + "mu = 6.72*10**-3; \t #[lbm/ft*sec] - viscosity of liquid\n", + "dp = 0.0157/12; \t #[ft] - diameter of particle\n", + "emf = 0.45;\n", + "\n", + "# Calculations\n", + "del_tapmf = (pp-p)*(g/gc)*(1-emf)*(Lmf);\n", + "Nar = (p*g*dp**3)*(pp-p)*(1./(mu)**2);\n", + "C1 = 27.2;\n", + "C2 = 0.0408;\n", + "Nremf = (((C1**2)+C2*Nar)**(1./2))-C1;\n", + "Umf = Nremf*(mu/(dp*p));\n", + "\n", + "# Results\n", + "print \" Minimum fluidization velocity is Umf = %.2e ft/sec\"%(Umf);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Minimum fluidization velocity is Umf = 1.18e-03 ft/sec\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.16 - Page No :624\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "d = 24.*10**-6; \t\t\t #[m] - diameter of wire\n", + "T = 415.; \t\t\t #[K] - operating temperature of hot wire anemometer\n", + "P = 0.1; \t\t\t #[W] - power consumption\n", + "L = 250.*d;\n", + "Tair = 385.; \t\t\t #[K] - temperature of air in duct\n", + "A = math.pi*d*L;\n", + "Tfilm = (T+Tair)/2.;\n", + "\n", + "# properties of air at Tfilm\n", + "p = 0.8825; \t\t\t #[kg/m**3]\n", + "mu = 2.294*10**-5; \t\t\t #[kg/m*s]\n", + "cpf = 1013.; \t\t\t #[J*kg/K]\n", + "kf = 0.03305; \t\t\t #[W/m*K]\n", + "Npr = 0.703;\n", + "\n", + "# Calculations\n", + "h = P/(A*(T-Tair));\n", + "Nnu = (h*d)/kf;\n", + "def func(x):\n", + " return Nnu-0.3-((0.62*(x**(1./2))*(Npr**(1./3)))/((1+((0.4/Npr)**(2./3)))**(1./4)))*((1+((x/(2.82*(10**5)))**(5./8)))**(4./5));\n", + "\n", + "# on solving the above function for x by umath.sing some root solver technique like Newton raphson method , we get\n", + "x = 107.7;\n", + "\t\t\t # or\n", + "Nre = 107.7;\n", + "y = func(x);\n", + "Um = (Nre*mu)/(d*p);\n", + "\n", + "# Results\n", + "print \" The velocity is Um = %.1f m/sec = %d ft/sec\"%(Um,Um*3.28);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The velocity is Um = 116.6 m/sec = 382 ft/sec\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 12.17 - Page No :630\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "dt = 0.75;\n", + "St = 1.5*dt;\n", + "Sl = 3.*dt;\n", + "Lw = 1.; \t\t\t #[m]\n", + "N = 12.;\n", + "Stotalarea = N*(St/12.)*Lw;\n", + "Sminarea = N*((St-dt)/12.)*Lw*0.3048;\n", + "\n", + "# properties of air at 293.15 K\n", + "p = 1.204; \t\t\t #[kg/m**3]\n", + "mu = 1.818*10**-5; \t #[kg/m*s]\n", + "cp = 1005.; \t\t\t #[J*kg/K];\n", + "k = 0.02560; \t\t\t #[J/s*m*K]\n", + "Npr = (cp*mu)/k;\n", + "U_inf = 7.; \t\t\t #[m/sec]\n", + "\n", + "# Calculations\n", + "Umax = U_inf*(St/(St-dt));\n", + "w = p*Umax*Sminarea;\n", + "C_tubes = 0.05983; \t\t\t #[m**2/m] - circumference of the tubes\n", + "N_tubes = 96.;\n", + "Atubes = N_tubes*C_tubes*Lw;\n", + "Tw = 328.15; \t\t\t #[K]\n", + "Tinf = 293.15; \t\t\t #[K]\n", + "Tin = 293.15; \t\t\t #[K]\n", + "Tout = 293.15; \t\t #[K]\n", + "u = 100.;\n", + "while u>10**-1:\n", + " T = (Tin+Tout)/2\n", + " Told = Tout;\n", + " p = -(0.208*(10**-3))+(353.044/T);\n", + " mu = -(9.810*(10**-6))+(1.6347*(10**-6)*(T**(1./2)));\n", + " cp = 989.85+(0.05*T);\n", + " k = 0.003975+7.378*(10**-5)*T;\n", + " Npr = (cp*mu)/k;\n", + " dt = 0.75*0.0254;\n", + " Gmax = w/Sminarea;\n", + " Nre = (dt*Gmax)/mu;\n", + " h = 0.27*(k/dt)*(Npr**0.36)*(Nre**0.63);\n", + " h = h*0.98;\n", + " del_taT = (h*Atubes*(Tw-Tinf))/(w*cp);\n", + " Tout = Tin+del_taT;\n", + " u = abs(Tout-Told);\n", + "\n", + "T = (Tin+Tout)/2\n", + "p = -(0.208*(10**-3))+(353.044/T);\n", + "mu = -(9.810*(10**-6))+(1.6347*(10**-6)*(T**(1./2)));\n", + "dt = 0.75;\n", + "dv = (4*(St*Sl-(math.pi*(dt**2)*(1./4))))/(math.pi*dt)*(0.09010/3.547);\n", + "de = dv;\n", + "Nre = (dv*24.72)/mu;\n", + "dv = dv/(0.09010/3.547);\n", + "ftb = 1.92*(Nre**(-0.145));\n", + "Zt = Sl;\n", + "Ltb = 8*Sl;\n", + "del_tap = (ftb*(24.72**2))/(2*p*(dv/Ltb)*((St/dv)**0.4)*((St/Zt)**0.6));\n", + "\n", + "# Results\n", + "print \" del_tap = %.0f kg/m*s = %.0f N/m**2 = %f psia\"%(del_tap,del_tap,round(del_tap*0.1614/1113,5))\n", + "print \" Exit temperature : %.2f K\"%T\n", + "# answer may slightly vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " del_tap = 1113 kg/m*s = 1113 N/m**2 = 0.161350 psia\n", + " Exit temperature : 299.87 K\n" + ] + } + ], + "prompt_number": 4 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch13.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch13.ipynb new file mode 100755 index 00000000..cee0ebbb --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch13.ipynb @@ -0,0 +1,299 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 13 : Unsteady-state transport" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.1 - Page No :651\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "\n", + "# Variables\n", + "# given\n", + "h = 12.; \t\t\t #[W/m**2*K] - heat transfer coefficeint\n", + "k = 400.; \t\t\t #[W/m*K] - thermal conductivity\n", + "\n", + "# Calculation and Results\n", + "# (a) for sphere\n", + "r = 5.*10**-2; \t\t\t #[m] - radius of copper sphere\n", + "Lc = ((4*math.pi*((r)**3))/3)/(4*math.pi*((r)**2));\n", + "Nbi = h*Lc*(1./k);\n", + "print \" a) The biot no. is Nbi = %.0e\"%(Nbi);\n", + "\n", + "# (b) for cyclinder\n", + "r = 0.05; \t\t\t #[m] - radius of cyclinder\n", + "L = 0.3; \t\t\t #[m] - height of cyclinder\n", + "Lc = (math.pi*((r)**2)*L)/(2*math.pi*r*L);\n", + "Nbi = h*Lc*(1./k);\n", + "print \" b) The biot no. is Nbi = %.1e\"%(Nbi);\n", + "\n", + "# (c) for a long square rod\n", + "L = .4; \t\t\t #[m] - length of copper rod\n", + "r = 0.05; \t\t\t #[m] - radius of a cyclinder havimg same cross sectional area as that of square\n", + "x = ((math.pi*r**2)**(1./2));\n", + "Lc = ((x**2)*L)/(4*x*L);\n", + "Nbi = h*Lc*(1./k);\n", + "print \" c) The biot no. is Nbi = %.3e\"%(Nbi);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a) The biot no. is Nbi = 5e-04\n", + " b) The biot no. is Nbi = 7.5e-04\n", + " c) The biot no. is Nbi = 6.647e-04\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.6 - Page No :684\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "# given\n", + "d = 1*0.0254; \t\t #[m]\n", + "Lr = d/2; \t\t\t #[m];\n", + "Lz = (1.2/2)*(0.0254);\n", + "x = Lz;\n", + "r = Lr;\n", + "k = 0.481;\n", + "h = 20.;\n", + "mr = k/(h*Lr);\n", + "mz = k/(h*Lz);\n", + "nr = r/Lr;\n", + "nz = x/Lz;\n", + "t = 1.2; \t\t\t #[sec]\n", + "\n", + "# Calculations\n", + "alpha = 1.454*10**-4;\n", + "Xr = (alpha*t)/(Lr**2);\n", + "Xz = (alpha*t)/(Lz**2);\n", + "\n", + "# using the above value of m,n,X the value for Ycz and Ycr from fig 13.14 is\n", + "Ycr = 0.42;\n", + "Ycz = 0.75;\n", + "Yc = Ycr*Ycz;\n", + "T_infinity = 400.; \t\t\t #[K]\n", + "To = 295.;\n", + "Tc = T_infinity-(Yc*(T_infinity-To));\n", + "\n", + "# Results\n", + "print \" The temperature t the centre is Tc = %.0f K\"%(Tc);\n", + "\n", + "\n", + "# Answer is vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The temperature t the centre is Tc = 367 K\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.7 - Page No :688\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "from numpy import *\n", + "# Variables\n", + "# given\n", + "T_x0 = 300.; \t\t\t #[K]\n", + "Tw = 400.; \t\t\t #[K]\n", + "L = 0.013; \t\t\t #[m]\n", + "alpha = 2.476*(10**-5); \t\t\t #[m**/sec]\n", + "h = 600.; \t\t\t #[W/m**2*K]\n", + "pcp = 3.393*(10**6); \t\t\t #[J/m**3*K]\n", + "L = 0.013; \t\t\t #[m]\n", + "del_tax = L/10.;\n", + "betaa = 0.5;\n", + "del_tat = 0.03;\n", + "\n", + "# Calculations\n", + "del_tat = betaa*((del_tax)**2)*(1./alpha);\n", + "T_infinity = 400.; \t\t\t #[K]\n", + "\n", + "# to be sure that the solution is stable, it is customary to truncate this number\n", + "del_tat = 0.03; \t\t\t #[sec]\n", + "# betaa = alpha*del_tat*((1./del_tax)**2);\n", + "Told = zeros(11)\n", + "for i in range(11):\n", + " Told[i] = 300.;\n", + "\n", + "a = ((2*h*del_tat)/(pcp*del_tax));\n", + "b = ((2*alpha*del_tat)/(pcp*((del_tax)**2)));\n", + "\n", + "Tnew = zeros(11)\n", + "for j in range(11):\n", + " Tnew[0] = (T_infinity*0.08162)+(Told[0]*(1-0.08162-0.8791))+(Told[1]*0.8791)\n", + " for k in range(9):\n", + " Tnew[k+1] = (betaa*Told[k+2])+((1.-2*betaa)*(Told[k+1]))+(betaa*Told[k]);\n", + " Tnew[10] = ((2*betaa)*(Told[9]))\n", + " Told = Tnew;\n", + "# Results\n", + "print \"Told values : \" ,(Told);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Told values : [ 325.54820838 319.78194857 315.05971328 311.28295197 308.32959437\n", + " 306.07276601 304.39590474 303.20406441 302.43143939 302.04512688\n", + " 302.04512688]\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.9 - Page No :700\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "p = 2050.; \t\t\t #[kg/m**3] - density of soil\n", + "cp = 1840.; \t\t\t #[J/kg*K] - heat cpapacity of soil\n", + "k = 0.52; \t\t\t #[W/m*K] - thermal conductivity of soil\n", + "alpha = 0.138*10**-6; \t\t\t #[m**2/sec]\n", + "t = 4*30*24*3600; \t\t\t #[sec] - no. of seconds in 4 months\n", + "Tx = -5.; \t\t\t #[degC]\n", + "Tinf = -20.; \t\t\t #[degC]\n", + "T0 = 20.; \t\t\t #[degC]\n", + "\n", + "# from the fig 13.24 the dimensionless dismath.tance Z is \n", + "Z = 0.46;\n", + "\n", + "# Calculations\n", + "# then the depth is\n", + "x = 2*((alpha*t)**(1./2))*Z\n", + "\n", + "# Results\n", + "print \" the depth is x = %.1f m = %.1f ft\"%(x,x*3.6/1.10);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the depth is x = 1.1 m = 3.6 ft\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.10 - Page No :701\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "d = 0.01; \t\t\t #[m] - diameter of cyclindrical porous plug\n", + "D = 2.*10**-9; \t\t\t #[m**2/sec] - diffusion coefficient\n", + "t = 60.*60; \t\t\t #[sec]\n", + "r = d/2.;\n", + "m = 0.;\n", + "Ca_inf = 0.;\n", + "Ca_0 = 10.;\n", + "X = (D*t)/((r)**2);\n", + "# from fig 13.14 the ordinate is\n", + "Y = 0.7;\n", + "\n", + "# Calculations\n", + "Ca_c = Ca_inf-Y*(Ca_inf-Ca_0);\n", + "\n", + "# Results\n", + "print \" the concentration of KCL at the centre after 60 min is Ca = %.2f kg/m**3\"%(Ca_c);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the concentration of KCL at the centre after 60 min is Ca = 7.00 kg/m**3\n" + ] + } + ], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch14.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch14.ipynb new file mode 100755 index 00000000..81b6e653 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch14.ipynb @@ -0,0 +1,598 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 14 : Estimation of transport coefficients" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.1 - Page No :726\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "# Variables\n", + "# given\n", + "T = 40+273.15; \t\t\t #[K] - temperature\n", + "P = 1.; \t\t\t #[atm] - pressure\n", + "sigma = 3.711*10**-10; \t\t\t #[m]\n", + "etadivkb = 78.6; \t\t\t #[K]\n", + "A = 1.16145;\n", + "B = 0.14874;\n", + "C = 0.52487;\n", + "D = 0.77320;\n", + "E = 2.16178;\n", + "F = 2.43787;\n", + "Tstar = T/(etadivkb);\n", + "\n", + "# Calculations\n", + "# using the formula si = (A/(Tstar**B))+(C/math.exp(D*Tstar))+(E/math.exp(F*Tstar)\n", + "si = (A/(Tstar**B))+(C/math.exp(D*Tstar))+(E/math.exp(F*Tstar));\n", + "M = 28.966; \t\t\t #[kg/mole] - molecular weight\n", + "\n", + "# using the formula mu = (2.6693*(10**-26))*(((M*T)**(1./2))/((sigma**2)*si))\n", + "mu = (2.6693*(10**-26))*(((M*T)**(1./2))/((sigma**2)*si));\n", + "\n", + "# Results\n", + "print \" The viscosity of air is mu = %2.2e Ns/m**2 = %.5f cP\"%(mu,mu*10**3);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The viscosity of air is mu = 1.90e-05 Ns/m**2 = 0.01903 cP\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.2 - Page No :726\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "T = 40+273.15; \t\t\t #[K] - temperature\n", + "P = 1.; \t\t\t #[atm] - pressure\n", + "# thermal conductivit of air\n", + "sigma = 3.711*10**-10; \t\t\t #[m]\n", + "etadivkb = 78.6; \t\t\t #[K]\n", + "A = 1.16145;\n", + "B = 0.14874;\n", + "C = 0.52487;\n", + "D = 0.77320;\n", + "E = 2.16178;\n", + "F = 2.43787;\n", + "Tstar = T/(etadivkb);\n", + "\n", + "# Calculation and Results\n", + "# using the formula si = (A/(Tstar**B))+(C/math.exp(D*Tstar))+(E/math.exp(F*Tstar)\n", + "si = (A/(Tstar**B))+(C/math.exp(D*Tstar))+(E/math.exp(F*Tstar));\n", + "# umath.sing the formula K = (8.3224*(10**-22))*(((T/M)**(1./2))/((sigma**2)*si))\n", + "M = 28.966; \t\t\t #[kg/mole] - molecular weight of air\n", + "k = (8.3224*(10**-22))*(((T/M)**(1./2))/((sigma**2)*si));\n", + "print \" Thermal conductivity of air is k = %.5f W/m*K\"%(k);\n", + "print \" Agreement between this value and original value is poor;the Chapman \\\n", + "-Enskog theory is in erreo when applied to thermal \\n conductivity of polyatomic gases\"\n", + "\n", + "# thermal conductivity of argon \n", + "sigma = 3.542*10**-10; \t\t\t #[m]\n", + "etadivkb = 93.3; \t\t\t #[K]\n", + "A = 1.16145;\n", + "B = 0.14874;\n", + "C = 0.52487;\n", + "D = 0.77320;\n", + "E = 2.16178;\n", + "F = 2.43787;\n", + "Tstar = T/(etadivkb);\n", + "# using the formula si = (A/(Tstar**B))+(C/math.exp(D*Tstar))+(E/math.exp(F*Tstar)\n", + "si = (A/(Tstar**B))+(C/math.exp(D*Tstar))+(E/math.exp(F*Tstar));\n", + "# using the formula K = (8.3224*(10**-22))*(((T/M)**(1./2))/((sigma**2)*si))\n", + "M = 39.948; \t\t\t #[kg/mole] - molecular weight of argon\n", + "k = (8.3224*(10**-22))*(((T/M)**(1./2))/((sigma**2)*si));\n", + "print \" Thermal conductivity of argon is k = %.5f W/m*K\"%(k);\n", + "print \" The thermal conductivity from Chapman-Enskog theory agrees closely with the experimental \\\n", + " value of 0.0185; note that argon is a monoatomic gas\";\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Thermal conductivity of air is k = 0.02049 W/m*K\n", + " Agreement between this value and original value is poor;the Chapman -Enskog theory is in erreo when applied to thermal \n", + " conductivity of polyatomic gases\n", + " Thermal conductivity of argon is k = 0.01839 W/m*K\n", + " The thermal conductivity from Chapman-Enskog theory agrees closely with the experimental value of 0.0185; note that argon is a monoatomic gas\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.3 - Page No :727\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "T = 40+273.15; \t\t\t #[K] - temperature\n", + "P = 1.; \t\t\t #[atm] - pressure\n", + "Cp = 1005.; \t\t\t #[J/kg*K] - heat capacity \n", + "M = 28.966; \t\t\t #[kg/mole] - molecular weight\n", + "R = 8314.3; \t\t\t #[atm*m**3/K*mole] - gas consmath.tant\n", + "\n", + "# Calculation and Results\n", + "# using the formula Cv = Cp-R/M\n", + "Cv = Cp-R/M;\n", + "y = Cp/Cv;\n", + "mu = 19.11*10**-6; \t\t\t #[kg/m*sec] - vismath.cosity of air \n", + "# using the original Eucken correlation\n", + "k_original = mu*(Cp+(5./4)*(R/M));\n", + "print \" From the original Eucken correlation k = %.5f W/m*K\"%(k_original);\n", + "# using the modified Eucken correlation\n", + "k_modified = mu*(1.32*(Cp/y)+(1.4728*10**4)/M);\n", + "print \" From the modified Eucken correlation k = %.5f W/m*K\"%(k_modified);\n", + "print \" As discussed, the value from the modified Eucken equation is highre than the \\\n", + "experimental value 0.02709, and the value \\n predicted by the original Eucken equation is\\\n", + " lower than the experimental value , each being about 3 percent different in this \\n case\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " From the original Eucken correlation k = 0.02606 W/m*K\n", + " From the modified Eucken correlation k = 0.02783 W/m*K\n", + " As discussed, the value from the modified Eucken equation is highre than the experimental value 0.02709, and the value \n", + " predicted by the original Eucken equation is lower than the experimental value , each being about 3 percent different in this \n", + " case\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.4 - Page No :728\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "from numpy import *\n", + "import math \n", + "\n", + "# Variables\n", + "# given\n", + "D = zeros(5)\n", + "D[0] = 7.66*10**-5; \t\t\t #[m**2/sec] - diffusion coefficient of the helium nitrogen\n", + "P = 1.; \t\t\t #[atm] - pressure\n", + "\n", + "T = zeros(5)\n", + "# (a) umath.sing the Chapman-Enskog\n", + "T[0] = 323.; \t\t\t #[K]\n", + "T[1] = 413.; \t\t\t #[K]\n", + "T[2] = 600.; \t\t\t #[K]\n", + "T[3] = 900.; \t\t\t #[K]\n", + "T[4] = 1200.; \t\t\t #[K]\n", + "Ma = 4.0026;\n", + "sigma_a = 2.551*10**-10; \t\t\t #[m]\n", + "etaabykb = 10.22; \t\t\t #[K]\n", + "Mb = 28.016;\n", + "sigma_b = 3.798*10**-10; \t\t\t #[m] \n", + "etabbykb = 71.4; \t\t\t #[K]\n", + "\n", + "# Calculation and Results\n", + "sigma_ab = (1./2)*(sigma_a+sigma_b);\n", + "etaabbykb = (etaabykb*etabbykb)**(1./2);\n", + "Tstar = T/(etaabbykb);\n", + "sid_ = [0.7205,0.6929,0.6535,0.6134,0.5865]\n", + "patm = 1.;\n", + "# using the formula Dab = 1.8583*10**-27*(((T**3)*((1./Ma)+(1./Mb)))**(1./2))/(patm*sigma_ab*sid_)\n", + "Dab = zeros(5)\n", + "Dab[0] = 0.0000794\n", + "Dab[1]= 0.0001148\n", + "Dab[2]= 0.0002010\n", + "Dab[3]= 0.0003693 \n", + "Dab[4]= 0.0005685 #(1.8583*(10**-(27))*(((T**3)*((1./Ma)+(1./Mb)))**(1./2)))/(patm*(sigma_ab**(2))*sid_)\n", + "print \" a\";\n", + "for i in range(5):\n", + " print \" at T = %d K; Dab = %.3e m**2/sec\"%(T[i],Dab[i]);\n", + "\n", + "# (b) using math.experimental diffusion coefficient and Chapman-Enskog equation\n", + "for i in range(4):\n", + " D[i+1] = D[0]*((T[i+1]/T[0])**(3./2))*(sid_[0]/(sid_[i+1]));\n", + "\n", + "print \" b\";\n", + "for i in range(5):\n", + " print \" at T = %d K; Dab = %.3e m**2/sec\"%(T[i],Dab[i]);\n", + "\n", + "# (c)\n", + "for i in range(4):\n", + " Dab[i+1] = D[0]*(T[i+1]/T[0])**(1.75);\n", + "\n", + "print \" c\";\n", + "for i in range(5):\n", + " print \" at T = %d K; Dab = %.3e m**2/sec\"%(T[i],Dab[i]);\n", + "\n", + "# Answers may be vary because of rounding off error.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a\n", + " at T = 323 K; Dab = 7.940e-05 m**2/sec\n", + " at T = 413 K; Dab = 1.148e-04 m**2/sec\n", + " at T = 600 K; Dab = 2.010e-04 m**2/sec\n", + " at T = 900 K; Dab = 3.693e-04 m**2/sec\n", + " at T = 1200 K; Dab = 5.685e-04 m**2/sec\n", + " b\n", + " at T = 323 K; Dab = 7.940e-05 m**2/sec\n", + " at T = 413 K; Dab = 1.148e-04 m**2/sec\n", + " at T = 600 K; Dab = 2.010e-04 m**2/sec\n", + " at T = 900 K; Dab = 3.693e-04 m**2/sec\n", + " at T = 1200 K; Dab = 5.685e-04 m**2/sec\n", + " c\n", + " at T = 323 K; Dab = 7.940e-05 m**2/sec\n", + " at T = 413 K; Dab = 1.178e-04 m**2/sec\n", + " at T = 600 K; Dab = 2.264e-04 m**2/sec\n", + " at T = 900 K; Dab = 4.603e-04 m**2/sec\n", + " at T = 1200 K; Dab = 7.615e-04 m**2/sec\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.5 - Page No :730\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "T = 323.; \t\t\t #[K] - temperature\n", + "P = 1.; \t\t\t #[atm] - pressure\n", + "Dab_experimental = 7.7*10**-6; \t\t\t #[m**2/sec]\n", + "DPM_A = 1.9; \t\t\t # dipole moment of methyl chlorid_e\n", + "DPM_B = 1.6; \t\t\t # dipole moment of sulphur dioxid_e\n", + "Vb_A = 5.06*10**-2; \t\t\t # liquid_ molar volume of methyl chlorid_e\n", + "Vb_B = 4.38*10**-2\n", + "Tb_A = 249.; \t\t\t # normal boiling point of methyl chlorid_e\n", + "Tb_B = 263.; \t\t\t # normal boiling point of sulphur dioxid_e\n", + "\n", + "# Calculations\n", + "del__A = ((1.94)*(DPM_A)**2)/(Vb_A*Tb_A);\n", + "del__B = ((1.94)*(DPM_B)**2)/(Vb_B*Tb_B);\n", + "del__AB = (del__A*del__B)**(1./2);\n", + "sigma_A = (1.166*10**-9)*(((Vb_A)/(1+1.3*(del__A)**2))**(1./3));\n", + "sigma_B = (1.166*10**-9)*(((Vb_B)/(1+1.3*(del__B)**2))**(1./3));\n", + "etaabykb = (1.18)*(1+1.3*(del__A**2))*(Tb_A);\n", + "etabbykb = (1.18)*(1+1.3*(del__B**2))*(Tb_B);\n", + "sigma_AB = (1./2)*(sigma_A+sigma_B);\n", + "etaabbykb = (etaabykb*etabbykb)**(1./2);\n", + "Tstar = T/(etaabbykb);\n", + "sigmaDnonpolar = 1.602;\n", + "sigmaDpolar = sigmaDnonpolar+(0.19*(del__AB**2))/Tstar;\n", + "patm = 1.;\n", + "Ma = 50.488; \t\t\t #[kg/mole] - molecular weight of methyl chlorid_e\n", + "Mb = 64.063; \t\t\t #[kg/mole] - molecular weight of sulphur dioxid_e \n", + "D_AB = (1.8583*(10**-(27))*(((T**3)*((1./Ma)+(1./Mb)))**(1./2)))/(patm*(sigma_AB**(2))*sigmaDpolar);\n", + "\n", + "# Results\n", + "print \" Dab = %.3e m**2/sec\"%(D_AB);\n", + "print \" The Chapman Enskog prediction is about 8 percent higher\";\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Dab = 8.308e-06 m**2/sec\n", + " The Chapman Enskog prediction is about 8 percent higher\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.6 - Page No :732\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "T = 423.2; \t\t\t #[K] - temperature\n", + "P = 5.; \t\t\t #[atm] - pressure\n", + "Ma = 4.0026; \t\t\t #[kg/mole] - molecular weight of helium\n", + "Mb = 60.09121; \t\t #[kg/mole] - molecular weight of propanol\n", + "Dab_experimental = 1.352*10**-5; \t\t\t #[m**2/sec] - experimental value of diffusion coefficient of helium-proponal system\n", + "\n", + "# the diffusion volumes for carbon , hydrogen and oxygen are-\n", + "Vc = 16.5;\n", + "Vh = 1.98;\n", + "Vo = 5.48;\n", + "V_A = 3*Vc+8*Vh+Vo;\n", + "V_B = 2.88;\n", + "patm = 5;\n", + "\n", + "# Calculations\n", + "# using the FSG correlation\n", + "Dab = (10**-7)*(((T**1.75)*((1./Ma)+(1./Mb))**(1./2))/(patm*((V_A)**(1./3)+(V_B)**(1./3))**2));\n", + "\n", + "# Results\n", + "print \" Dab = %.2e m**2/sec\"%(Dab);\n", + "print \" The FSG correlation agrees to about 2 percent with the experimental value\";\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Dab = 1.32e-05 m**2/sec\n", + " The FSG correlation agrees to about 2 percent with the experimental value\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.7 - Page No :736\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "%pylab inline\n", + "\n", + "from numpy import *\n", + "import math \n", + "from matplotlib.pyplot import *\n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "beta0 = -6.301289;\n", + "beta1 = 1853.374;\n", + "\n", + "# Calculations\n", + "x = transpose(array([2.2,0.2,3.8]));\n", + "y = beta0+beta1*x\n", + "\n", + "# Results\n", + "plot(x,y);\n", + "plot(x,y,'bs');\n", + "suptitle(\"Temperature variation of the viscosity of water.\")\n", + "xlabel(\"1/T x IO, K**-1 \")\n", + "ylabel(\"Viscosity,cP\")\n", + "text(0.2,500,\"420 K\")\n", + "text(3.7,7000,\"273.15 K\")\n", + "\n", + "\n", + "# at T = 420;\n", + "T = 420.; \t\t\t #[K]\n", + "x = 1./T;\n", + "y = beta0+beta1*x;\n", + "mu = math.exp(y);\n", + "print \" mu = %fcP\"%(mu);\n", + "print \" The error is seen to be 18 percent.AT mid_range 320K, the error is approximately 4 percent\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + " mu = 0.151300cP" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " The error is seen to be 18 percent.AT mid_range 320K, the error is approximately 4 percent\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAEhCAYAAABLFRaSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVXX++PHXhTT9apkJaAIuucLlXriClI4LLoSiZpoG\nLvgztTEbc2nPaUa0lMlGUWsqc9IpsdRMZ1LIqBTNDRVxwTYtUS5mgIgLimyf3x8nbyAgaNwFeD8f\nDx6ee+455/M+H+S+7+ecz/l8dEophRBCCGFlTvYOQAghRN0gCUcIIYRNSMIRQghhE5JwhBBC2IQk\nHCGEEDYhCUcIIYRNSMKxo3PnzmEymTCZTNx33314eHhgMpno0qULhYWF9g6vlO3bt7Nnzx57h1Gh\nQYMGcfHixZtuM3/+/FKv//SnP1kzJL7//nv0ej1dunTh5MmTFcaSmpqKwWCo9vKXLVvGqlWrqv24\nJc2ePZutW7cCsHjxYq5evVotx127di0dO3akX79+1XI8KPv7F7ank+dwHMOcOXO46667eOaZZ+wW\nQ3FxMU5O5X8HiYyM5K677uLZZ5+t8vGKiopwdnaurvDKdf2/r06nq3Tbu+66i0uXLlk1npL+8Y9/\nUFRUxF//+tebxpKamsqQIUM4evSozWKzhrZt23LgwAGaNWv2h481YMAA/v73v9O9e/dqiExzO7//\nm/1NiFsnNelAlFLs2bOHbt26YTQa6dOnD+np6QAEBQXxzDPP8OCDD+Ll5cX+/ft59NFHadeuHS++\n+CKgfXB17tyZcePG4ePjw+DBg7ly5QrATY87c+ZMunXrxpIlS9i0aRMPPPAABoOBXr168csvv5Ca\nmsqyZcuIjo6mS5cu7Ny5k/Hjx/Ppp59aYm/cuDEACQkJ9OzZk2HDhmE0GikqKmLq1Kn4+vri5eXF\n0qVLy5z3yy+/zNtvv215HRkZycKFC8nNzaVPnz74+/vTuXNnPvnkE8t5durUifHjx+Pn54fZbKZN\nmzZkZ2cD8PDDDxMQEEDHjh0t5b300ktcvXoVk8lEREREqZiLi4t5+umn8fb2xtvbmw8//NByLkFB\nQYSHh9OxY0dGjhxJed/P9u3bh8lkwmAwMHDgQLKzs4mLi2PJkiW888479O3bt9T2N8ai0+koKiri\nySefxMfHh6CgIHJzcwH44Ycf6NOnD76+vjzwwAMcO3as1LGKi4tp27YtFy5csKzr2LEjGRkZlnoE\niI6ORq/X4+fnR1hYGACXLl0iPDwcvV6Pr6+v5fe5cuVKS13MmDEDgMLCQiIiIjAYDBiNRhYtWgRg\n+X/w5ptvcubMGfr06UPfvn1ZuXIlM2fOtMS0fPnycr9MlVfW3Llz2bVrFxMmTOCFF14otf3UqVPZ\ntGkTAMOGDWPixIkArFixgldeeeWWfv/Lly/H19cXvV7PhAkTLFcVGjduzHPPPUdAQACJiYllYhZ/\ngBIOITIyUi1YsED5+/urzMxMpZRSa9asUWPGjFFKKRUUFKRmzZqllFJqyZIl6r777lOZmZnq2rVr\nqmXLliojI0OdPHlS6XQ6lZiYqJRS6oknnlDz589X+fn5qkuXLiorK6vc406bNs0Sx4ULFyzLy5cv\nV1OnTrXEt3DhQst748ePV+vXr7e8bty4sVJKqW3btqlGjRops9lsifW1115TSimVl5enunTpon78\n8cdS556cnKx69+5tee3t7a3MZrMqLCxUubm5SimlMjMzVZs2bVRxcbE6efKkcnJyUgcOHLDs06ZN\nG3Xu3LlS53DlyhXl5eWlMjIySsV4Y8yrV69WISEhSimlzp07p1q2bKnMZrPatm2batKkiTp79qwq\nLi5W3bp1U9u2bbvxV6c6duyodu3apZRSas6cOerJJ58st87KK1sppU6ePKnuuOMOdfToUaWUUo89\n9phauXKlUkqp7t27q+PHjyullNq7d6/605/+VOZY06dPt2y/d+9eFRwcXKb8li1bqvz8fKWUUpcv\nX1ZKKTVt2jT13HPPWY5z4cIFderUKeXu7q7Onz+vioqKVP/+/dWaNWvUvn371MCBAy3bXj/G+PHj\n1aeffqqUKv07uHz5smrXrp0qLCy0nEdKSkqpuCsqSynt/2VSUlKZc12zZo16/vnnlVJKde3aVXXr\n1s0SR3x8vOU8lLr57//QoUNq0KBBlvimTJmili9frpRSSqfTqQ0bNpQpW/xxd9g74YnfOTk5cfz4\ncYKDgwHtklTz5s0t7w8ePBgAHx8ffHx8cHFxAaB9+/akp6dzzz334OnpSWBgIACjRo3in//8Jw89\n9BAnTpygf//+5R53xIgRluUTJ07wzDPPcO7cOQoKCmjVqpXlPVXFq6+BgYG4u7sDEB8fz/Hjx1m/\nfj0AFy9e5Oeff6ZDhw6W7f38/MjIyOCXX34hIyODpk2b4u7uTl5eHjNmzGD37t3Uq1fPsg1A69at\n8ff3L7f8qKgoNm/ejLOzM2fOnOH48eO4urpWGO/OnTsJDw8H4N5776Vfv37s2bMHV1dXAgMDLXXl\n5+dHWlpaqX0zMjLIy8uzXPoZO3YsDz/8sKW+qlpnbdu2xcfHBwB/f3/S0tI4d+4cBw8eZOTIkZbt\nyrtHEhYWxty5cxk/fjxr1qyxtGBKMhqNjB07lsGDBzNs2DAAvv76a/73v/9Ztrn77rvZsmUL/fv3\n55577gG0/0PffPMNISEhnDhxgmnTpjFgwAAGDhx40/Np1KgRffv2ZdOmTXTu3JmCggL0en2pbfbu\n3VtuWdfjL6/uevbsyeLFi/nuu+/Q6/Xk5ORw9uxZ9u7dy1tvvYVSqkq//y+//JLk5GQCAgIs9Xp9\nG2dnZx555JGbnp+4PZJwHIhSCl9fX3bs2FHu+3feeSegJabry9dfFxcXA6XvZSil0Ol0lR63UaNG\nluWpU6fyyiuvEBoayvbt24mMjCx3n5JlFhcXk5+fX+7xAN5991369OlT0WkDMHLkSNavX8/Zs2ct\nH/4ffvghFy9e5OjRo+h0Otq2bWu57HFjGdfFx8ezc+dOkpKSqF+/Pn369Km0A8b1OrpxHVCqnp2d\nnS3nXJGSx6nKfaXryitHKYWrqyvJyck33ffBBx/kxIkTZGVl8b///Y+///3vZeKJjY1lx44dbN68\nmfnz55OSklIm3usxl1x3ffmee+4hOTmZL774gn//+9+sX7+eFStW3DSuSZMmMW/ePLy8vJgwYUKZ\n98srq2SdlVd/LVu2JCcnhy1bttCrVy+ys7NZu3YtjRs3plGjRrf0+584cSJz584ts75Bgwa39LsT\nVSf3cBxIcXExp0+ftnzAFBYW8sMPP9zSMU6fPs3+/fsBradPjx49MBqNNz1uyT/6vLw8WrRoAWC5\nlwHQsGFDy/0gAA8PD5KSkgDtw6ygoKDceEJCQli2bJnlg/rkyZMVfkv/+OOPWb9+veUbfV5eHm5u\nbuh0Onbs2MGpU6cqPf+8vDyaNm1K/fr1OX78OHv37rW85+zsTFFRUZl9evbsySeffIJSiuzsbLZu\n3Uq3bt2q1Dpxc3OjYcOGlh58H330Eb179wZu3iKsKJaSXFxccHV1ZfPmzZbj3XgPB7QP5mHDhjFz\n5ky8vb1p2rRpqfeVUqSnpxMUFERUVBQXL14kJyeH4OBgli1bZtnu4sWLdOvWja1bt5KTk0NxcTHr\n1q2jd+/eZGdno5Ri+PDhzJ07lwMHDpSJo2HDhpZ7T6C1dM1mMx999BGjRo0qs315ZfXq1eumdQJa\ngl28eDG9e/emZ8+e/POf/7TsV9Xff3BwMOvWreP8+fOWczebzZWWLf4YSTgO5I477uCTTz7hySef\nxM/PDz8/P7Zv315mO51OV+E3sE6dOvHmm2/i4+NDeno606dPp379+jc9bslj/e1vf2PYsGE88MAD\nNGvWzPLekCFD+Oijj/Dz82PXrl08+eSTfPHFF5hMJnbv3m25AX/j8f7yl7/g7u5uuTH9+OOPl5uc\nvL29uXz5Mh4eHpZLWGPGjGH37t34+vrywQcf4OXlVW4ZJV8PGDCAvLw8vLy8ePHFF+nWrZtlm/Hj\nx+Pl5WW5aXx9n7CwMNq1a4e3tzc9evQgKiqKli1bllvP5dX7qlWr+Mtf/oLRaGT37t289tprlm0r\n+j2VjOVm5axdu5aFCxdiNBrx8fGxXJq8UVhYGKtXry5zOe16h4Tw8HD8/Pzo0qULf/nLX2jWrBmv\nvvoqp0+fxtvbGz8/P77++ms8PDyYO3cu3bp1Q6/X4+XlxciRIzl9+jQ9e/a03HSPiooqE8PEiRPp\n06dPqa7Mjz32GD169KBJkyZltq+orMr07NmToqIi7r//fkwmE+fPn6dnz55A1X//vr6+vPzyy/Ts\n2RM/Pz+CgoI4c+ZMqboHrWt5yaQs/hjpFl2L1JbutaL2GDp0KNOmTavW52lEzSUtnFpGrj0LR5CT\nk4Ner6d+/fqSbISFtHCEEELYhLRwhBBC2IQkHCGEEDYhCUcIIYRNSMIRQghhE5JwhBBC2IQkHCGE\nEDYhCUcIIYRNWDXhzJ49m44dO9K5c2dGjBjBlStXyM7OJjg4GKPRSEhICDk5OZbto6Ki8Pb2xmAw\nEB8fb1mflJSEyWRCr9czffp0a4YshBDCSqyWcE6cOMGqVatISUnh+++/x9nZmY8//pjZs2czaNAg\njhw5wsCBA5k9ezagJZUNGzZw9OhRtmzZwuTJky1jbj3++OOsWLGCY8eOcerUKTZu3GitsIUQQliJ\n1RLOvffeS7169cjNzaWwsJArV67QqlUr4uLiLIMnjh07ltjYWEAbcTg8PBxnZ2fLYI+JiYmcPn2a\n4uJiTCZTmX2EEELUHFZNOM8++yytWrWiZcuW3HPPPQQHB5OZmWmZ89zFxYWMjAwA0tPT8fDwsOzv\n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\ngg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x21b2450>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.8 - Page No :737\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "M = 153.82; \t\t\t #[kg/mole] - molecular weight of ccl4\n", + "T1 = 349.90; \t\t\t #[K] - temperature1\n", + "T2 = 293.15; \t\t\t #[K] - temperature 2\n", + "cp1 = 0.9205; \t\t\t #[KJ/kg*K] - heat capacity at temperature T1\n", + "cp2 = 0.8368; \t\t\t #[KJ/kg*K] - heat capacity at temperature T2\n", + "p1 = 1480.; \t\t\t #[kg/m**3] - density at temperature T1\n", + "p2 = 1590.; \t\t\t #[kg/m**3] - density at temperature T2\n", + "Tb = 349.90; \t\t\t #[K] - normal boiling point\n", + "pb = 1480.; \t\t\t #[kg/m**3] - density at normal boiling point\n", + "cpb = 0.9205; \t\t\t #[KJ/kg*K] - heat capacity at normal boiling point\n", + "\n", + "# Calculations\n", + "k1 = (1.105/(M**(1./2)))*(cp1/cpb)*((p1/pb)**(4./3))*(Tb/T1);\n", + "k2 = (1.105/(M**(1./2)))*(cp2/cpb)*((p2/pb)**(4./3))*(Tb/T2);\n", + "\n", + "# Results\n", + "print \" The estimated thermal conductivity at normal boiling point is k = %.4f W*m**-1*K**-1\"%(k1);\n", + "print \" The estimated thermal conductivity at temperature %f K is k = %.4f W*m**-1*K**-1\"%(T2,k2);\n", + "print \" The estimated value is 3.4 percent higher than the experimental value of 0.1029 W*m**-1*K**-1\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The estimated thermal conductivity at normal boiling point is k = 0.0891 W*m**-1*K**-1\n", + " The estimated thermal conductivity at temperature 293.150000 K is k = 0.1064 W*m**-1*K**-1\n", + " The estimated value is 3.4 percent higher than the experimental value of 0.1029 W*m**-1*K**-1\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 14.9 - Page No :743\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "T = 288.; \t\t\t #[K] - temperature\n", + "M1 = 60.09; \t \t\t #[kg/mole] - molecular weight of proponal\n", + "M2 = 18.015; \t\t \t #[kg/mole] - molecular weight of water\n", + "mu1 = 2.6*10**-3; \t\t\t #[kg/m*sec] - viscosity of proponal\n", + "mu2 = 1.14*10**-3; \t\t #[kg/m*sec] - viscosity of water\n", + "Vc = 14.8*10**-3; \t\t\t #[m**3/kmol] - molar volume of carbon\n", + "Vh = 3.7*10**-3; \t\t\t #[m**3/kmol] - mlar volume of hydrogen\n", + "Vo = 7.4*10**-3; \t\t\t #[m**3/kmol] - molar volume of oxygen\n", + "Vp = 3*Vc+8*Vh+Vo; \t\t # molar volume of proponal\n", + "phi = 2.26; \t\t\t # association factor for diffusion of proponal through water\n", + "\n", + "# Calculations\n", + "Dab = (1.17*10**-16*(T)*(phi*M2)**(1./2))/(mu2*(Vp**0.6));\n", + "print \" The diffusion coefficient of proponal through water is Dab = %.1e m**2/sec\"%(Dab);\n", + "phi = 1.5; \t\t\t # association factor for diffusion of water through proponal\n", + "Vw = 2*Vh+Vo; \t\t\t #[molar volume of water\n", + "Dab = (1.17*10**-16*(T)*(phi*M1)**(1./2))/(mu1*(Vw**0.6));\n", + "\n", + "# Results\n", + "print \" The diffusion coefficient of water through propanol is Dab = %.1e m**2/sec\"%(Dab);\n", + "\n", + "# Answer may vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The diffusion coefficient of proponal through water is Dab = 8.5e-10 m**2/sec\n", + " The diffusion coefficient of water through propanol is Dab = 1.5e-09 m**2/sec\n" + ] + } + ], + "prompt_number": 26 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch15.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch15.ipynb new file mode 100755 index 00000000..374352f1 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch15.ipynb @@ -0,0 +1,259 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 15 : Non newtonian phenomena" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 15.1 - Page No :760\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "%pylab inline\n", + "\n", + "import math \n", + "from numpy import *\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Variables\n", + "# given\n", + "r = array([10, 20, 50, 100, 200, 400, 600, 1000, 2000])\n", + "tau = array([2.2, 3.1 ,4.4, 5.8, 7.4, 9.8, 11.1, 13.9, 17.0])\n", + "\n", + "# Calculation and Results\n", + "#tau = tau*(10**-4);\n", + "plot(r,tau);\n", + "plot(r,tau,'ro');\n", + "suptitle(\"asic shear diagram for the fluid\")\n", + "xlabel(\"Shear rate, S**-1 \")\n", + "ylabel(\"Shear streets, Nm**-2 \")\n", + "\n", + "# the data falls nearly on a straight line\n", + "# from the graph the slope and the intercept are\n", + "slope = 0.3841;\n", + "intercept = 9.17046;\n", + "# from the relation tau = K*(-r)**n;\n", + "K = math.exp(intercept);\n", + "n = slope\n", + "print \"K = \",K\n", + "print \"n = \",n\n", + "print \" The fluid is pseudo plastic, since the slope is less than 1 \"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + "K = " + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " 9609.04383369\n", + "n = 0.3841\n", + " The fluid is pseudo plastic, since the slope is less than 1 \n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['draw_if_interactive']\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 0x35cb850>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 15.2 - Page No :774\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "a = array([651, 1361, 2086, 5089, 7575, 11140, 19270, 25030])\n", + "tau = array([3.71, 7.49, 11.41, 24.08, -35.21, 46.25, 77.50, 96.68])\n", + "\n", + "# from the graph\n", + "betao = -4.3790154;\n", + "beta1 = 0.8851;\n", + "\n", + "# Calculations\n", + "K = math.exp(betao);\n", + "n = beta1;\n", + "plot(a,tau);\n", + "suptitle(\"Capillary shear diagram for polyisobutylene L-80 in cyclohexane.\")\n", + "xlabel(\"Pseudoshear rate\")\n", + "ylabel(\"Wall shear stress \")\n", + "\n", + "# Results\n", + "print \" The final rheological model_ is tauw = %f*8*Uz,avg/do)**%f\"%(K,n);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The final rheological model_ is tauw = 0.012538*8*Uz,avg/do)**0.885100\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x3f00550>" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 15.3 - Page No :774\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# from Example 15.2 \n", + "n = 0.8851;\n", + "K = 0.01254;\n", + "n = n;\n", + "\n", + "# Calculations\n", + "K = K/((3*n+1)/(4*n));\n", + "\n", + "# Results\n", + "print \"n = \",n\n", + "print \"K = %f N/m**2\"%(K);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "n = 0.8851\n", + "K = 0.012146 N/m**2\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 15.4 - Page No :775\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "a = array([10, 20, 50, 100, 200, 400, 600, 1000, 2000])\n", + "tau = array([2.24, 3.10, 4.35, 5.77, 7.50, 9.13, 11.0, 13.52, 16.40])\n", + "tau = tau*10**-4;\n", + "betao = 8.96694;\n", + "beta1 = 0.48452520;\n", + "beta2 = 0.010923041;\n", + "\n", + "# Calculations\n", + "# such a plot suggests a second order polynomila of the type y = betao+beta1*x+beta2*x**2;\n", + "# where y = ln(tauw) and x = ln(8*Uz,avg/do) = ln(a);\n", + "# from the graph\n", + "n = beta1+2.*beta2*a;\n", + "phiw = ((3.*n+1.)/(4.*n))*(a);\n", + "mu = tau/phiw;\n", + "\n", + "# Results\n", + "\n", + "print \" 8*Uz,avg/do n ((3*n+1)/4*n) phiw mu\"\n", + "for i in range(9):\n", + " print \" %6.0f %8.4f %8.4f %8.4f %6.6f\"%(a[i],n[i],3*n[i]+1/4*n[i],phiw[i],mu[i])\n", + "\n", + "\n", + "# Answer in book is wrong. Please calculate manually." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " 8*Uz,avg/do n ((3*n+1)/4*n) phiw mu\n", + " 10 0.7030 2.1090 11.0563 0.000020\n", + " 20 0.9214 2.7643 20.4262 0.000015\n", + " 50 1.5768 4.7305 45.4273 0.000010\n", + " 100 2.6691 8.0074 84.3663 0.000007\n", + " 200 4.8537 14.5612 160.3013 0.000005\n", + " 400 9.2230 27.6689 310.8425 0.000003\n", + " 600 13.5922 40.7765 461.0358 0.000002\n", + " 1000 22.3306 66.9918 761.1954 0.000002\n", + " 2000 44.1767 132.5301 1511.3182 0.000001\n" + ] + } + ], + "prompt_number": 24 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch2.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch2.ipynb new file mode 100755 index 00000000..ba2a6451 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch2.ipynb @@ -0,0 +1,527 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2 : Molecular transport mechanisms" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.1 - Page No :28\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "deltax = 0.1; \t\t\t #[m] - thickness of copper block\n", + "T2 = 100.; \t\t\t #[degC] - temp on one side of copper block\n", + "T1 = 0.; \t\t\t #[degC] - temp on other side of the copper block\n", + "k = 380.; \t\t\t #[W/mK] - thermal conductivity\n", + "\n", + "# Calculations\n", + "# using the formula (q/A)*deltax = -k*(T2-T1)\n", + "g = -k*(T2-T1)/deltax;\n", + "g1 = (g/(4.184*10000));\n", + "\n", + "# Results\n", + "print \" The steady state heat flux across the copper block is q/A = %.1e W/m**2 \\\n", + "\\n or in alternate units is q/A = %.1f cal/cm*sec\"%(g,g1);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The steady state heat flux across the copper block is q/A = -3.8e+05 W/m**2 \n", + " or in alternate units is q/A = -9.1 cal/cm*sec\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.2 - Page No :29\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "dely = 0.1; \t\t\t #[m] - distance between two parralel plates\n", + "delUx = 0.3; \t\t\t #[m/sec] - velocity of a plate\n", + "mu = 0.001; \t\t\t #[kg/m*sec] - viscosity\n", + "\n", + "# Calculations\n", + "# using the formula tauyx = F/A = -mu*(delUx/dely)\n", + "tauyx = -mu*(delUx/dely);\n", + "\n", + "# Results\n", + "print \"The momentum flux and the the force per unit area, \\nwhich are the same thing \\\n", + " is tauyx = F/A = %.3f N/m**2\"%(tauyx);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The momentum flux and the the force per unit area, \n", + "which are the same thing is tauyx = F/A = -0.003 N/m**2\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.3 - Page No :30\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "tauyx = -0.003; \t\t #[N/m**2] - momentum flux\n", + "dely = 0.1; \t\t\t #[m] - distance between two parallel plates\n", + "mu = 0.01; \t\t\t #[kg/m*sec] - viscosity\n", + "\n", + "# Calculations\n", + "# using the formula tauyx = F/A = -mu*(delUx/dely)\n", + "delUx = -((tauyx*dely)/mu)*100;\n", + "\n", + "# Results\n", + "print \" Velocity of the top plate is deltaUx = %d cm/sec\"%(delUx);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Velocity of the top plate is deltaUx = 3 cm/sec\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.5 - Page No :31\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "\n", + "# Variables\n", + "d = 0.0013; \t\t\t #[m] - diameter of the tube\n", + "delx = 1.; \t\t\t #[m] - length of the glass tube\n", + "T2 = 110.6; \t\t\t #[degC] - temperature on one end of the rod\n", + "T1 = 0.; \t\t\t #[degC] - temperature on other side of the rod\n", + "k = 0.86; \t \t\t #[W/m*K] - thermal conductivity\n", + "Hf = 333.5; \t\t\t #[J/g] - heat of fusion of ice\n", + "\n", + "# Calculations\n", + "# (a)using the equation (q/A) = -k*(delt/delx)\n", + "A = (math.pi*d**2)/4;\n", + "q = A*(-k*(T2-T1)/delx);\n", + "\n", + "# Results\n", + "print \"a) the heat flow is q = %.2e J/sec\"%(q);\n", + "\n", + "# (b) dividing the total heat transfer in 30minutes by the amount of heat required to melt 1g of ice\n", + "a = abs((q*30*60)/333.5);\n", + "print \"b) the amount or grams of ice melted in 30 minutes is %.1e g\"%(a);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) the heat flow is q = -1.26e-04 J/sec\n", + "b) the amount or grams of ice melted in 30 minutes is 6.8e-04 g\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.6 - Page No :36\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "from scipy.integrate import quad \n", + "\n", + "# Variables\n", + "d = 1.2*10**-2; \t\t #[m] - diameter of the hole\n", + "Ca1 = 0.083; \t\t\t #[kmol/m**3]\n", + "Ca2 = 0.; \t\t\t #[kmol/m**3]\n", + "L = 0.04; \t\t\t #[m] - thickness of the iron piece \n", + "Dab = 1.56*10**-3; \t #[m**2/sec] - diffusion coefficient of CO2\n", + "A = (math.pi*d**2)/4; \t #area\n", + "\n", + "# Calculations\n", + "# (a)using the formula (Na/)A = (Ja/A) = -Dab(delCa/delx)\n", + "def f0(Ca): \n", + "\t return 1\n", + "\n", + "intdCa = quad(f0,Ca2,Ca1)[0]\n", + "\n", + "def f1(x): \n", + "\t return 1\n", + "\n", + "intdx = quad(f1,0,0.04)[0]\n", + "\n", + "g = (intdCa/intdx)*Dab;\n", + "\n", + "# Results\n", + "print \"a) The molar flux with respect to stationary coordinates is Na/A) = %.3e kmol/m**2*sec\"%(g);\n", + "\n", + "# using the formula na/A = (Na/A)*Ma\n", + "Ma = 44.01; \t\t\t #[kg/mol] - molcular weight of co2\n", + "na = (intdCa/intdx)*Dab*Ma*A*(3600/0.4539);\n", + "print \"b) The mass flow rate is %.3f lb/hr\"%(na);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) The molar flux with respect to stationary coordinates is Na/A) = 3.237e-03 kmol/m**2*sec\n", + "b) The mass flow rate is 0.128 lb/hr\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.7 - Page No :38\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "T = 30+273.15; \t\t\t #[K] temperature\n", + "pA = 3.; \t\t\t #[atm] partial pressure of the component A\n", + "R = 0.082057; \t \t\t #[atm*m**3*/kmol*K] gas constant\n", + "\n", + "# Calculation and Results\n", + "# (a) using the equation Ca = n/V = pA/(R*T)\n", + "Cco2 = pA/(R*T);\n", + "Cco2 = Cco2*(44.01);\n", + "print \" a) The concentarion of Co2 entering is %.2f kg/m**3\"%(Cco2);\n", + "\n", + "# (b) using the same equation as above\n", + "pN2 = (0.79)*3; \t\t\t #[atm] partial pressure of mitrogen(as nitrogen is 79% in air)\n", + "R = 0.7302; \t\t \t #[atm*ft**3*lb/mol*R] - gas constant\n", + "T = T*(1.8); \t\t\t #[R] temperature\n", + "CN2 = pN2/(R*T);\n", + "print \" b) The concentration of N2 entering is %.2e lb mol/ft**3\"%(CN2);\n", + "\n", + "# (c) using the same equation as above\n", + "nt = 6.;\n", + "nCo2 = 4.;\n", + "nO2 = 2.*(0.21);\n", + "nN2 = 2.*(0.79);\n", + "yCo2 = nCo2/nt;\n", + "yO2 = nO2/nt;\n", + "yN2 = nN2/nt;\n", + "R = 82.057; \t\t\t #[atm*cm**3/mol*K] - gas constant\n", + "T = 30+273.15; \t\t\t #[K] - temperature\n", + "pCo2 = 3*yCo2;\n", + "Cco2 = pCo2/(R*T);\n", + "print \" c) The concentartion of Co2 in the exit is %.2e mol/cm**3\"%(Cco2);\n", + "\n", + "# (d) using the same equation as above\n", + "R = 8.3143; \t\t\t #[kPa*m**3/kmol*K] - gas constant\n", + "pO2 = 3*(yO2)*(101.325); \t\t\t #[kPa] - partial pressure\n", + "CO2 = pO2/(R*T);\n", + "print \" d) The concentration of O2 in the exit stream is %.2e kmol/m**3\"%(CO2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a) The concentarion of Co2 entering is 5.31 kg/m**3\n", + " b) The concentration of N2 entering is 5.95e-03 lb mol/ft**3\n", + " c) The concentartion of Co2 in the exit is 8.04e-05 mol/cm**3\n", + " d) The concentration of O2 in the exit stream is 8.44e-03 kmol/m**3\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.8 - Page No :39\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "# Variables\n", + "delx = 0.3-0; \t \t\t #[m] - length\n", + "d = 0.05-0; \t \t \t #[m] - diameter\n", + "A = (math.pi*d**2)/4; \t\t\t #[m**2] - area;\n", + "R = 8.314*10**3; \t\t\t #[N*m/kmol*K] - gas constant\n", + "xco1 = 0.15; \t\t\t # mole prcent of co in one tank\n", + "xco2 = 0.; \t\t\t # mole percent of co in other tank\n", + "p2 = 1.; \t\t \t #[atm] - pressure in one tank\n", + "p1 = p2; \t\t\t #[atm] - pressure in other tank\n", + "D = 0.164*10**-4; \t \t\t #[m**2/sec] - diffusion coefficient\n", + "T = 298.15; \t\t\t #[K] - temperature\n", + "\n", + "# Calculations\n", + "# using the formula (Na/A) = (Ja/A) = -D*(delca/delx) = -(D/R*T)*(delpa/delx);\n", + "delpa = (p2*xco2-p1*xco1)*10**5; \t\t\t #[N/m**2] - pressure difference\n", + "Na = -((D*A)/(R*T))*(delpa/delx);\n", + "\n", + "# Results\n", + "print \"The initial rate of mass transfer of co2 is %.1e kmol/sec\"%(Na);\n", + "print \"In order for the pressure to remain at 1 atm, a diffusion of air must occur which is in the opposite\\\n", + " direction \\nand equal to %.1e kmol/sec\"%(Na);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The initial rate of mass transfer of co2 is 6.5e-10 kmol/sec\n", + "In order for the pressure to remain at 1 atm, a diffusion of air must occur which is in the opposite direction \n", + "and equal to 6.5e-10 kmol/sec\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.9 - Page No :44\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "A = 5.; \t\t\t #[m**2] - area of the plates\n", + "Ft = 0.083 \t\t\t #[N] - force on the top plate\n", + "Fb = -0.027; \t\t\t #[N] - force on the bottom plate\n", + "ut = -0.3; \t\t\t #[m/sec] - velocity of the top plate\n", + "ub = 0.1; \t\t\t #[m/sec] - velocity of the bottom plate\n", + "dely = 0.01; \t\t\t #[m]\n", + "delux = ut-ub; \t\t #[m/sec]\n", + "\n", + "# Calculations\n", + "# using the formula tauyx = F/A = -mu(delux/dely)\n", + "tauyx = (Ft-Fb)/A;\n", + "mu = tauyx/(-delux/dely); \t\t\t #[Ns/m**2]\n", + "mu = mu*10**3; \t\t\t #[cP]\n", + "\n", + "# Results\n", + "print \" The viscosity of toulene in centipose is %.2f cP\"%(mu);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The viscosity of toulene in centipose is 0.55 cP\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.11 - Page No :51\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "po = 1.; \t\t\t #[atm] - pressure\n", + "p = 2.; \t\t \t #[atm] - pressure\n", + "To = 0+273.15; \t\t\t #[K] - temperature\n", + "T = 75+273.15; \t\t\t #[K] - temperature\n", + "Do = 0.219*10**-4; \t #[m**2/sec];\n", + "n = 1.75;\n", + "\n", + "# Calculations\n", + "# usin the formula D = Do*(po/p)*(T/To)**n\n", + "D = Do*(po/p)*(T/To)**n;\n", + "\n", + "# Results\n", + "print \"The diffusion coefficient of water vapour in air at %d atm and %d degC is \\nD \\\n", + " = %.3e m**2/sec\"%(p,T-273.15,D);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The diffusion coefficient of water vapour in air at 2 atm and 75 degC is \n", + "D = 1.674e-05 m**2/sec\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.12 - Page No :52\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.optimize import fsolve \n", + "import math \n", + "\n", + "# Variables\n", + "# given\n", + "T = 53+273.15; \t\t\t #[K] - temperature\n", + "mu1 = 1.91*10**-5;\n", + "mu2 = 2.10*10**-5;\n", + "T1 = 313.15; \t\t\t #[K] - temperature \n", + "T2 = 347.15; \t\t\t #[K] - temperature\n", + "\n", + "# Calculations\n", + "# for air\n", + "# using linear interpolation of the values in table 2.2\n", + "def f(a):\n", + " return math.log(mu1/a)/math.log(T1);\n", + "\n", + "def g(a):\n", + " return math.log(mu2)-math.log(a)-f(a)*math.log(T2);\n", + "\n", + "a1 = 10**-7;\n", + "A = fsolve(g,a1)\n", + "B = f(A);\n", + "\n", + "# using the formula ln(mu) = lnA+Bln(t)\n", + "mu = math.e**(math.log(A)+B*math.log(T))*10**3; \t\t\t #[cP]\n", + "\n", + "# Results\n", + "print \" the viscosity of air at %d degC is %.4f cP\"%(T-273.15,mu);\n", + "\n", + "# similarly for water\n", + "BdivR = 1646;\n", + "A = 3.336*10**-8;\n", + "mu = A*math.e**(BdivR/T)*10**5 \t\t\t #[cP]\n", + "print \" the viscosity of water at %d degC is %.3f cP\"%(T-273.15,mu);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the viscosity of air at 53 degC is 0.0198 cP\n", + " the viscosity of water at 53 degC is 0.519 cP\n" + ] + } + ], + "prompt_number": 23 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch3.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch3.ipynb new file mode 100755 index 00000000..d6bb6acf --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch3.ipynb @@ -0,0 +1,227 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3 : The general property balance" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.1 - Page No :65\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "# Variables\n", + "a = 0.0006; \t\t #[m**2] - area\n", + "l = 0.1; \t\t\t #[m] - length\n", + "\n", + "# (a) using the fourier law\n", + "deltax = 0.1; \t\t #[m] - thickness of copper block\n", + "T2 = 100.; \t\t #[degC] - temp on one side of copper block\n", + "T1 = 0.; \t\t\t #[degC] - temp on other side of the copper block\n", + "k = 380.; \t\t\t #[W/mK] - thermal conductivity\n", + "\n", + "# Calculations\n", + "# using the formula (q/A)*deltax = -k*(T2-T1)\n", + "g = -k*(T2-T1)/deltax;\n", + "print \" a) The steady state heat flux across the copper block is q/A = %5.1e J*m**-2*sec**-1 \"%(g);\n", + "\n", + "# (b)\n", + "V = a*l; \t\t\t #[m**3] - volume\n", + "# using the overall balance equation with the accumulation and generation term\n", + "Qgen = 1.5*10**6; \t\t\t #[j*m**-3*sec**-1]\n", + "SIx = (g*a-Qgen*V)/a;\n", + "\n", + "# Results\n", + "print \" b) the flux at face 1 is %5.1e j*m**-2*sec**-1;the negative sign indicates that the \\\n", + "\\nheat flux is from right to left negative x direction\"%(SIx);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " a) The steady state heat flux across the copper block is q/A = -3.8e+05 J*m**-2*sec**-1 \n", + " b) the flux at face 1 is -5.3e+05 j*m**-2*sec**-1;the negative sign indicates that the \n", + "heat flux is from right to left negative x direction\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.2 - Page No :68\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from sympy import *\n", + "\n", + "# Variables\n", + "x = Symbol('x')\n", + "SIx2 = -3.8*10**5; \t\t #[j*m**-2*sec**-1] - flux at x = 0.1,i.e through face2\n", + "Qgen = 1.5*10**6; \t\t\t #[j*m**-3*sec**-1] - uniform generation in the volume\n", + "T2 = 100+273.15; \t\t\t #[K] temperature at face 2\n", + "x2 = 0.1; \t\t\t #[m]\n", + "k = 380.; \t\t\t #[W/mK] - thermal conductivity\n", + "\n", + "# Calculations\n", + "# using the equation der(SIx)*x = SIx+c1;where c1 is tyhe constant of integration\n", + "c1 = (Qgen*x2)-SIx2;\n", + "SIx = Qgen*x-c1;\n", + "\n", + "# Results\n", + "print \"SIx = \",SIx\n", + "print \" where SIx is in units of J m**-2 sec**-1 and x is in units of m\"\n", + "\n", + "# using the equation -k*T = der(SIx)*x**2-c1*x+c2;where c2 is the constant of integration\n", + "c2 = -k*T2-(Qgen*(x2)**2)/2+c1*x2;\n", + "T = -(Qgen/k)*x**2+(c1/k)*x-(c2/k);\n", + "print \"T = \",T\n", + "print \" where T is in units of kelvin K\"\n", + "\n", + "\n", + "# Answer may vary because of rouding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "SIx = 1500000.0*x - 530000.0\n", + " where SIx is in units of J m**-2 sec**-1 and x is in units of m\n", + "T = -3947.36842105263*x**2 + 1394.73684210526*x + 253.413157894737\n", + " where T is in units of kelvin K\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.3 - Page No :69\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "from sympy import *\n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "x = Symbol('x')\n", + "t = Symbol('t')\n", + "hf1 = -270.; \t\t\t #[J/sec] - heat flow at face 1\n", + "hf2 = -228.; \t\t\t #[J/sec] - heat flow at face2\n", + "Qgen = 1.5*10**6; \t\t #[J*m**-3*sec**-1] generation per unit volume per unit time\n", + "v = 6*10**-5; \t\t\t #[m**3] volume\n", + "Cp = 0.093; \t\t\t #[cal*g**-1*K**-1] heat capacity of copper\n", + "sp = 8.91; \t\t\t #specific gravity of copper\n", + "a = 0.0006; \t\t\t #[m**2] - area\n", + "\n", + "# Calculation and Results\n", + "# (a) using the overall balance\n", + "acc = hf1-hf2+Qgen*v;\n", + "print \"a) the rate of accumulation is %d J/sec \"%(acc);\n", + "\n", + "# (b) \n", + "SIx1 = hf1/a;\n", + "SIx2 = hf2/a;\n", + "x1 = 0.;\n", + "\n", + "# solving for the constant of integration c1 in the equation [del(p*cp*T)/delt-der(SIx)]*x = -SIx+c1;\n", + "c1 = 0+SIx1;\n", + "x2 = 0.1;\n", + "g = (-(SIx2)+c1)/x2+Qgen;\n", + "SIx = c1-(g-Qgen)*x;\n", + "print \"SI(x) = \",\"(b)\",SIx\n", + "\n", + "# solving for constant of integration c3 in the equation p*cp*T = g*t+c3\n", + "T2 = 100+273.15;\n", + "t2 = 0;\n", + "p = sp*10**3; \t\t\t #[kg/m**3] - density\n", + "cp = Cp*4.1840; \t\t\t #[J*kg**-1*K**-1]\n", + "c3 = p*cp*T2-g*t2;\n", + "T = (g*(10**-3)/(p*cp))*t+c3/(p*cp);\n", + "print \"Relationship between T and t at x=0.1m is T = \",T\n", + "\n", + "# solving for constant of integration c2 in the equation -k*T = der(SIx)*x**2-c1*x+c2\n", + "k = 380.; \t\t\t #[w/m**1*K**1]\n", + "x2 = 0.1;\n", + "c2 = k*T+(3.5*10**5)*x2**2-(4.5*10**5)*x2;\n", + "\n", + "def T(t,x):\n", + " return (-(3.5*10**5)*x**2+(4.5*10**5)*x+87.7*t+1.00297*10**5)/k;\n", + "\n", + "# at face 1;\n", + "x1 = 0.;\n", + "t1 = 60.; \t\t\t #[sec]\n", + "T1 = T(t1,x1);\n", + "print \"Temperature profile as a function of x and t is T = %.2f K, at face 1\"%T1\n", + "\n", + "# at face 2\n", + "x2 = 0.1;\n", + "t2 = 60.; \t\t\t # [sec]\n", + "T2 = T(t2,x2);\n", + "print \"Temperature at face 2 = %.0f K ,at face 2\"%T2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) the rate of accumulation is 48 J/sec \n", + "SI(x) = (b) 700000.0*x - 450000.0\n", + "Relationship between T and t at x=0.1m is T = 0.230747847543697*t + 373.15\n", + "Temperature profile as a function of x and t is T = 277.79 K, at face 1\n", + "Temperature at face 2 = 387 K ,at face 2\n" + ] + } + ], + "prompt_number": 6 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch4.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch4.ipynb new file mode 100755 index 00000000..dbef3bc2 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch4.ipynb @@ -0,0 +1,342 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4 : molecular transport and the general property balance" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.1 - Page No :99\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "# Variables\n", + "# given\n", + "id_ = 2.067; \t\t\t #[in] - inside diameter\n", + "t = 0.154; \t\t\t #[in] - wall thickness\n", + "od = id_+2*t; \t\t\t #[in] - outer diameter\n", + "a = 1.075; \t\t\t #[in**2] - wall sectional area of metal\n", + "A = a*(1./144); \t\t #[ft**2] - wall sectional area of metal in ft**2\n", + "deltaz = 5./12; \t\t #[ft] - length of transfer in z direction\n", + "T2 = 10+273.15; \t\t #[K] - temperature at the top\n", + "T1 = 0+273.15; \t\t #[K] - temperature at the bottom\n", + "q = -3.2; \t\t\t #[Btu/hr] - heat transferred\n", + "\n", + "# Calculations\n", + "deltaT = (T2-T1)+8; \t\t\t #[degF]\n", + "k = round(-(q/A)/(deltaT/deltaz),2);\n", + "\n", + "# Results\n", + "print \"Thermal conductivity = %.2f Btu h**-1 ft**-1 degF**-1\"%(k);\n", + "Alm = round((2*math.pi*deltaz*((od-id_)/(2*12)))/math.log(od/id_),3); \t\t\t #[ft**2] log-mean area\n", + "kincorrect = round(k*(A/Alm),3);\n", + "print \"kincorrect = %.3f Btu h**-1 ft**-1 degF**-1 \"%(kincorrect);\n", + "print \"The error is a factor of %.1f\"%(32.4)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Thermal conductivity = 9.92 Btu h**-1 ft**-1 degF**-1\n", + "kincorrect = 0.306 Btu h**-1 ft**-1 degF**-1 \n", + "The error is a factor of 32.4\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.2 - Page No :100\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "T1 = 0.; \t\t\t #[degC]\n", + "T2 = 10.; \t \t\t #[degC]\n", + "km = 17.17; \t\t\t #[W/m*K]\n", + "l = 1.; \t\t \t #[m]\n", + "r2 = 1.1875;\n", + "r1 = 1.0335;\n", + "deltaT = T1-T2;\n", + "\n", + "# Calculations\n", + "# umath.sing the formula Qr = -km*((2*pi*l)/ln(r2/r1))*deltaT;\n", + "Qr = -km*((2*math.pi*l)/math.log(r2/r1))*deltaT;\n", + "\n", + "# Results\n", + "print \"Heat loss = %.0f W \\nThe plus sign indicates that the heat flow is radially out from the center\"%(Qr);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat loss = 7767 W \n", + "The plus sign indicates that the heat flow is radially out from the center\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.3 - Page No :100\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "km = 9.92; \t \t\t #[Btu/h*ft*degF]\n", + "Alm = round(0.242*(12./5),3); \t\t\t #[ft**2]\n", + "T1 = 0.; \t\t\t #[degC]\n", + "T2 = 10.; \t\t\t #[degC]\n", + "deltaT = (T1-T2)*1.8; \t\t\t #[degF]\n", + "r2 = 1.1875;\n", + "r1 = 1.0335;\n", + "deltar = round((r2-r1)/12,3); \t\t\t #[ft]\n", + "\n", + "# Calculations\n", + "# using the formula Qr/Alm = -km*(deltaT/deltar)\n", + "Qr = (-km*Alm*(deltaT/deltar));\n", + "\n", + "# Results\n", + "print \" qr by log-mean area method = %.0f Btu/h\"%(Qr);\n", + "\n", + "\n", + "# in SI units \n", + "Alm = 0.177; \t\t\t #[m**2]\n", + "T1 = 0; \t\t\t #[degC]\n", + "T2 = 10; \t\t\t #[degC]\n", + "km = 17.17; \t\t\t #[W/m*K]\n", + "r2 = 1.1875;\n", + "r1 = 1.0335;\n", + "deltaT = T1-T2;\n", + "deltar = (r2-r1)*0.0254; \t\t\t #[m]\n", + "\n", + "# umath.sing the same formula\n", + "Qr = (-km*(deltaT/deltar))*Alm;\n", + "print \" qr in SI units = %.0f W\"%(Qr);\n", + "\n", + "# Note : Answers are wrong in book. Please calculate manually." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " qr by log-mean area method = 7980 Btu/h\n", + " qr in SI units = 7769 W\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.4 - Page No :101\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.integrate import quad \n", + "\n", + "# Variables\n", + "# given\n", + "x1 = 0; \t\t\t #[cm]\n", + "x2 = 30; \t\t\t #[cm]\n", + "p1 = 0.3; \t\t\t #[atm]\n", + "p2 = 0.03; \t\t\t #[atm]\n", + "D = 0.164; \t\t\t #[am**2/sec]\n", + "R = 82.057; \t\t\t #[cm**3*atm/mol*K]\n", + "T = 298.15; \t\t\t #[K]\n", + "\n", + "# Calculations\n", + "# using the formula Nax*int(dx/Ax) = -(D/RT)*int(1*dpa)\n", + "def f4(x): \n", + "\t return 1./((math.pi/4)*(10-(x/6))**2)\n", + "\n", + "a = quad(f4,x1,x2)[0]\n", + "\n", + "def f5(p): \n", + "\t return 1\n", + "\n", + "b = quad(f5,p1,p2)[0]\n", + "Nax = -((D/(R*T))*b)/a;\n", + "\n", + "# Results\n", + "print \"Mass transfer rate = %.2e mol/sec = %.2e mol/h \\nthe plus sign indicates diffusion to the right\"%(Nax,Nax*3600);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mass transfer rate = 2.37e-06 mol/sec = 8.53e-03 mol/h \n", + "the plus sign indicates diffusion to the right\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.5 - Page No :105\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from sympy import *\n", + "\n", + "# Variables\n", + "# given\n", + "r = Symbol('r')\n", + "ro = 0.5; \t\t\t #[inch] - outside radius\n", + "ro = 0.0127; \t\t #[m] - outside radius in m\n", + "Tg = 2.*10**7; \t #[J/m**3*sec] - heat generated by electric current\n", + "Tw = 30.; \t\t\t #[degC] - outside surface temperature\n", + "km = 17.3; \t\t #[W/m*K] - mean conductivity\n", + "\n", + "# Calculations\n", + "# using the formula T = Tw+(Tg/4*km)*(ro**2-r**2)\n", + "T = Tw+(Tg/(4*km))*(ro**2-r**2);\n", + "\n", + "# Results\n", + "print \"T = \",T,\n", + "print \" where r is in meters and T is in degC\"\n", + "def t(r):\n", + " return Tw+(Tg/(4*km))*(ro**2-r**2);\n", + "\n", + "print \"At the centre line r = 0, the maximum temperature is %.1f degC. \\\n", + "\\nAt the outside the temperature reduces to the boundary condition value of %.2f degC.\\\n", + "\\nThe distribution is parabolic between these 2 limits\"%(t(0),t(0.0127));\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "T = -289017.341040462*r**2 + 76.6156069364162 where r is in meters and T is in degC\n", + "At the centre line r = 0, the maximum temperature is 76.6 degC. \n", + "At the outside the temperature reduces to the boundary condition value of 30.00 degC.\n", + "The distribution is parabolic between these 2 limits\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.7 - Page No :119\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "# Variables\n", + "# given\n", + "r = 10.**-3; \t\t\t #[m] - radius\n", + "l = 1.; \t\t\t #[m] - length\n", + "Q = 10.**-7; \t\t\t #[m**3/s] - flow rate\n", + "pressure = 1.01325*10**5\n", + "sPage_No = 1.1;\n", + "pwater = 1000.; \t\t #[kg/m**3] - density of water at 4degC\n", + "\n", + "# Calculations\n", + "deltap = round((145 * pressure)/14.696,-4)\n", + "pfluid = sPage_No *pwater;\n", + "mu = abs(r*-(deltap)*(math.pi*r**3))/((4*Q)*(2*l));\n", + "mupoise = mu*10;\n", + "mucentipoise = mupoise*100;\n", + "\n", + "# Results\n", + "print \" mu = %.3f Ns-m**-2 = %.2f poise = %.0f cP\"%(mu,mupoise,mucentipoise);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " mu = 3.927 Ns-m**-2 = 39.27 poise = 3927 cP\n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch5.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch5.ipynb new file mode 100755 index 00000000..0cf91dab --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch5.ipynb @@ -0,0 +1,373 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5 : Transport with a net convective flux" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.9 - Page No :166\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "v = 1.; \t\t\t #[cm/sec] - volume velocity or bulk velocity\n", + "vol = 1.; \t\t\t #[cm**3] - volume\n", + "na = 2.; \t\t\t # moles of a\n", + "nb = 3.; \t\t\t # moles of b\n", + "nc = 4.; \t\t\t # moles of c\n", + "mma = 2.; \t\t\t #molecular weight of a\n", + "mmb = 3.; \t\t\t #molecular weight of b\n", + "mmc = 4.; \t\t\t #molecular weight of c\n", + "ma = na*mma; \t\t\t #[g] weight of a\n", + "mb = nb*mmb; \t\t\t #[g] weight of b\n", + "mc = nc*mmc; \t\t\t #[g] weight of c\n", + "NabyA = 2.+2; \t\t\t #[mol/cm**2*s] - molar flux = diffusing flux +convected flux\n", + "NbbyA = -1.+3; \t\t\t #[mol/cm**2*s] - molar flux = diffusing flux +convected flux\n", + "NcbyA = 0.+4; \t\t\t #[mol/cm**2*s] - molar flux = diffusing flux +convected flux\n", + "NtbyA = NabyA+NbbyA+NcbyA; \t\t\t #[mol/cm**2*s] - total molar flux\n", + "\n", + "# Calculations\n", + "# on a mass basis,these corresponds to\n", + "nabyA = 4.+4; \t\t\t #[g/cm**2*s]; - mass flux = diffusing flux +convected flux\n", + "nbbyA = -3.+9; \t\t\t #[g/cm**2*s]; - mass flux = diffusing flux +convected flux\n", + "ncbyA = 0.+16; \t\t\t #[g/cm**2*s]; - mass flux = diffusing flux +convected flux\n", + "ntbyA = nabyA+nbbyA+ncbyA; \t\t\t #[g/cm**2*s] - total mass flux\n", + "\n", + "# concentrations are expressed in molar basis\n", + "CA = na/vol; \t\t\t #[mol/cm**3]\n", + "CB = nb/vol; \t\t\t #[mol/cm**3]\n", + "CC = nc/vol; \t\t\t #[mol/cm**3]\n", + "CT = CA+CB+CC; \t\t\t #[mol/cm**3] - total concentration\n", + "\n", + "# densities are on a mass basis\n", + "pa = ma/vol; \t\t\t #[g/cm**3]\n", + "pb = mb/vol; \t\t\t #[g/cm**3]\n", + "pc = mc/vol; \t\t\t #[g/cm**3]\n", + "pt = pa+pb+pc; \t\t\t #[g/cm**3]\n", + "Ua = NabyA/CA; \t\t\t #[cm/sec];\n", + "Ub = NbbyA/CB; \t\t\t #[cm/sec];\n", + "Uc = NcbyA/CC; \t\t\t #[cm/sec];\n", + "# the same result will be obtained from dividing mass flux by density\n", + "Uz = (pa*Ua+pb*Ub+pc*Uc)/(pa+pb+pc);\n", + "\n", + "# Results\n", + "print \" Uz = %.3f cm/sec\"%(Uz);\n", + "Uzstar = (NtbyA/CT);\n", + "print \" Uz* = %.2f cm/sec\"%(Uzstar);\n", + "print \" For this Example both Uz and Uz* are slightly greater than the volume \\\n", + " velocity of 1cm/sec, because there is a net molar and \\n mass diffusion in the positive direction.\"\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Uz = 1.034 cm/sec\n", + " Uz* = 1.11 cm/sec\n", + " For this Example both Uz and Uz* are slightly greater than the volume velocity of 1cm/sec, because there is a net molar and \n", + " mass diffusion in the positive direction.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.10 - Page No :171\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given (from Example 5.9)\n", + "na = 2.; \t\t\t # moles of a\n", + "nb = 3.; \t\t\t # moles of b\n", + "nc = 4.; \t\t\t # moles of c\n", + "mma = 2.; \t\t\t #molecular weight of a\n", + "mmb = 3.; \t\t\t #molecular weight of b\n", + "mmc = 4.; \t\t\t #molecular weight of c\n", + "ma = na*mma; \t\t\t #[g] weight of a\n", + "mb = nb*mmb; \t\t\t #[g] weight of b\n", + "mc = nc*mmc; \t\t\t #[g] weight of c\n", + "NabyA = 2.+2; \t\t\t #[mol/cm**2*s] - molar flux = diffumath.sing flux +convected flux\n", + "NbbyA = -1.+3; \t\t\t #[mol/cm**2*s] - molar flux = diffusing flux +convected flux\n", + "NcbyA = 0.+4; \t\t\t #[mol/cm**2*s] - molar flux = diffusing flux +convected flux\n", + "NtbyA = NabyA+NbbyA+NcbyA; \t\t\t #[mol/cm**2*s] - total molar flux\n", + "vol= 1.\n", + "# Calculations\n", + "# on a mass basis,these corresponds to\n", + "nabyA = 4+4; \t\t\t #[g/cm**2*s]; - mass flux = diffusing flux +convected flux\n", + "nbbyA = -3+9; \t\t\t #[g/cm**2*s]; - mass flux = diffusing flux +convected flux\n", + "ncbyA = 0+16; \t\t\t #[g/cm**2*s]; - mass flux = diffusing flux +convected flux\n", + "\n", + "# concentrations are expressed in molar basis\n", + "CA = na/vol; \t\t\t #[mol/cm**3]\n", + "CB = nb/vol; \t\t\t #[mol/cm**3]\n", + "CC = nc/vol; \t\t\t #[mol/cm**3]\n", + "CT = CA+CB+CC; \t\t #[mol/cm**3] - total concentration\n", + "\n", + "# densities are on a mass basis\n", + "pa = ma/vol; \t\t\t #[g/cm**3]\n", + "pb = mb/vol; \t\t\t #[g/cm**3]\n", + "pc = mc/vol; \t\t\t #[g/cm**3]\n", + "Ua = NabyA/CA; \t\t\t #[cm/sec];\n", + "Ub = NbbyA/CB; \t\t\t #[cm/sec];\n", + "Uc = NcbyA/CC; \t\t\t #[cm/sec];\n", + "U = (pa*Ua+pb*Ub+pc*Uc)/(pa+pb+pc);\n", + "Ustar = (NtbyA/CT);\n", + "\n", + "# the fluxes relative to mass average velocities are found as follows\n", + "JabyA = CA*(Ua-U); \t\t\t #[mol/cm**2*sec]\n", + "JbbyA = CB*(Ub-U); \t\t\t #[mol/cm**2*sec]\n", + "JcbyA = CC*(Uc-U); \t\t\t #[mol/cm**2*sec]\n", + "\n", + "# Results\n", + "print \" fluxes relative to mass average velocities are-\";\n", + "print \" Ja/A = %.4f mol/cm**2*sec\"%(JabyA);\n", + "print \" Jb/A = %.4f mol/cm**2*sec\"%(JbbyA);\n", + "print \" Jc/A = %.4f mol/cm**2*sec\"%(JcbyA);\n", + "jabyA = pa*(Ua-U); \t\t\t #[g/cm**2*sec]\n", + "jbbyA = pb*(Ub-U); \t\t\t #[g/cm**2*sec]\n", + "jcbyA = pc*(Uc-U); \t\t\t #[g/cm**2*sec]\n", + "print \" ja/A = %.4f g/cm**2*sec\"%(jabyA);\n", + "print \" jb/A = %.4f g/cm**2*sec\"%(jbbyA);\n", + "print \" jc/A = %.4f g/cm**2*sec\"%(jcbyA);\n", + "\n", + "# the fluxes relative to molar average velocity are found as follows\n", + "JastarbyA = CA*(Ua-Ustar); \t\t\t #[mol/cm**2*sec]\n", + "JbstarbyA = CB*(Ub-Ustar); \t\t\t #[mol/cm**2*sec]\n", + "JcstarbyA = CC*(Uc-Ustar); \t\t\t #[mol/cm**2*sec]\n", + "print \" fluxes relative to molar average velocities are-\";\n", + "print \" Ja*/A = %.4f mol/cm**2*sec\"%(JastarbyA);\n", + "print \" Jb*/A = %.4f mol/cm**2*sec\"%(JbstarbyA);\n", + "print \" Jc*/A = %.4f mol/cm**2*sec\"%(JcstarbyA);\n", + "jastarbyA = pa*(Ua-Ustar); \t\t\t #[g/cm**2*sec]\n", + "jbstarbyA = pb*(Ub-Ustar); \t\t\t #[g/cm**2*sec]\n", + "jcstarbyA = pc*(Uc-Ustar); \t\t\t #[g/cm**2*sec]\n", + "print \" ja*/A = %.4f g/cm**2*sec\"%(jastarbyA);\n", + "print \" jb*/A = %.4f g/cm**2*sec\"%(jbstarbyA);\n", + "print \" jc*/A = %.4f g/cm**2*sec\"%(jcstarbyA);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " fluxes relative to mass average velocities are-\n", + " Ja/A = 1.9310 mol/cm**2*sec\n", + " Jb/A = -1.1034 mol/cm**2*sec\n", + " Jc/A = -0.1379 mol/cm**2*sec\n", + " ja/A = 3.8621 g/cm**2*sec\n", + " jb/A = -3.3103 g/cm**2*sec\n", + " jc/A = -0.5517 g/cm**2*sec\n", + " fluxes relative to molar average velocities are-\n", + " Ja*/A = 1.7778 mol/cm**2*sec\n", + " Jb*/A = -1.3333 mol/cm**2*sec\n", + " Jc*/A = -0.4444 mol/cm**2*sec\n", + " ja*/A = 3.5556 g/cm**2*sec\n", + " jb*/A = -4.0000 g/cm**2*sec\n", + " jc*/A = -1.7778 g/cm**2*sec\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.11 - Page No :176\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math\n", + "# Variables\n", + "# given\n", + "T = 0+273.15; \t\t\t #[K] - temperature in Kelvins\n", + "pa2 = 1.5; \t\t\t #[atm] - partial presuure of a at point2\n", + "pa1 = 0.5; \t\t\t #[atm] - partial pressure of a at point 1\n", + "z2 = 20.; \t\t\t #[cm] - position of point 2 from reference point\n", + "z1 = 0.; \t\t\t #[cm] - position of point1 from reference point\n", + "p = 2.; \t\t\t #[atm] - total pressure\n", + "d = 1.; \t\t\t #[cm] - diameter\n", + "D = 0.275; \t\t #[cm**2/sec] - diffusion coefficient\n", + "A = (math.pi*((d)**2))/4.;\n", + "R = 0.082057; \t\t\t #[atm*m**3*kmol**-1*K**-1] - gas constant\n", + "\n", + "# Calculations\n", + "# (a) using the formula Na/A = -(D/(R*T))*((pa2-pa1)/(z2-z1))\n", + "Na = (-(D/(R*T))*((pa2-pa1)/(z2-z1)))*(A)/(10.**6);\n", + "print \" Na = %.2e kmol/sec \\n The negative sign indicates diffusion from point 2 to point 1\"%(Na);\n", + "pb2 = p-pa2;\n", + "pb1 = p-pa1;\n", + "\n", + "# (b) using the formula Na/A = ((D*p)/(R*T*(z2-z1)))*ln(pb2/pb1)\n", + "Na = (((D*p)/(R*T*(z2-z1)))*math.log(pb2/pb1))*(A)/(10**6);\n", + "\n", + "# Results\n", + "print \" Na = %.2e kmol/sec\"%(Na);\n", + "print \" The induced velocity increases the net transport of A by the ratio of 10.6*10**-10 \\\n", + "to 4.82*10**-10 or 2.2 times.This increse is equivalent to 120 percent\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Na = -4.82e-10 kmol/sec \n", + " The negative sign indicates diffusion from point 2 to point 1\n", + " Na = -1.06e-09 kmol/sec\n", + " The induced velocity increases the net transport of A by the ratio of 10.6*10**-10 to 4.82*10**-10 or 2.2 times.This increse is equivalent to 120 percent\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.12 - Page No :178\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "T = 0+273.15; \t\t\t #[K] - temperature in Kelvins\n", + "pa2 = 1.5; \t\t\t #[atm] - partial presuure of a at point2\n", + "pa1 = 0.5; \t\t\t #[atm] - partial pressure of a at point 1\n", + "z2 = 20.; \t\t\t #[cm] - position of point 2 from reference point\n", + "z1 = 0.; \t\t\t #[cm] - position of point1 from reference point\n", + "p = 2.; \t\t\t #[atm] - total pressure\n", + "d = 1.; \t\t\t #[cm] - diameter\n", + "D = 0.275; \t\t\t #[cm**2/sec] - diffusion coefficient\n", + "\n", + "# Calculations\n", + "A = (math.pi*((d)**2.))/4;\n", + "R = 0.082057; \t\t\t #[atm*m**3*kmol**-1*K**-1] - gas consmath.tant\n", + "k = 0.75;\n", + "\n", + "# umath.sing the formula (Na/A) = -(D/(R*T*(z2-z1)))*ln((1-(pa2/p)*(1-k))/(1-(pa1/p)*(1-k)))\n", + "NabyA = -(D/(R*T*(z2-z1)))*(2*0.7854)*math.log((1-(pa2/p)*(1-k))/(1-(pa1/p)*(1-k)))/(10**6);\n", + "\n", + "# Results\n", + "print \" Na/A = %.2e kmol/sec\"%(NabyA);\n", + "print \" Note that this answer is larger than the rate for equimolar counter diffusion \\\n", + "but smaller tahn the rate for diffusion through a stagnant film. \\nSometimes the\\\n", + " rate for diffusin through a stagnant film can be considered as an upper bound\\\n", + " if k ties between zero and one\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Na/A = 1.38e-10 kmol/sec\n", + " Note that this answer is larger than the rate for equimolar counter diffusion but smaller tahn the rate for diffusion through a stagnant film. \n", + "Sometimes the rate for diffusin through a stagnant film can be considered as an upper bound if k ties between zero and one\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.13 - Page No :184\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "l = 4.; \t\t\t #[m] - length of the tube\n", + "id_ = 1.6*10**-3; \t\t\t #[m] - insid_e diameter\n", + "Nkn = 10.; \t\t \t # - knudsen no.\n", + "Ma = 92.; \t\t\t # - molecular weight of gas\n", + "mu = 6.5*10**-4; \t\t\t #[kg/m*sec] - vismath.cosity\n", + "T = 300.; \t \t\t #[K] - temperature\n", + "R = 8314.; \t \t\t #[kPa*m**3*kmol**-1*K**-1] - gas consmath.tant\n", + "lambdaA = Nkn*id_; \t\t\t #[m] mean free path\n", + "\n", + "# Calculations\n", + "# for calculating pressure umath.sing the formula lamdaA = 32*(mu/p)*((R*T)/(2*pi*Ma))**(1/2)\n", + "p = 32*(mu/lambdaA)*((R*T)/(2*math.pi*Ma))**(1/2.);\n", + "patm = p/(1.01325*10**5);\n", + "\n", + "# Results\n", + "print \" p = %.2f kg/m*sec**2 = %.2f Pa = %.2e atm\"%(p,p,patm);\n", + "print \" The value of 10 for the knudsen number is on the border \\\n", + " between Knudsen diffusion and transition flow\";\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " p = 85.39 kg/m*sec**2 = 85.39 Pa = 8.43e-04 atm\n", + " The value of 10 for the knudsen number is on the border between Knudsen diffusion and transition flow\n" + ] + } + ], + "prompt_number": 11 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch6.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch6.ipynb new file mode 100755 index 00000000..8a443d73 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch6.ipynb @@ -0,0 +1,453 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6 : Turbulent Flow" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.1 - Page No :200\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "q = 50.; \t\t\t #[gal/min] - volumetric flow rate\n", + "d = 2.067/12; \t \t\t #[ft] - diameter\n", + "A = 0.02330; \t\t #[ft**2] - flow area\n", + "p = 0.99568*62.43; \t\t\t #[lb/ft**3] - density of water at 86degF\n", + "mu = 0.8007*6.72*10**-4; \t\t #[lb/ft*sec] - viscosity of water at 86degF\n", + "u = q/(60.*7.48*A);\n", + "\n", + "# Calculations\n", + "# using the formula Nre = d*u*p/mu;\n", + "Nre = round((d*u*p)/mu,-2);\n", + "\n", + "# Results\n", + "print \"Nre = \",Nre\n", + "print \"Hence the flow is turbulent. Note also that Nre is dimensionless\";\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Nre = 95100.0\n", + "Hence the flow is turbulent. Note also that Nre is dimensionless\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.2 - Page No :202\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "p = 0.99568*62.43; \t\t\t #[lb/ft**3] - density of water at 86degF\n", + "mu = 0.8007*6.72*10**-4; \t\t #[lb/ft*sec] - viscosity of water at 86degF\n", + "u = 4.78; \t\t\t #[ft/sec] - free stream velocity \n", + "Nre = 5.*10**5; \t\t\t # the lower limit for the transition reynolds number range is substituted\n", + "\n", + "# Calculations\n", + "x = (Nre*mu)/(p*u);\n", + "\n", + "# Results\n", + "print \"x = %.1f\"%x\n", + "print \"Thus the transition could star at about %.2f ft. \\\n", + "\\nThe reynolds number at the upper end of the transition range is %.0e .\\\n", + "\\nThe value of x at this location is ten times then the value obtained above i.e %.1f ft\"%(x,Nre*10,x*10)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "x = 0.9\n", + "Thus the transition could star at about 0.91 ft. \n", + "The reynolds number at the upper end of the transition range is 5e+06 .\n", + "The value of x at this location is ten times then the value obtained above i.e 9.1 ft\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.3 - Page No :212\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# given\n", + "t = [0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12];\n", + "Ux = [3.84, 3.50, 3.80, 3.60, 4.20, 4.00, 3.00, 3.20, 3.40, 3.00, 3.50, 4.30, 3.80];\n", + "Uy = [0.43, 0.21, 0.18, 0.30, 0.36, 0.28, 0.35, 0.27, 0.21, 0.22, 0.23, 0.36, 0.35];\n", + "Uz = [0.19, 0.16, 0.17, 0.13, 0.09, 0.10, 0.16, 0.15, 0.13, 0.18, 0.17, 0.18, 0.17];\n", + "# using the formula AREA = [deltat/2]*[U1+U13+2*[U2+U3+U4+U5+U6+U7+U8+U9+U10+U11+U12]]\n", + "# for Uxmean\n", + "deltat = 0.01;\n", + "T = t[12]-t[0];\n", + "\n", + "# Calculation and Results\n", + "AREA = (deltat/2)*(Ux[0]+Ux[12]+2*(Ux[1]+Ux[2]+Ux[3]+Ux[4]+Ux[5]+Ux[6]+Ux[7]+Ux[8]+Ux[9]+Ux[10]+Ux[11]));\n", + "Uxmean = AREA/T;\n", + "print \"Uxmean = %.2f m s**-1\"%Uxmean\n", + "\n", + "# for Uymean\n", + "deltat = 0.01;\n", + "AREA = (deltat/2)*(Uy[0]+Uy[12]+2*(Uy[1]+Uy[2]+Uy[3]+Uy[4]+Uy[5]+Uy[6]+Uy[7]+Uy[8]+Uy[9]+Uy[10]+Uy[11]));\n", + "Uymean = AREA/T;\n", + "print \"Uymean = %.2f m s**-1\"%Uymean\n", + "\n", + "# for Uzmean\n", + "AREA = (deltat/2)*(Uz[0]+Uz[12]+2*(Uz[1]+Uz[2]+Uz[3]+Uz[4]+Uz[5]+Uz[6]+Uz[7]+Uz[8]+Uz[9]+Uz[10]+Uz[11]));\n", + "Uzmean = AREA/T;\n", + "print \"Uzmean = %.2f m s**-1\"%Uzmean\n", + "U = (Uxmean**2+Uymean**2+Uzmean**2)**(1./2);\n", + "print \"U = %.3f m s**-1\"%U\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Uxmean = 3.61 m s**-1\n", + "Uymean = 0.28 m s**-1\n", + "Uzmean = 0.15 m s**-1\n", + "U = 3.624 m s**-1\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.4 Page no : 218" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "# Variables\n", + "#Following values are taken from example 6.3\n", + "U_dash_z2 = 8.917*10**-4 #m**2s**-2 square velocity\n", + "Uz2 = .02340 #m**2s**-2\n", + "U_dash_x2 = 8.947 * 10**-4 #m**2s**-2\n", + "Ux22 = .02409 #m**2s**-2\n", + "U = 3.634\n", + "U2x = 3.63 #m**2s**-2\n", + "U2x2 = .41 #m**2s**-2\n", + "Ix = 11.37 #percent\n", + "U2y = .0288 #m**2s**-2\n", + "U2y2 = .069 #m**2s**-2\n", + "Iy = 1.92 #percent\n", + "dt = .01108\n", + "\n", + "# Calculation\n", + "rmsUz = math.sqrt(U_dash_z2)\n", + "rmsUx = math.sqrt(Uz2)\n", + "rmsUx2 = math.sqrt(U_dash_x2)\n", + "rmsUx2 = math.sqrt(Ux22)\n", + "I = 100*rmsUz/U\n", + "Ux = 3.84 - 3.61\n", + "Uy = .43 - .28\n", + "UxUy = Ux*Uy\n", + "ratio = dt/(U2x2*U2y2)\n", + "\n", + "\n", + "# Results\n", + "print \"I = %.2f percent\"%I\n", + "print \"U'xU'y = %.4f m**2s**-2\"%UxUy\n", + "print \"The ratio = %.2f \"%ratio" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "I = 0.82 percent\n", + "U'xU'y = 0.0345 m**2s**-2\n", + "The ratio = 0.39 \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.5 - Page No :232\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "%pylab inline\n", + "\n", + "from numpy import *\n", + "from matplotlib.pyplot import *\n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "UzmaxbyU = 24.83;\n", + "roUbyv = 2312.;\n", + "Re = 100000.;\n", + "\n", + "# using the formula Et/v = 95.5*((r/ro)/slope)-1\n", + "# from fig 6.6 at Re = 100000\n", + "rbyro = [0, 0.040, 0.100, 0.200, 0.300, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.960, 1]\n", + "slope = [0, 0.105, 0.112, 0.126, 0.144, 0.168, 0.201, 0.252, 0.336, 0.503, 1.007, 2.517, 94.59]\n", + "\n", + "# Calculations\n", + "Etbyv = zeros(13)\n", + "for i in range(1,13):\n", + " Etbyv[i] = 95.5*((rbyro[i])/slope[i])-1;\n", + "\n", + "# Results\n", + "plot(rbyro,Etbyv);\n", + "suptitle(\"Eddy viscosity ratio (E,/v) versus dimensionless radius.\")\n", + "xlabel(\"r/ro\")\n", + "ylabel(\"Er/v\")\n", + "\n", + "show()\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEhCAYAAABlUDcAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVFUfBvBnwH17VRRMMBc0jWHHUBQUNUVcckkEtzeX\nctfMbFErMcutzLSslzIz10A0tVTUStwVRFJcsjQwQBFcEgWR7bx/nBhBB2WZmTszPN/Ph48wy52H\nyzi/e8859xyVEEKAiIjoIRZKByAiIuPEAkFERFqxQBARkVYsEEREpBULBBERacUCQUREWrFAFMPS\n0hJubm6ar8WLFz/ymMjISPTt21fr85s1a4abN2+WK8OVK1cQEBBQrm08SUxMDF599VUAwP79+3H0\n6FG9vM6pU6ewa9cuzc8//vgjFi1aVKpt/PTTTwgODgYABAcHw87Orsjf6Pbt21qf5+/vjytXrhS7\n3W7duuHOnTulymIMCr//yrI/daG871Fd/D/RpeDgYCxZsgQAMGfOHPzyyy8KJ1JWJaUDGKsaNWog\nNja2zM9XqVTlztC4cWNs2rSp3Nt5HA8PD3h4eAAA9u3bh9q1a8PLy6tM28rPz4eFhfZjjtjYWMTE\nxMDf3x8A0Ldv32KLa3GWLFmC77//HoDcv9OnT8f06dMf+5x79+7h5s2baNy4cbGPCQoKwtdff/3E\nbZXW4/aHrpVlf+pCed+juvh/8iR5eXmwtLQs0WML55k7d66+IpkMnkGU0rZt29CqVSu0a9cOP/zw\ng+b2tLQ0+Pj4wNXVFWPHjoUQAkIIzJkzB8uWLdM8bvbs2Vi+fHmRbc6cORNffPGF5ueCo5jLly/D\n0dERgDwCb9euHdzc3ODs7IxLly4BAEJCQuDg4AA3NzcMHz4cAHDp0iV06NABLi4u8Pb2RkJCAgBg\n48aNcHJygpubGzp16gTgwVHo5cuXERISgqVLl8Ld3R2HDh1CixYtkJubCwBIT09HixYtkJeXVyT7\nyJEjMX78eHTs2BFvvfUWoqOj4eXlBRcXF3h4eODcuXPIzs7Ge++9h9DQULi5uSEsLAyrV6/GlClT\nHpu3sMTERGRnZ8PGxkZzW0mu8YyMjISvry92796NwYMHF7m94AO1b9++msJTWEhICN58803Nz4Uz\nf/3113BxcYFarcbo0aM1+6lWrVqYMWMG2rZti2PHjuGNN96AWq2Gq6srXn/9dc0+27x5s2a7tWrV\nAgAkJSWhU6dOcHNzg5OTEw4ePPhIpuLef4WzjRw5EhMnToS3tzfs7e0RGRmJUaNGoU2bNhg6dKjm\nOdu3b4eHhwecnJzQr18/zVlUs2bNEBwcDE9PT7Ru3RpnzpwBAPzyyy9Fztju3r2LhIQEODk5AZDF\neMiQIVCr1XBycsLu3bs12QYOHIg+ffqgRYsWmDZtmta/lbZ9mpubixEjRsDJyQnOzs745JNPAABL\nly7V7NfAwMBHtrV69Wq88MIL8PPzQ48ePZCRkYEuXbrAw8MDbdq0KVLU3nvvPbRs2RK+vr64cOGC\npkgU/jsVPtM5ceIEunTponWfmOKZ6GMJ0srS0lK4urpqvsLCwkRmZqZo1KiRiI+PF0IIMWTIENG3\nb18hhBBjx44V8+fPF0IIsXv3bqFSqcSNGzdEQkKCcHd3F0IIkZeXJ+zt7cXNmzeLvFZsbKzo3Lmz\n5mcHBweRlJQk4uPjhaOjoxBCiIkTJ4rQ0FDNdu7duydiYmJEq1atxO3bt4UQQvNv9+7dxYYNG4QQ\nQnz33XeiZ8+emu2mpqYKIYS4e/euEEKIffv2iT59+gghhAgODhZLlizR5Bg1apTYunWrEEKIkJAQ\nMWPGjEf208iRI0X//v01P9+5c0fk5+cLIYTYu3evZturV68WU6ZM0Tyu8M/F5S1s48aNYvLkyZqf\n58yZI2xtbTV/n65duz7yHCGEmDJliti3b5/Izc0VTz/9tMjMzBRCCDF+/Hixfv16zeOaN2+u2ScF\n0tLSRMuWLTU/+/v7i8OHD4vffvtN9O7dW+Tm5gohhJgwYYL4+uuvhRBCqFQqsWXLFiGEENeuXRNq\ntVrz/ILtjxw5UoSHh2tur1WrlhBCiEWLFolFixY98vgCj3v/ffvtt5r989JLL4lhw4YJIYTYtm2b\nqF27tjh//rzIz88XHh4eIjo6WqSkpAgvLy/N/li4cKGYPXu2EEKIZs2aiS+//FIIIcQXX3whXnrp\nJSGEEL169RJRUVFCCCGysrJEbm5ukffohx9+KMaOHSuEEOLPP/8UjRo1Evfu3RPffvutaNGihcjI\nyBBZWVni6aef1vwOzZo1Ezdu3Ch2n0ZFRQl/f/9H9knjxo1Fdna21v1UsD/s7OxEenq6EEKI3Nxc\nkZGRIYSQf9dmzZqJ/Px8ceTIEeHk5CSys7NFRkaGaNmypeb/wMiRI8XmzZuL5BRCiOjoaOHr61vs\nPjEnPIMoRvXq1REbG6v5CggIQFxcHJ555hk0a9YMADBkyBDNUeyhQ4cwZMgQAECPHj1Qr149AEDT\npk1hZWWF3377DXv27IG7u7vmvgKurq5ITU3F1atXcerUKdSrVw+2trZFHuPt7Y0PPvgAixYtwp9/\n/olq1arhl19+QWBgIOrUqQMAmn+PHj2qOVoeMmQIDh8+DADo1KkThg8fjq+++gr37t3T+nuLQkfl\nL7/8Mr799lsA8ohs1KhRWp8zcOBAzfdpaWno06cPHB0dMX36dFy4cEGzXfHQEX/Bz8XlLezvv//G\nU089pfm5oImp4O9TXFvxkSNH4O3tDUtLS/Ts2RPbt29Hbm4udu7ciX79+mkeZ2Njg8TExCLPbdCg\nAVq0aIHjx4/jxo0b+P3339GhQwfs3bsXsbGxaNu2Ldzc3PDrr79qnmtpaYn+/fsDAOrXr4/KlStj\nzJgx2Lx5MypXrqw1YwEvLy+sXLkSc+fOxcmTJ1GzZs0i9z/u/VeYSqVC7969AQCOjo5o1KgR2rRp\nA5VKBbVajcTERBw8eBB//vknOnToADc3N6xZs6ZIP03BvnF3d9f8bp06dcLUqVOxfPlypKamPtJs\nc/jwYc3/gZYtW6JVq1Y4c+YMVCoVunXrhho1aqBq1apQq9VISkrSPE8IUew+bdWqFS5evIipU6di\n586dqFGjBgDA2dkZw4cPx9q1a4vdBz169EDt2rUBADk5OZg2bRocHR3RvXt3pKam4sqVKzh48CAG\nDhyIypUro0aNGnjhhRce+zd62JP2ialjgSiFh9uTC78xVSpVsU0eBR+0q1evxujRo7U+JiAgAOHh\n4QgLC0NQUNAj9w8ZMgTbtm1DzZo10bdvX+zbt6/Y1yyuXffLL7/EvHnzcPXqVXh4eDyxc7BDhw5I\nSEhAZGQk8vLy4ODgoPVxBf9pAdmE1rt3b5w5cwY//vgjcnJyit1+Qc6StkMXV2CK89dff6FJkyao\nVEl2tQUFBSEsLAz79u1D27Zti3wACyG05ih4zpYtW4oUwjFjxmiK0++//65pr65WrZpmO5UqVcLx\n48cxaNAg7Nq1Cz179gQg30f5+fkAZD9FdnY2AMDHxwcHDhyAnZ0dXn75ZaxZs6ZIlse9/x5WpUoV\nzXOqVq1aZBsFr+3v76/5Hc6ePYtVq1ZpHlfwHEtLS83j33rrLaxcuRL379+Ht7e3pvg/LlPBviic\nofA2C9O2T+vWrYvffvsNvr6+WLlyJcaMGQMA2LFjByZMmIBTp07hueeee6TpEyj6vlyzZg3S09MR\nFxeH2NhYWFtbIzc3FxYWFkUyF7dPC++3rKwsze0l2SemjAWiFNRqNf744w9cvnwZABAaGqq5z9vb\nW/Pz3r17cevWLc19AwYMQEREBE6cOAE/Pz+t2w4MDMTGjRsRHh6udVTI5cuX0bx5c0yePBn9+vVD\nbGwsunXrhrCwMM3onYJ/O3TogLCwMADA999/Dx8fHwBAQkICPD09MWfOHNjY2DzS1l+9enVkZmYW\nue2///0vhg0bVmxhe1hWVhYaNWoEAEU+4GrUqFFk24XPKIrLW1jTpk2RkpLyxNdPTk7G888/DwDY\ntWuXplMcADp37oyTJ0/i66+/1hzpFrh27Rrs7Owe2d6AAQOwdetWbNy4UVO4u3fvjrCwMM3fOD09\nvcgRcYGMjAzcuXMH/v7+WLJkCU6ePAkAsLOzQ0xMDAD5QVdQRJOSkmBtbY0xY8ZgzJgxOHHiRJHt\nPe79VxoqlQo+Pj7Yt28f/v77bwDy71bQr1WchIQEqNVqvPHGG/D09MTZs2eL3O/j46PJdOnSJfz5\n559wdHR8YiFXqVTF7tObN28iPz8fAwcOxPvvv4/o6GgIIZCcnAxfX18sWLAA6enpj4xge/g1s7Ky\nYG1tDZVKhQMHDuDy5ctQqVTw9vbG1q1bkZ2djczMTPz0009aM9rZ2Wn+HoX7fp60T0wdC0Qx7t27\nV6TzadasWahevTpCQkLw/PPPo127dmjYsKHmCGnevHnYuXMnXF1dER4ejqZNm2q2VblyZXTt2hWD\nBw8u9mjZwcEBd+/ehZ2dXZGO2ILHr1+/XtPBfPbsWbz00ktwc3PD66+/jvbt28PNzQ1Tp04FAKxY\nsQKff/45nJ2dERISghUrVgAAXnvtNbi4uMDJyQnt27eHu7s7VCqV5jX69u2LDRs2wNXVFYcOHQIA\nDB06FLdu3XrkA7Wwwr/TjBkzMGPGDDz33HPIzs7W3NelSxfExMTAxcUFYWFhRV63uLyFdezYUfMB\nW2Dp0qVF/kaXL1/G1atXNU05ERERmqN2QB4F9unTBxEREejTp4/m9pSUFFhZWT3SpAMAdevWhYOD\nA/7++2+0bdsWAODi4oKZM2dqBiX4+vpqmmcK74v09HT07NkTbm5u8PHxwdKlSwEA48ePx+7du+Hm\n5oYjR45oOql//vlnuLi4wN3dHWFhYZrhxwUe9/4rvD8fzqHtPWdjY4OvvvoKL7zwAlxdXeHp6Ylz\n58498rjCz//444/h7OwMFxcXVKpUSdOMVXD/tGnTcPv2bajVavTv3x/fffcdqlat+kg2bYrbp4mJ\nifDx8YGbmxtGjBiBhQsXIi8vD0FBQXB1dYW7uzsmTZqE+vXrP5K58GsOGzYMR44cgYuLC7777js8\n++yzAID27dujf//+cHBwQK9eveDp6ak135w5czBhwgS0b98eFhYWT9wnbm5uj/19TYVKPKm8U7kJ\nIeDh4YGwsDC0bNlS6TilsmXLFvzwww9Yu3at0lHQtWtXrF+/vkhfxMNWrFiBpk2bokePHujYsSOi\no6OfuN2vvvoKGRkZeO2113QZl8jksUDo2blz5zBgwAD07t1bM0TPVEydOhV79+7Ftm3b8Mwzzygd\nBzt37sTx48d1Pj69W7du2LZtm+ZInogkFggiItKKfRBERKQVCwQREWnFAkFERFqxQBARkVYsEERE\npBULBBERacUCQUREWumtQCQmJqJTp05wcnJC69atNSuyPbwSWOFVxhYsWAAHBwc4OTlhz549+opG\nREQloLcL5a5du4a0tDQ4Ojri7t27cHd3x6ZNm7B161bUrl37kdW7YmJiMH78eBw7dgwpKSmamREL\nZqUkIiLD0tsZhI2NjWY1tFq1asHZ2RnJyckAtE+pu2PHDgQFBcHS0hK2trZQq9WIiorSVzwiInoC\ng/RBJCQkIDo6WjON84oVK/Dss89i+PDhmjUJkpOTi0y3bGdnp3UKZSIiMgy9F4i7d+8iICAAy5Yt\nQ+3atTFp0iRcunQJ586dg729vWaKaiIiMi6V9LnxnJwcvPjiixg6dKhmGcYGDRpo7h83bpxm8W87\nO7siSz4mJSWhSZMmj2yzZcuWT1zYhIiIirK3t8fFixdL9Ry9nUEIITBmzBg4ODgUmWc/NTVV8/3m\nzZuhVqsBAL169UJoaChyc3ORlJSEM2fOaF2849KlS5rVyCr615w5cxTPYCxf3BfcF9wXj/8qy4G1\n3s4gDh8+jHXr1sHZ2VmzutL8+fOxYcMGnD59GtnZ2WjatCm++eYbAICHhwcGDBgAZ2dnWFhYICQk\n5ImLvBMRkf7orUB4e3trXZi88BrBD5s1axZmzZqlr0hERFQKvJLahPn6+iodwWhwXzzAffEA90X5\nmNyKciqVCiYWmYhIcWX57OQZBBERacUCQUREWrFAEBGRViwQRESkFQsEERFppdepNojMWX4+cPo0\nsHcvsGcPcOUK0KUL0L27/LdOHaUTEpUPh7kSlcKVKw8Kws8/yyLQvTvQowdgawvs2yfvO34ccHGR\nt3fvDjz3HFCJh2OkoLJ8drJAED1GRgZw4ID80N+7VxaIrl0ffPA3b679eZmZwMGDD4pJYqI8q+jR\nQ361aGHY34OIBYKonPLzgdjYBx/sUVGAu/uDgtC2LWBpWfrtXr0qzzgKtluz5oNtdu0K1K2r+9+F\nqDAWCKIySEx88MH9yy9Agwbyg7t7d8DXF6hdW7evJwRw5syDs5LDhwFHxwcFo107gPNUkq6xQBCV\nwJ07wP79Dz6g09KA559/8AGtZRkSvcrKkkWiIM9ffwGdOz/I06oVoFIZNhOZHxYIIi3y8oATJ+SH\n7969QEwM4On54APYzQ2wMKIB36mp8kymoGBUqvSgI7xbN6B+faUTkiligSD6V3z8g2ajX38FGjd+\nUBA6dZJ9AKZACOD8+Qe/y8GDQJs2DwqGlxdQpYrSKckUsEBQhXX79oMhpnv3AunpD/oRnn9eDkE1\nB/fvA0ePPigYFy7IgldQMNq0YXMUaccCQRXO1avA2LFAZKQ8mi74oHRyMq5mI325cUM2RxUUjPx8\n4OOPgcBApZORsWGBoApl3z5g2DBZIN56C6heXelEyhJCXqA3bBjQsyfwySdA1apKpyJjwQJBFUJ+\nPjB/PrBiBbBmjTxroAdu3wZGjwYuXwY2bSr+Yj6qWLhgEJm9tDSgVy/ZnBITw+KgzX/+A4SHAyNG\nyGsqtm1TOhGZKhYIMhmHD8urmt3cHoxMIu1UKuDVV4Ht2+W/r78O5OQonYpMDZuYyOgJASxZAnz0\nEbBqFdC7t9KJTMuNG8BLLwE3bwKhoYa/EJCMA5uYyOzcugX07y+bTKKiWBzKwspKnkn06ydnld21\nS+lEZCpYIMhoRUfLJqUWLeSMqk2bKp3IdFlYyJFeYWHAK68A77wD5OYqnYqMHZuYyOgIIUcovf8+\n8OWXwIsvKp3IvKSmyqGwubnAhg3AU08pnYgMgU1MZPLS04GgINnXcPQoi4M+WFsDERFyploPD9nh\nT6QNCwQZjVOn5HoL9eoBR44A9vZKJzJflpbAnDnyOpJhw4B58+T1JUSFsYmJFCcE8M03wMyZwKef\nyg8sMpwrV+RZW40awNq1QMOGSicifWATE5mcjAw5BPPTT+VMpSwOhte4sWxmcnOTgwIOH1Y6ERkL\nFghSzPnzcl0GCws5h1CbNkonqrgqVQIWLAD+9z9g4EA54R9P1IlNTKSIdeuA114DFi8GRo1SOg0V\ndvmynA3W2hr47jvZJ0Smj01MZPTu3ZOzr86bJ6epZnEwPk2byutO7O1lk1N0tNKJSCksEGQwFy8C\nHTrIoazR0YCzs9KJqDhVqgBLl8qmpt69gc8/Z5NTRcQCQQYRHi6LwyuvABs3AnXqKJ2ISuLFF+X1\nKKtWyWan9HSlE5EhsUCQXmVny9lE33xTzgE0cSKXxDQ19vbyuhQrK3lh3alTSiciQ2GBIL1JSAB8\nfGSnZ0yM/HAh01Stmpz2ZO5cucb3ypVscqoI9FYgEhMT0alTJzg5OaF169ZYvHgxAODmzZvo3r07\nnJ2d4efnh3/++UfznAULFsDBwQFOTk7Ys2ePvqKRAfz0k1ysJjAQ+OEHjoQxF0OHyutVPv1UXr+S\nkaF0ItInvQ1zvXbtGtLS0uDo6Ii7d+/C3d0dmzZtwsqVK2Fvb49p06bh008/RXx8PJYtW4aYmBiM\nHz8ex44dQ0pKCry9vXHhwgVUqVKlaGAOczVqOTlyptCNG4Hvv5f9DmR+MjKASZPkYINNmwAHB6UT\n0ZMY1TBXGxsbODo6AgBq1aoFZ2dnJCcnY+fOnRgxYgQAYPjw4dixYwcAYMeOHQgKCoKlpSVsbW2h\nVqsRFRWlr3ikB8nJQNeuwOnTwMmTLA7mrGZNYPVqYMYMoHNneV0LmR+D9EEkJCQgOjoa3t7eSEtL\ng5WVFQCgQYMGSE1NBQAkJyfDzs5O8xw7OzskJSUZIh7pwN69cqI9f39gxw6gQQOlE5EhjBolr2eZ\nN09e33LvntKJSJcq6fsF7t69i0GDBmHZsmWoo6OxjcHBwZrvfX194evrq5PtUunl5cl1G1aulM1K\n/FNUPM7Osqlp7FjAy0s2ObVqpXQqioyMRGRkZLm2odcCkZOTgxdffBHDhg1D//79AQANGzbE9evX\n0aBBA6SlpcHa2hqAPGNITEzUPDcpKQlNilk8t3CBIOXcugUEBMhpomNigEaNlE5ESqlTRx4gfPkl\n0LGjPGB44QWlU1VsDx88z507t9Tb0FsTkxACY8aMgYODA1577TXN7b169cK6fxss161bh169emlu\nDw0NRW5uLpKSknDmzBl4enrqKx6VU16eHNHSqpVsXmJxIJVKXueyYwfw8svAiRNKJ6Ly0tsopkOH\nDqFTp05wdnaG6t8roxYsWABPT08EBgbi2rVraNSoEcLCwlC3bl0AwPz587Fu3TpYWFhgyZIl8PPz\nezQwRzEZhXfekdNC790rZwIlKmzLFjkZY3S0nPSPlFeWz07O5kqltnUrMHWqPELkf34qzjvvAIcO\nyYOIypWVTkMsEKR3v/8OdOokL4RjCyA9Tl4e0Lcv0Lq1nPiPlGVU10GQ+UlPBwYMkAvLsDjQk1ha\nAuvXAz/+yOskTBXPIKhEhJAzezZsCISEKJ2GTMmZM0CXLsCePXJZU1IGzyBIbxYuBK5eBZYvVzoJ\nmRpHR+CLL+RSptevK52GSoNnEPREe/YAI0fKESm2tkqnIVP19ttyYENEBEe+KYGd1KRz8fFA+/by\n6thOnZROQ6YsLw/o1Uteef3RR0qnqXjYxEQ6lZkpO6Vnz2ZxoPKztJRXW2/eLGf6JePHMwjSSghg\nxAh5deyaNVwFjnTn1Cm56NDPPwMuLkqnqTh4BkE689lnwNmzcsQSiwPpkouLHOwwcCBw86bSaehx\neAZBjzhwABg8WC5W37y50mnIXM2YAcTFATt3yuYn0i+eQVC5JScDQUGyWYnFgfRp4UIgN1dOyUHG\niQWCNO7flxfDTZkC9OihdBoyd5UqAaGhsuN60yal05A2bGIijXHjgLQ0OcqE/Q5kKCdPAn5+wL59\n8qI60g82MVGZrVwp+x5Wr2ZxIMNydwc++UQOqb51S+k0VBjPIAhRUUCfPsDBg3LmTSIlTJsG/PGH\nnNyPnda6xzMIKrXUVGDQIOCrr1gcSFkffSQvzuSKwsaDBaICy80FAgOB//4X+HfJcCLFVK4MhIXJ\nEXQ//KB0GgLYxFShTZ8OnD8vF//hKT0Zi+hooHdvYP9+4NlnlU5jPtjERCW2cSOwbZtc0IXFgYzJ\nc88BixbJs9rbt5VOU7HxDKICOn0a6NaNc+GQcZs0CUhMlGugW/BQttx4BkFPdPOmHE64fDmLAxm3\npUvl+3XePKWTVFw8g6hA8vLkcNZnn5XjzomMXUoK0LYt8L//yfculR0XDKLHevddea3D3r1yxAiR\nKTh2DHjhBeDQIeCZZ5ROY7rYxETF2rYN+O47OYyQxYFMSfv2wIcfyk7rO3eUTlOx8AyiArhwAfDx\nkcNZPT2VTkNUNgVzhYWHs9O6LHgGQY+4c0d2Ss+fz+JApm35cuDqVTlNOBkGzyDMmBByGo0GDeTK\ncESm7soVeZ3EypWAv7/SaUwLzyCoiEWL5AJAy5crnYRINxo3lv1oI0cCFy8qncb88QzCTO3ZI/8T\nRUUBdnZKpyHSrS+/BL74Qi6LW6uW0mlMA4e5EgAgPh7w8pJHWp06KZ2GSPeEAF5+WfaxhYZyDZOS\nYBMTITMTGDgQmDWLxYHMl0oFrFgBJCTIacJJP3gGYUaEkFN3CwGsXcujKjJ/iYlAu3ZyJUSuo/54\nPIOo4D7/HDhzRi7+w+JAFUGTJsD33wMjRgB//aV0GvPDMwgzcfAgEBAgO+2aN1c6DZFhffaZHPp6\n5AhQs6bSaYwTO6krqORkeRHcqlWAn5/SaYgMTwg5ai8nR65xwjPoR7GJqQK6f19eDDd5MosDVVwq\nlZzx9cIFOU046YZeC8To0aNhY2MDJycnzW3BwcGws7ODm5sb3NzcsGvXLs19CxYsgIODA5ycnLBn\nzx59RjMbr74KPPUU8PbbSichUlb16sCWLXJU06+/Kp3GPOi1QIwaNQoRERFFblOpVJg+fTpiY2MR\nGxsL/3+vl4+JicGWLVsQFxeHiIgIjBs3DtnZ2fqMZ/K++Uau27t6NU+piQCgaVNgwwZg6FDg8mWl\n05g+vRYIHx8f1KtX75HbtbWD7dixA0FBQbC0tIStrS3UajWioqL0Gc+kRUcDM2cCP/wA1KmjdBoi\n49GlC/DWW3KSyqwspdOYNkX6IFasWIFnn30Ww4cPx82bNwEAycnJsCs0J4SdnR2SkpKUiGf0srOB\nYcPkdANt2iidhsj4TJsmh8CyP6J8Khn6BSdNmoT33nsPgOyPmDp1KtatW1eqbQQHB2u+9/X1ha+v\nrw4TGr8vvgBatgRefFHpJETGSaUCliyRiw2NHg3Y2CidyPAiIyMRGRlZrm3ofZhrQkIC+vbti7i4\nuEfuu3LlCrp06YILFy5g3rx5qF69OmbMmAEA6NOnD2bOnImOHTsWDVzBh7neuCHXlN6/X/5LRMV7\n/XXg7l1Odw+YyDDX1NRUzfebN2+GWq0GAPTq1QuhoaHIzc1FUlISzpw5A0+ucPOIuXOBwYNZHIhK\n4p13gK1bAS3Hp1QCem1iGjJkCPbv34/r16+jSZMmmDt3Lvbt24fTp08jOzsbTZs2xTfffAMA8PDw\nwIABA+Ds7AwLCwuEhISgMhdPLuL334GNG4Hz55VOQmQa6tUD3n0XmD5dToHP0X6lwyupTUjfvoCv\nrzxtJqKQPNdbAAAY1ElEQVSSyckBnJyATz4BevVSOo1yTKKJicrm55/lmcPkyUonITItlSsDH38s\nD6xycpROY1pYIExAXp48Rf7oI6BqVaXTEJme3r0BW1s50zGVHJuYTMBXX8mrQ/ftYxsqUVmdPg10\n7y7na6pbV+k0hsfZXM1QejrQujWwYwfg7q50GiLT9sorsjhUxFXoWCDM0MyZQEoK8O23SichMn0p\nKYCjI3D8OGBvr3Qaw2KBMDMJCUDbtvLUuHFjpdMQmYf584GTJ4HwcKWTGBYLhJkJDATUauDfmUmI\nSAfu3ZNzmK1bB/j4KJ3GcFggzMiRI0BQkLw4rkYNpdMQmZcNG+REfsePAxYVZCwnr4MwE/n5wGuv\nyVNhFgci3QsKkoVh/Xqlkxi3JxaIkydPGiIHFbJxo1xjd+hQpZMQmScLC3kGMWsWkJmpdBrj9cQm\nJl9fX6SkpCAgIACBgYFwdHQ0VDatzL2JKTNTto9u2AB4eyudhsi8BQbKUU3vvqt0Ev3TWx/E1atX\nERYWhrCwMKSnp2Pw4MF4V6E9au4F4oMP5KilsDClkxCZv/h4OVIwLs78RwrqvZM6Li4OixYtQmho\nKHIUmtTEnAvElSuAs7NcTrR5c6XTEFUMb70FpKUBq1YpnUS/9FIgzp07h7CwMISHh8PKygqBgYEY\nNGgQrK2tyxW2rMy5QIweDVhbAwsXKp2EqOK4fVvOVrBrF+DmpnQa/dFLgfDy8kJgYCACAgJga2tb\nroC6YK4F4uRJOaHYhQtAnTpKpyGqWP73P9ms+8sv5jvfmU4LxNixY+Hv749u3bqhjhF9YpljgRAC\n6NIFGDIEGDdO6TREFU9uLuDqCnz4IdCvn9Jp9EOnBeLYsWPYtWsXfv31V1SuXBl+fn7o2bMnXFxc\ndBK2rMyxQGzdKkdRxMYClfS6xh8RFWf3bmDKFODMGaBKFaXT6J7eOqmvX7+OPXv2ICIiAqdPn4ab\nmxv8/f0xePDgMoctK3MrENnZcjqNL76QUxETkXL8/YGePYFXX1U6ie7pvEDk5+dj8+bNCAgI0Nwm\nhEBMTAx2796N2bNnlz1tGZlbgfjkE9nuuWOH0kmI6OxZ2dz7++9A/fpKp9EtvZxBtGvXDsePHy9X\nMF0ypwJx/Trw7LPAgQPyXyJS3oQJcuXGTz9VOolu6aVAvP3227CxscGgQYNQs2ZNze31FSqv5lQg\npkyR/372mbI5iOiB1FTAwUFOmPnMM0qn0R29FIhmzZpBpWXcV3x8fOnS6Yi5FIjz54FOneSprJWV\n0mmIqLDFi2WB2LpV6SS6w+m+TUjv3kC3bsD06UonIaKHZWXJs4hvvpF9EuZAp9N9L168WPP9pk2b\nitw3a9asUkajwvbsAf74A5g8WekkRKRNtWrAokXyAC4vT+k0yim2QGzcuFHz/fz584vct2vXLv0l\nMnO5ufJN99FH5jnWmshcDBok12NZs0bpJMrhgkEG9s03QMOG5nu1JpG5UKnkMPR33gHu3lU6jTJY\nIAzo9m1gzhz5pjPX+V6IzEm7doCvr+y0roiK7aS2tLREjX/Xu7x37x6qV6+uue/evXvIzc01TMKH\nmHIndUWZVpjInPz9t5zl9bffgCZNlE5TdhzFZMTi44HnnpMLkzz1lNJpiKg03nlHFgpT7o9ggTBi\ngwfLxYDeeUfpJERUWnfuyDUjtm+XK9CZIhYII3XoEDB0qLwo7t9WOyIyMStXAt99J6fGMcU+RJ1e\nB0G6kZ8PvPYasGABiwORKRs1CkhPB7ZsUTqJ4bBA6Nn69YCFhVwMiIhMl6UlsGQJ8OabwP37Sqcx\nDDYx6VFmpmy3DA0FOnRQOg0R6ULfvkDnzsCMGUonKR32QRiZ99+X88uHhiqdhIh05cIFoGNHOeFm\nw4ZKpyk5o+uDGD16NGxsbODk5KS57ebNm+jevTucnZ3h5+eHf/75R3PfggUL4ODgACcnJ+zZs0ef\n0fQuORlYtkzO50JE5qN1aznoZO5cpZPon14LxKhRoxAREVHktjlz5qB37944ffo0/P39MWfOHABA\nTEwMtmzZgri4OERERGDcuHHIzs7WZzy9mj0bGDsWaNZM6SREpGtz5siWgfPnlU6iX3otED4+PqhX\nr16R23bu3IkRI0YAAIYPH44d/661uWPHDgQFBcHS0hK2trZQq9WIiorSZzy9iYmRC6DPnKl0EiLS\nBysr+f/b1PohSsvgo5jS0tJg9e8KOQ0aNEBqaioAIDk5GXZ2dprH2dnZISkpydDxyk0IOVvr3LlA\nnTpKpyEifZk8WU7bb+Kt4Y/FYa469sMPwK1bwJgxSichIn2qUkVO4vf66+a7ZkQlQ79gw4YNcf36\ndTRo0ABpaWmwtrYGIM8YEhMTNY9LSkpCk2JmxgoODtZ87+vrC19fX31GLrH794E33gBCQuSYaSIy\nb/37A59+KifgfOUVpdMUFRkZicjIyHJtQ+/DXBMSEtC3b1/ExcUBAKZMmQJ7e3tMmzYNS5cuRXx8\nPJYvX46YmBiMHz8eR48eRUpKCry9vfHnn3+icuXKRQMb8TDXJUuAyEjgxx+VTkJEhhITA/TpI4e/\nGnOzstFdBzFkyBDs378f169fh42NDd5//33069cPgYGBuHbtGho1aoSwsDDUrVsXgFy5bt26dbCw\nsMCSJUvg5+f3aGAjLRBpaXIN24MHgTZtlE5DRIY0ciTQuDHw0OKbRsXoCoQ+GGuBmDRJNistX650\nEiIytORkOVvzyZNA06ZKp9GOBUIh587JVafOn5fD34io4gkOls1MGzcqnUQ7FgiF+PsDfn7AtGlK\nJyEipWRkyKusN20CvLyUTvMoo5tqoyKIiAAuXQImTlQ6CREpqWZN4MMP5XVQRnYMW2YsEOWQmyvH\nQH/0kRwTTUQV24gRQHY2EBamdBLdYIEoh6+/BmxsgBdeUDoJERkDCwvgk0+At94CsrKUTlN+7IMo\no3/+ke2Nu3cDrq5KpyEiYzJwIODpCbz9ttJJHmAntQG9+SZw4wbwzTdKJyEiY/Pnn7Kj+uxZ2cpg\nDFggDOSvv+TRQVwc8NRTikYhIiM1fbpcVfJ//1M6icQCYSCDBgFubnLNByIibW7dkrMq/PwzUGjN\nNMWwQBjA8eNAQIC8IKZ6dcViEJEJWL5cFojt25VOwgJhEAMHAl27yrngiYge5949oHlz4Ndf5Vxt\nSmKB0LM//gC8vYH4eHlRDBHRk3zwgey3XLVK2RwsEHo2bhzQqFHFWKyciHTj5k2gZUs5qMXWVrkc\nLBB6lJIiTxEvXAAaNjT4yxORCZs27cEKdEphgdCj2bPlxXErVhj8pYnIxF2+DLi7y6am//xHmQws\nEHpy547saDp+HLC3N+hLE5GZGDZMzrrwxhvKvD4LhJ4sXQocOwaEhhr0ZYnIjPz2G9C7tzyLqFrV\n8K/P6b71ICdHFgilqj4RmQdXV8DREdiwQekkJccC8QShoXIEQtu2SichIlP3xhvAxx8D+flKJykZ\nFojHEEKOOnjzTaWTEJE56NZNNi/t3Kl0kpJhgXiM3bvlv35+yuYgIvOgUskDTiWHu5YGC8RjFJw9\nqFRKJyEiczFoEJCYKAe+GDsWiGJERwMXLwKBgUonISJzUqmSnAr8o4+UTvJkHOZajMGD5YIfr72m\n95ciogomI0NeW3XoEPDMM4Z5TV4HoSOXLgHt2slJ+WrX1utLEVEFNWeOnMInJMQwr8cCoSOTJgF1\n6wIffqjXlyGiCiwtTZ49/P67YZYlZYHQgbQ0oHVr4Nw5OXMrEZG+TJwI1K8vpwTXNxYIHZgzB7h6\nFfjqK729BBERADkQxstLNmfXqqXf12KBKKeMDKBZM9lx1Lq1Xl6CiKiIwYOBDh3klOD6xLmYymnV\nKsDHh8WBiAznjTfkfG85OUoneRQLxL9yc4FPPuG0GkRkWM89B7RoAYSFKZ3kUSwQ/woPB5o0Adq3\nVzoJEVU0BdNvGFuDPwsEOCkfESmrZ085w+vevUonKYoFAsAvvwBZWUCvXkonIaKKSKWSfRHGNokf\nCwTkH+WNNwAL7g0iUkhQEHDhAhATo3SSByr8R2JsLHD2LDB0qNJJiKgiq1JFzv1mTJP4KXYdRLNm\nzVCnTh1YWlqicuXKiIqKws2bNxEYGIhr167hqaeeQmhoKOrWrVs0sI6vg1B6IXEiogJ37shJ/KKj\n5b+6ZFIXyjVv3hwxMTGoX7++5rYpU6bA3t4e06ZNw6effor4+HgsW7asyPN0WSASEgAPD7mI+H/+\no5NNEhGVy8yZwN27wGef6Xa7JlcgTpw4ASsrK81t9vb2iIqKgpWVFa5fv4727dvj4sWLRZ6nywLx\n6qty+T9j6xgioorr6lVArQb++ANo0EB32zWpAtGiRQvUrVsXubm5GDt2LCZPnow6deogPT1d85iH\nfwZ0VyBu3ABatgTOnAFsbcu9OSIinXnlFcDOTs4Npytl+eyspLuXL51jx47B2toaaWlp6NmzJ9q0\naVPi5wYHB2u+9/X1ha+vb6lf/4svgAEDWByIyPi8/jrQubPsG61Ro2zbiIyMRGRkZLlyGMVkfQsW\nLAAArFy5EsePH0eDBg2QlpYGLy8vvTQx3bsnJ+Xbtw9wcCjXpoiI9KJ/f6BHDzkluC6YzGR9mZmZ\nyMzMBABkZGQgIiICarUavXr1wrp16wAA69atQy89Xbn23XdyxTgWByIyVm++CSxZAuTlKZdBkTOI\n+Ph49O/fHyqVCpmZmQgKCsL7779fZJhro0aNEBYWpvNhrnl5crbWb7+VM7cSERkrb285mCYgoPzb\nMqlO6rIqb4EID5dV+cgReXk7EZGx2rYNmDdPXhdR3s8rk2liUkrhSflYHIjI2PXtK6+JKGdfc5lV\nqAKxfz9w+zbwwgtKJyEiejILC2Un8atQTUy9esmhra+8ouNQRER6cv++nHYjIgJwdi77dtgH8Rhx\ncXLIWHw8UK2aHoIREenJwoXAuXPAmjVl3wYLxGO89JIcvTRrlh5CERHp0T//yGVJf/sNePrpsm2D\nBaIYiYmAiwtw6RJQr56eghER6dGMGXLVuU8+KdvzWSCK8frrcgRTWXcsEZHSkpLkge7Fi2U70GWB\n0OLWLcDevnynZkRExqA8TeUsEFp8/LFcNW79ej2GIiIygLg4oGdPuZZN5cqley4vlHtIXh6wYgUw\ndarSSYiIys/JCWjVCvjhB8O8nlkXiJ07gYYN5cR8RETmYMoU3a82VxyzLhCffQZMnqx0CiIi3enX\nTzYx/fab/l/LbAvE778Dp04BgwcrnYSISHcqVQImTAA+/1z/r2W2ndRTpgB16gAffmiAUEREBpSa\nKkczXboE1K9fsudwFNO/0tPlinGnTgFNmhgmFxGRIf33v3JuphkzSvZ4jmL615o1QNeuLA5EZL6m\nTJGjNPW54pzZFQghZNvclClKJyEi0p/nngOsreVoTX0xuwLx88/yApJOnZROQkSkX/oe8mp2BaLg\n7IErxhGRuQsIAE6flqM29cGsOqnj44G2bYG//wZq1jRwMCIiBbz7rpwO/ElnEhV+FNObb8oOmyVL\nDByKiEghSUlyNFNCghzaX5wKXSAyM+VsrcePy9lbiYgqioAAwNcXmDSp+MdU6GGuGzcC7duzOBBR\nxTNliux/1fXhvlkUCCFk+xuHthJRReTjI0dv/vKLbrdrFgXi8GHZxNS9u9JJiIgMT6XSz5BXs+iD\nCAwEOnbkug9EVHFlZABNmwInTsiphh5WITupk5MBR0fZg/+f/yiXi4hIaTNmABYWwOLFj95XIQvE\ne+8BN27IOUmIiCqyS5fkYJ3Ll4EaNYreV+FGMd2/D3z11eOHdhERVRT29nIFze+/1832TLpAhIfL\n5iUHB6WTEBEZh4LOal20DZl0gfj8cy4pSkRUWPfussP6yJHyb8tkC8SJE8CVK0DfvkonISIyHhYW\n8sBZF0NeTbaTeuRI4NlngbfeUjoREZFxuX0baN4cOHMGaNxY3lZhRjGlpgo88wxw8SJgZaV0IiIi\n4zNpEtCgATB3rvy5whSIDz8UuHgRWLVK6TRERMbp3DmgWzc55LVKFTMZ5hoREQEnJyc4ODhg0aJF\nWh/z5ZfsnCYiehwHB/m1eXPZt2FUBeL+/fuYMGECIiIicPr0aYSHhyM2NvaRxz39NODurkBAIxMZ\nGal0BKPBffEA98UDFX1flHd+JqMqEMePH4darYatrS0qVaqEwMBA7Nix45HHcdZWqaK/+QvjvniA\n++KBir4v+vSR0xHFxJTt+UZVIJKSktCkSRPNz3Z2dkhKSnrkcQMHGjIVEZFpqlQJmDhRXjNWpufr\nNk75qFSqEj2uShU9ByEiMhNjxgCtWpXxycKIHDhwQPTu3Vvz8+LFi8UHH3xQ5DH29vYCAL/4xS9+\n8asUX/b29qX+TDaqYa5ZWVlo06YNDh8+DGtra3To0AEhISFwZ480EZHBGVUTU7Vq1fDll1/Cz88P\n+fn5GDFiBIsDEZFCjOoMgoiIjIdRjWIqrCQXzE2dOhVqtRru7u5ar5cwF0/aF2vXroWzszOcnJzQ\ntm1bxJR1TJuRK8l7AgCio6NRqVIlbNmyxYDpDKsk+yIyMhKenp5wdXVF586dDZzQcJ60L1JSUtCt\nWzeo1Wq0bt0aISEhCqQ0jNGjR8PGxgZOTk7FPqZUn5vl6lXWk6ysLNGsWTORlJQkcnJyRNu2bcXJ\nkyeLPCY8PFz069dPCCHEyZMnhYuLixJR9a4k++L48eMiPT1dCCHErl27hKurqxJR9aok+0EIIXJz\nc0WXLl1E7969RXh4uAJJ9a8k++Lq1atCrVaLa9euCSGEuHHjhhJR9a4k+2L27Nni7bffFkIIkZaW\nJurWrSuysrKUiKt3Bw4cECdPnhSOjo5a7y/t56ZRnkGU5IK5nTt3YsSIEQAANzc35Obmar1mwtSV\nZF94enqidu3aAICOHTsiOTlZiah6VdKLKD/77DMMGjQIDRs2VCClYZRkX3z//fcIDAyEtbU1AKB+\n/fpKRNW7kuyLJk2aID09HQCQnp6Ohg0bomrVqkrE1TsfHx/Uq1ev2PtL+7lplAWiJBfMlfSiOlNX\n2t8zJCQE/fr1M0Q0gyrJfkhOTsa2bdswYcIEACW/rsbUlGRfXLhwAVeuXIGXlxecnZ2xcuVKQ8c0\niJLsi1deeQVnz55F48aN4eLigmXLlhk6ptEo7eeJUY1iKlDS/9jiof51c/xAKM3vFBkZiVWrVuHw\n4cN6TKSMkuyHadOmYeHChZpZKx9+f5iLkuyLvLw8nDlzBr/++isyMzPRvn17eHl5Qa1WGyCh4ZRk\nX8yfPx+urq6IjIzEpUuX0L17d5w6dUpz1l3RlOZz0yjPIOzs7JCYmKj5OTExsUjV0/aYpKQk2NnZ\nGSyjoZRkXwDA6dOn8fLLL2P79u2PPcU0VSXZDzExMQgKCkLz5s2xefNmTJw4Edu3bzd0VL0ryb54\n+umn0aNHD1SvXh1WVlbo3LkzTp8+beioeleSfXHo0CEEBAQAAOzt7dG8eXOcP3/eoDmNRak/N3Xa\nQ6Ij9+7dE02bNhVJSUkiOztbtG3bVsTExBR5THh4uOjfv78QQoiYmBjh7OysRFS9K8m+uHz5srC3\ntxdHjx5VKKX+lWQ/FDZy5EixefNmAyY0nJLsi5MnT4pu3bqJ3NxckZGRIRwcHERsbKxCifWnJPti\n4sSJIjg4WAghREpKimjUqJGm894cxcfHP7aTujSfm0bZxFTcBXMFw9PGjRuHF198Efv27YNarUbV\nqlXx7bffKpxaP0qyL95//33cunVL0/ZeuXJlREVFKRlb50qyHyqKkuwLNzc39OzZE87OzsjJycHL\nL78MV1dXhZPrXkn2xXvvvYfhw4fDwcEBeXl5+OCDDzSd9+ZmyJAh2L9/P65fv44mTZpg7ty5yMnJ\nAVC2z01eKEdERFoZZR8EEREpjwWCiIi0YoEgIiKtWCCIiEgrFggiItKKBYKIiLRigSAqh4ULF2LD\nhg1KxyDSCxYIojIQQiA/Px979uyBn59fkfvy8/MVSkWkW0Z5JTWRMUpISICfnx+8vLwQGxuLn376\nCdnZ2bCyssLIkSNRrVo1xMXFoWPHjhg0aBDGjRuH3Nxc2NnZYf369WY75TaZL55BEJXCxYsXMWXK\nFJw6dQrR0dF4/vnnNfddu3YNhw8fxuLFizFixAisWLECcXFx8PLywuzZsxVMTVQ2LBBEpdC0aVN4\neHgAAHbv3g1/f38AcsrkgQMHAgBSU1ORlZWFDh06AACGDx+OgwcPKhOYqBxYIIhKoWbNmprvo6Ki\n4Onpqfm5Ro0aWp/D6c7IVLFAEJXB2bNn0aZNG62LrVhbW6N69eo4evQoAGDDhg3o3LmzoSMSlRs7\nqYlKoaAg7Nq1S9O89PB9ALB27VpNJ7WtrS2HwpJJ4nTfRGXQo0cPrF27FjY2NkpHIdIbFggiItKK\nfRBERKQVCwQREWnFAkFERFqxQBARkVYsEEREpBULBBERacUCQUREWv0f7H5+wWyWJFYAAAAASUVO\nRK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x1cfb950>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.7 page no : 246" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "import math\n", + "\n", + "# variables\n", + "do = .0508\n", + "Uz = .8467 # cyclohexane\n", + "aveP = 774.9 # the density of cyclohexane\n", + "u = 8.892*10**-4 # the viscosity\n", + "aveF = .00570\n", + "\n", + "# Calculation\n", + "Nre = do*Uz*aveP/u\n", + "rw = (1./2)*aveP*(Uz**2)*aveF\n", + "U = math.sqrt(rw/aveP)\n", + "\n", + "# for y = .001\n", + "y001 = (2.54*10**-5)*U*aveP/u\n", + "\n", + "\n", + "# Results\n", + "print \"Nre = %.2e \"%Nre\n", + "print \"The wall shear stress rw = %.3f N m**-2\"%rw\n", + "print \"The friction velocity U* = %.5f m s*-1\"%U\n", + "print \"Universal velocity Distribution :\" \n", + "print \"for y = 0.001 = %d \"%y001\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Nre = 3.75e+04 \n", + "The wall shear stress rw = 1.583 N m**-2\n", + "The friction velocity U* = 0.04520 m s*-1\n", + "Universal velocity Distribution :\n", + "for y = 0.001 = 1 \n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.8 Pageno :250" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "# variables\n", + "Cp = 4184. # lg-K-=4184Jkg-K-*\n", + "P = 1000. # g cm**-3\n", + "k = 0.628 # wm**-1\n", + "Nre = 1.2*10**5\n", + "v = 1*10**-6\n", + "do = 2*0.05\n", + "\n", + "# calculation\n", + "alpha = k/(P*Cp)\n", + "qa = (1.7*10**4)/(P*Cp)\n", + "Uz = Nre*v/(do)\n", + "U = Uz*math.sqrt(.0045/2)\n", + "y = (5*v)/U\n", + "\n", + "# Results\n", + "print \"A = %.3e m**2s**-2\"%alpha\n", + "print \"The average velocity = %.2f m s**-1\"%Uz\n", + "print \"U* = %.5f m s**-1\"%U\n", + "print \"the value of y = %.3e cm\"%y\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "A = 1.501e-07 m**2s**-2\n", + "The average velocity = 1.20 m s**-1\n", + "U* = 0.05692 m s**-1\n", + "the value of y = 8.784e-05 cm\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.9 - Page No :258\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "p = 0.84*62.4; \t\t\t #[lbf/ft**3] - density\n", + "dP = 80.*144; \t\t\t #[lbf/ft**2] - pressure\n", + "dz = 2000.; \t\t\t #[ft] - length of pipe\n", + "gc = 32.174; \t\t\t #[(lbm*ft)/(lbf*sec**2)] - gravitational conversion consmath.tant\n", + "dpbydz = -dP/dz;\n", + "do = 2.067/12; \t\t\t #[ft]\n", + "\n", + "# Calculations\n", + "U = 2000*(1./24)*(1./3600)*(42)*(1./7.48)*(1./0.02330);\n", + "# using the formula f = ((do/2)*(-dp/dz)*gc)/(p*(U)**2)\n", + "f = ((do/2)*(-dpbydz)*gc)/(p*(U)**2)\n", + "\n", + "# Results\n", + "print \"f = %.5f (dimensionless)\"%f\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "f = 0.00979 (dimensionless)\n" + ] + } + ], + "prompt_number": 19 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch7.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch7.ipynb new file mode 100755 index 00000000..bf3aa618 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch7.ipynb @@ -0,0 +1,998 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7 : Integral methods of analysis" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.2 - Page No :273\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "from scipy.integrate import quad \n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "id_ = 4.; \t\t\t #[m] - insid_e diameter\n", + "h = 2.; \t\t\t #[m] - water level\n", + "ro = 0.03; \t\t\t #[m] - radius of exit hole\n", + "rt = id_/2.; \t\t\t #[m] - insid_e radius\n", + "g = 9.80665; \t\t\t #[m/sec**2] - gravitational acceleration\n", + "\n", + "# Calculations\n", + "# using the equation dh/h**(1/2) = -((ro**2)/(rt**2))*(2*g)**(1/2)dt and integrating between h = 2 and h = 1\n", + "def f6(h): \n", + "\t return (1./h**(1./2))*(1./(-((ro**2)/(rt**2))*(2*g)**(1./2)))\n", + "\n", + "t1 = quad(f6,2,1)[0]\n", + "\n", + "# Results\n", + "print \" Time required to remove half of the contents of the tank is t = %.2f sec = %.2f min\"%(t1,t1/60);\n", + "\t\t\t #integrating between h = 2 and h = 0\n", + "\n", + "def f7(h): \n", + "\t return (1./h**(1./2))*(1./(-((ro**2)/(rt**2))*(2*g)**(1./2)))\n", + "\n", + "t2 = quad(f7,2,0)[0]\n", + "\n", + "print \" Time required to empty the tank fully is t = %.1f sec = %.1f min\"%(t2,t2/60);\n", + "\n", + "ro2 = (h**2)*math.sqrt(h*h/g)/(10*60)\n", + "print \" Ro**2 = %.6f m**2\"%ro2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Time required to remove half of the contents of the tank is t = 831.37 sec = 13.86 min\n", + " Time required to empty the tank fully is t = 2838.5 sec = 47.3 min\n", + " Ro**2 = 0.004258 m**2\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.3 - Page No :274\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "# composition of fuel gas\n", + "nH2 = 24.;\n", + "nN2 = 0.5;\n", + "nCO = 5.9;\n", + "nH2S = 1.5;\n", + "nC2H4 = 0.1;\n", + "nC2H6 = 1;\n", + "nCH4 = 64;\n", + "nCO2 = 3.0;\n", + "\n", + "# Calculations\n", + "# calculating the theoritical amount of O2 required\n", + "nO2theoreq = 12+2.95+2.25+0.30+3.50+128;\n", + "# since fuel gas is burned with 40% excess O2,then O2 required is\n", + "nO2req = 1.4*nO2theoreq;\n", + "nair = nO2req/0.21; \t\t\t # as amount of O2 in air is 21%\n", + "nN2air = nair*(0.79); \t\t\t # as amount of N2 in air is 79%\n", + "nN2 = nN2+nN2air;\n", + "nO2 = nO2req-nO2theoreq;\n", + "nH2O = 24+1.5+0.2+3.0+128;\n", + "nCO2formed = 72.1;\n", + "nCO2 = nCO2+nCO2formed;\n", + "nSO2 = 1.5;\n", + "ntotal = nSO2+nCO2+nO2+nN2+nH2O;\n", + "mpSO2 = (nSO2/ntotal)*100;\n", + "mpCO2 = (nCO2/ntotal)*100;\n", + "mpO2 = (nO2/ntotal)*100;\n", + "mpN2 = (nN2/ntotal)*100;\n", + "mpH2O = (nH2O/ntotal)*100;\n", + "\n", + "\n", + "# Results\n", + "print \" gas N2 O2 H2O CO2 SO2\";\n", + "print \" moles %.1f %.1f %.1f %.1f %.1f\"%(nN2,nO2,nH2O,nCO2,nSO2);\n", + "print \" mole percent %.1f %.1f %.1f %.1f %.1f\"%(mpN2,mpO2,mpH2O,mpCO2,mpSO2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " gas N2 O2 H2O CO2 SO2\n", + " moles 785.2 59.6 156.7 75.1 1.5\n", + " mole percent 72.8 5.5 14.5 7.0 0.1\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.4 - Page No :280\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Variables\n", + "# given\n", + "id_ = 6.; \t\t\t #[inch] - inlet diameter\n", + "od = 4.; \t\t\t #[inch] - outlet diameter\n", + "Q = 10.; \t\t\t #[ft**3/sec] - water flow rate\n", + "alpha2 = math.pi/3; #[radians] - angle of reduction of elbow\n", + "alpha1 = 0.;\n", + "p1 = 100.; \t\t #[psi] - absolute inlet pressure\n", + "p2 = 29.; \t\t\t #[psi] - absolute outlet pressure\n", + "\n", + "# Calculations\n", + "S1 = (math.pi*((id_/12)**2))/4.;\n", + "S2 = (math.pi*((od/12)**2))/4.;\n", + "U1 = Q/S1;\n", + "U2 = Q/S2;\n", + "mu = 6.72*10**-4; \t #[lb*ft**-1*sec**-1]\n", + "p = 62.4; \t\t\t #[lb/ft**3]\n", + "Nrei = ((id_/12.)*U1*p)/(mu);\n", + "\n", + "# Results\n", + "print \"Nre(inlet) = %.1e\"%Nrei\n", + "Nreo = round(((od/12)*U2*p)/(mu),-4);\n", + "print \"Nre(outlet) = %.1e \"%Nreo\n", + "\n", + "# thus\n", + "b = 1.;\n", + "w1 = p*Q; \t\t\t #[lb/sec] - mass flow rate\n", + "w2 = w1;\n", + "gc = 32.174;\n", + "\n", + "# using the equation (w/gc)*((U1)*(math.cos(alpha1))-(U2)*(math.cos(alpha2)))+p1*S1*math.cos(alpha1)-p2*S2*math.cos(alpha2)+Fextx = 0;\n", + "Fextx = -(w1/gc)*((U1)*(math.cos(alpha1))-(U2)*(math.cos(alpha2)))-p1*144*S1*math.cos(alpha1)+p2*144*S2*math.cos(alpha2);\n", + "print \"Fext,x = %.0f lb\"%Fextx\n", + "Fexty = -(w1/gc)*((U1)*(math.sin(alpha1))-(U2)*(math.sin(alpha2)))-p1*144*S1*math.sin(alpha1)+p2*144*S2*math.sin(alpha2);\n", + "print \"Fext,y = %.0f lb \"%Fexty\n", + "print \"The forces Fext,x and Fext,y are the forces exerted on the fluid_ by the elbow.\\\n", + "\\nFext,x acts to the left and Fext,y acts in the positive y direction.\\\n", + "\\nNote that the elbow is horizantal,and gravity acts in the z direction\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Nre(inlet) = 2.4e+06\n", + "Nre(outlet) = 3.6e+06 \n", + "Fext,x = -2522 lb\n", + "Fext,y = 2240 lb \n", + "The forces Fext,x and Fext,y are the forces exerted on the fluid_ by the elbow.\n", + "Fext,x acts to the left and Fext,y acts in the positive y direction.\n", + "Note that the elbow is horizantal,and gravity acts in the z direction\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.5 - Page No : 282\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import numpy\n", + "\n", + "# Variables\n", + "Fextx = -2522.; \t\t\t #[lb] - force in x direction\n", + "Fexty = 2240.; \t\t\t #[lb] - force in y direction\n", + "\n", + "# Calculations\n", + "# the force exerted by the elbow on the fluid is the resolution of Fext,x and Fext,y , therefore\n", + "Fext = ((Fextx)**2+(Fexty)**2)**(1./2);\n", + "alpha = 180. - 41.6\n", + "\n", + "# Results\n", + "print \" the force has a magnitude of %.0f lb and a direction of %.1f from \\\n", + "\\nthe positive x directionin the second quadrant\"%(Fext,alpha);\n", + "\n", + "# Note : answers in book is wrong. they have used wrong values everywhere. Please check it manually." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the force has a magnitude of 3373 lb and a direction of 138.4 from \n", + "the positive x directionin the second quadrant\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.6 - Page No :283\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "id_ = 6.; \t\t\t #[inch] - inlet diameter\n", + "od = 4.; \t\t\t #[inch] - outlet diameter\n", + "Q = 10.; \t\t\t #[ft**3/sec] - water flow rate\n", + "alpha2 = math.pi/3; #[radians] - angle of reduction of elbow\n", + "alpha1 = 0.;\n", + "p1 = 100.; \t\t #[psi] - absolute inlet pressure\n", + "p2 = 29.; \t\t\t #[psi] - absolute outlet pressure\n", + "patm = 14.7; \t\t #[psi] - atmospheric pressure\n", + "p1gauge = p1-patm;\n", + "p2gauge = p2-patm;\n", + "S1 = (math.pi*((id_/12.)**2))/4.;\n", + "S2 = (math.pi*((od/12.)**2))/4.;\n", + "U1 = Q/S1;\n", + "U2 = Q/S2;\n", + "p = 62.4; \t\t\t #[lb/ft**3]\n", + "b = 1.;\n", + "w1 = p*Q; \t\t\t #[lb/sec] - mass flow rate\n", + "w2 = w1;\n", + "gc = 32.174;\n", + "\n", + "# Calculations\n", + "# using the equation Fpress = p1gauge*S1-p2gauge*S2*math.cos(alpha2);\n", + "Fpressx = p1gauge*144*S1-p2gauge*144*S2*math.cos(alpha2);\n", + "Fpressy = p1gauge*144*S1*math.sin(alpha1)-p2gauge*144*S2*math.sin(alpha2);\n", + "wdeltaUx = (w1/gc)*((U2)*(math.cos(alpha2))-(U1)*(math.cos(alpha1)));\n", + "wdeltaUy = (w1/gc)*((U2)*(math.sin(alpha2))-(U1)*(math.sin(alpha1)));\n", + "Fextx = wdeltaUx-Fpressx;\n", + "Fexty = wdeltaUy-Fpressy;\n", + "Fext = ((Fextx)**2+(Fexty)**2)**(1./2);\n", + "alpha = 180 - 43.4\n", + "\n", + "# Results\n", + "print \" The force has a magnitude of %.0f lb and a direction of %.1f from the positive x directionin the second \\\n", + "quadrant\"%(round(Fext,-1),alpha);\n", + "print \" Also there is a force on the elbow in the z direction owing to the weight of the elbow \\\n", + " plus the weight of the fluid inside\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The force has a magnitude of 3030 lb and a direction of 136.6 from the positive x directionin the second quadrant\n", + " Also there is a force on the elbow in the z direction owing to the weight of the elbow plus the weight of the fluid inside\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.7 - Page No :293\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.integrate import quad \n", + "# Variables\n", + "Uo = 1.; \t\t\t #[m/sec]\n", + "# using Ux/Uo = y/yo\n", + "# assuming any particular value of yo will not change the answer,therefore\n", + "yo = 1;\n", + "\n", + "# Calculations\n", + "def f2(y): \n", + "\t return (Uo*y)/yo\n", + "\n", + "Uxavg = quad(f2,0,yo)[0]\n", + "\n", + "\n", + "def f3(y): \n", + "\t return ((Uo*y)/yo)**3\n", + "\n", + "Ux3avg = quad(f3,0,yo)[0]\n", + "\n", + "# using the formula alpha = (Uxavg)**3/Ux3avg\n", + "alpha = (Uxavg)**3/Ux3avg;\n", + "\n", + "# Results\n", + "print \"alpha = \",alpha\n", + "print \" Note that the kinetic correction factor alpha has the same final value for \\\n", + " laminar pipe flow as it has for laminar flow \\nbetween parallel plates.\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "alpha = 0.5\n", + " Note that the kinetic correction factor alpha has the same final value for laminar pipe flow as it has for laminar flow \n", + "between parallel plates.\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.8 - Page No :293\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Q = 0.03; \t\t\t #[m**3/sec] - volumetric flow rate\n", + "id_ = 7.; \t\t\t #[cm] - insid_e diameter\n", + "deltaz = -7.; \t\t #[m] - length of pipe\n", + "T1 = 25.; \t\t\t #[degC] - lowere sid_e temperature\n", + "T2 = 45.; \t\t\t #[degC] - higher sid_e temperature\n", + "g = 9.81; \t\t\t #[m/sec**2] - acceleration due to gravity\n", + "deltaP = 4.*10**4; #[N/m**2] - pressure loss due to friction\n", + "p = 1000.; \t\t #[kg/m**3] - density of water \n", + "w = Q*p;\n", + "C = 4184.; \t\t #[J/kg*K) - heat capacity of water\n", + "\n", + "# Calculations\n", + "deltaH = w*C*(T2-T1);\n", + "# using the formula Qh = deltaH+w*g*deltaz\n", + "Qh = deltaH+w*g*deltaz;\n", + "\n", + "# Results\n", + "print \" the duty on heat exchanger is Q = %.2e J/sec\"%(Qh);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the duty on heat exchanger is Q = 2.51e+06 J/sec\n" + ] + } + ], + "prompt_number": 56 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.10 - Page No :298\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "d = 0.03; \t\t\t #[m] - diameter\n", + "g = 9.784; \t\t #[m/sec] - acceleration due to gravity\n", + "deltaz = -1.;\n", + "\n", + "# using the equation (1/2)*(U3**2/alpha3-U1**2/alpha1)+g*deltaz = 0\n", + "# assuming\n", + "alpha1 = 1.;\n", + "alpha3 = 1.;\n", + "\n", + "U1 = 0.;\n", + "\n", + "# Calculations\n", + "U3 = (-2*g*deltaz+(U1**2)/alpha1)**(1/2.);\n", + "p = 1000.; \t\t\t #[kg/m**3] - density of water\n", + "S3 = (math.pi/4)*(d)**2\n", + "w = p*U3*S3;\n", + "\n", + "# Results\n", + "print \" the mass flow rate is w = %.2f kg/sec\"%(w);\n", + "\n", + "\n", + "# using deltap = p*((U3**2)/2+g*deltaz)\n", + "deltap = p*((U3**2)/2+g*deltaz);\n", + "p1 = 1.01325*10**5; \t\t\t #[N/m**2] - is equal to atmospheric pressure\n", + "p2 = p1+deltap;\n", + "vp = 0.02336*10**5;\n", + "if p2>vp:\n", + " print \" the siphon can operate since the pressure at point 2 is greater than the value at which the liquid boils\";\n", + "else:\n", + " print \" the siphon cant operate since the pressuer at point 2 is less than \\\n", + " the value at which the liquid_ boils\";\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the mass flow rate is w = 3.13 kg/sec\n", + " the siphon can operate since the pressure at point 2 is greater than the value at which the liquid boils\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.11 - Page No :300\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "sp = 1.45; \t\t\t # specific gravity of trichloroethylene\n", + "pwater = 62.4; \t\t\t #[lb/ft**3] - density of water\n", + "p = sp*pwater;\n", + "d1 = 1.049; \t\t\t #[inch] - density of pipe at point 1\n", + "d2 = 0.6; \t\t\t #[inch] - density of pipe at point 2\n", + "d3 = 1.049; \t\t\t #[inch] - density of pipe at point 3\n", + "\n", + "# Calculations\n", + "# using the formula U1*S1 = U2*S2; we get U1 = U2*(d2/d1);\n", + "# then using the bernoulli equation deltap/p = (1/2)*(U2**2-U1**2);\n", + "deltap = 4.2*(144); \t\t\t #[lb/ft**2] - pressure difference\n", + "U2 = ((2*(deltap/p)*(1./(1.-(d2/d1)**4)))**(1./2))*(32.174)**(1./2);\n", + "\n", + "# umath.sing the formula w = p*U2*S\n", + "w = p*U2*((math.pi/4)*(0.6/12)**2);\n", + "w1 = w/(2.20462);\n", + "\n", + "# Results\n", + "print \" the mass flow rate is w = %.1f lb/sec or in SI units w = %.2f kg/sec\"%(w,w1);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the mass flow rate is w = 3.9 lb/sec or in SI units w = 1.77 kg/sec\n" + ] + } + ], + "prompt_number": 60 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.12 - Page No :301\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Q = 50/(7.48*60); \t #[ft/sec] - volumetric flow rate of water\n", + "d1 = 1.; \t\t\t #[inch] - diameter of pipe\n", + "deltaz = -5; \t\t #[ft] - distance between end of pipe and math.tank\n", + "g = 32.1; \t\t\t #[ft/sec] - acceleration due to gravity\n", + "Cp = 1.; \t\t\t #[Btu/lb*F] - heat capacity of water\n", + "p = 62.4; \t\t\t #[lb/ft**3] - density of water\n", + "S1 = (math.pi/4)*(d1/12.)**2;\n", + "U1 = Q/S1;\n", + "w = p*Q;\n", + "U2 = 0.;\n", + "gc = 32.174;\n", + "\n", + "# Calculations\n", + "# using the formula deltaH = (w/2)*((U2)**2-(U1)**2)+w*g*deltaz\n", + "deltaH = -(w/(2*gc))*((U2)**2-(U1)**2)-w*(g/gc)*deltaz;\n", + "deltaH = deltaH/778; \t\t\t # converting from ftlb/sec to Btu/sec\n", + "deltaT = deltaH/(w*Cp);\n", + "\n", + "# Results\n", + "print \" The rise in temperature is %.5f degF\"%(deltaT);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The rise in temperature is 0.01475 degF\n" + ] + } + ], + "prompt_number": 62 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.13 - Page No :303\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "deltaz = 30.; \t\t #[ft] - distance between process and the holding math.tank\n", + "Q = 100.; \t\t\t #[gpm] - volumetric flow rate of water\n", + "p1 = 100.; \t\t #[psig]\n", + "p2 = 0.; \t\t\t #[psig]\n", + "g = 32.1; \t\t\t #[ft/sec] - acceleration due to gravity\n", + "sv = 0.0161; \t\t #[ft**3/lb] - specific volume of water\n", + "p = 1./sv; \t\t #[lb/ft**3] - density of water\n", + "e = 0.77; \t\t\t # efficiency of centrifugal pump\n", + "deltap = (p1-p2)*(144); \t\t\t #[lbf/ft**2]\n", + "gc = 32.174;\n", + "\n", + "# Calculations\n", + "# using the equation deltap/p+g*(deltaz)+Ws = 0;\n", + "Wst = -deltap/p-(g/gc)*(deltaz);\n", + "# using the formula for efficiency e = Ws(theoritical)/Ws(actual)\n", + "# therefore\n", + "Wsa = Wst/e;\n", + "# the calulated shaft work is for a unit mass flow rate of water,therfore for given flow rate multiply it by the flow rate\n", + "w = (Q*p)/(7.48*60);\n", + "Wsactual = Wsa*w;\n", + "power = -Wsactual/(778*0.7070);\n", + "\n", + "# Results\n", + "print \" the required horsepower is %.2f hp\"%(power);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the required horsepower is 8.55 hp\n" + ] + } + ], + "prompt_number": 64 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.14 - Page No :304\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "p1 = 5.; \t\t\t #[atm] - initial pressure\n", + "p2 = 0.75; \t\t #[atm] - final pressure after expansion through turbine\n", + "T = 450.; \t\t\t #[K] - temperature\n", + "y = 1.4; \t\t\t # cp/cv for nitrogen\n", + "# using the equation Ws = -(y/(y-1))*(p1/density1)*((p2/p1)**((y-1)/y)-1)\n", + "R = 8314.; \t\t # gas constant\n", + "\n", + "# Calculations\n", + "p1bydensity = R*T;\n", + "Ws = -(y/(y-1))*(p1bydensity)*((p2/p1)**((y-1)/y)-1);\n", + "\n", + "# Results\n", + "print \" the shaft work of the gas as it expands through the turbine and transmits its molecular \\\n", + " energy to the rotating blades is \\n Ws = %.2e J/kmol\"%(Ws);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the shaft work of the gas as it expands through the turbine and transmits its molecular energy to the rotating blades is \n", + " Ws = 5.48e+06 J/kmol\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.15 - Page No :311\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "T = 273.15+25; \t\t #[K] - temperature\n", + "R = 8.314; \t\t\t #[kPa*m**3/kmol*K] - gas constant\n", + "p = 101.325; \t\t\t #[kPa] - pressure\n", + "M = 29.; \t\t\t # molecular weight of gas\n", + "pa = (p*M)/(R*T);\n", + "sg = 13.45; \t\t\t # specific gravity\n", + "pm = sg*1000;\n", + "g = 9.807; \t\t\t #[m/sec**2] - acceleration due to gravity\n", + "deltaz = 15./100; \t\t #[m]\n", + "\n", + "# Calculations\n", + "# using the equation p2-p1 = deltap = (pm-pa)*g*deltaz\n", + "deltap = -(pm-pa)*g*deltaz;\n", + "\n", + "# Results\n", + "print \" the pressure drop is %.2e N/m**2\"%(deltap);\n", + "print \" the minus sign means the upstream pressure p1 is greater than p2, i.e ther is a pressure drop.\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the pressure drop is -1.98e+04 N/m**2\n", + " the minus sign means the upstream pressure p1 is greater than p2, i.e ther is a pressure drop.\n" + ] + } + ], + "prompt_number": 68 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.16 - Page No :312\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "T = 536.67; \t\t\t #[degR]; - temperature\n", + "R = 10.73; \t\t\t #[(lbf/in**2*ft**3)*lb*mol**-1*degR] - gas constant\n", + "p = 14.696; \t\t\t #[lbf/in**2];\n", + "g = 9.807*3.2808; \t\t #[ft/sec**2] - acceleration due to gravity\n", + "M = 29.; \t\t\t # molecular weight of gas\n", + "\n", + "# Calculations\n", + "pa = (p*M)/(R*T);\n", + "sg = 13.45; \t\t\t # specific gravity\n", + "pm = sg*62.4;\n", + "deltaz = 15/(2.54*12); #[ft]\n", + "gc = 32.174;\n", + "\n", + "# Results\n", + "# using the equation p2-p1 = deltap = (pm-pa)*g*deltaz\n", + "deltap = (pm-pa)*(g/gc)*deltaz;\n", + "print \"the pressure drop is %.0f lbf/ft**2\"%(deltap);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the pressure drop is 413 lbf/ft**2\n" + ] + } + ], + "prompt_number": 71 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.18 - Page No :315\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "at = 0.049; \t\t\t #[in**2] - cross sectional area of the manometer tubing\n", + "aw = 15.5; \t\t\t #[in**2] - cross sectional area of the well\n", + "g = 32.174; \t\t\t #[ft/sec**2] - acceleration due to gravity\n", + "gc = 32.174;\n", + "sg = 13.45; \t\t\t #[ specific garvity of mercury\n", + "p = 62.4; \t\t\t #[lb/ft**3] - density of water;\n", + "pm = sg*p;\n", + "deltaz_waterleg = 45.2213;\n", + "\n", + "# Calculations\n", + "# using the equation A(well)*deltaz(well) = A(tube)*deltaz(tube)\n", + "deltazt = 70.; \t\t\t #[cm]\n", + "deltazw = deltazt*(at/aw);\n", + "deltaz = deltazt+deltazw;\n", + "deltap_Hg = -pm*(g/gc)*(deltaz/(2.54*12));\n", + "\n", + "# Results\n", + "deltazw = 45.2213; \t\t\t #[cm]\n", + "deltap_tap = deltap_Hg+p*(g/gc)*(deltazw/(12*2.54));\n", + "print \"deltap_tap = %.0f lbf/ft**2\"%(deltap_tap);\n", + "print \"deltap is negative and therefore p1 is greater than p2\";\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "deltap_tap = -1841 lbf/ft**2\n", + "deltap is negative and therefore p1 is greater than p2\n" + ] + } + ], + "prompt_number": 73 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.19 - Page No :317\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "p = 749./760; \t\t\t #[atm]\n", + "T = 21.+273.15; \t\t #[K]\n", + "R = 82.06; \t\t\t #[atm*cm**3/K] - gas constant\n", + "v = (R*T)/p; \t\t\t #[cm**3/mole] - molar volume\n", + "M = 29.; \t\t\t #[g/mole] - molecular weight\n", + "pair = M/v;\n", + "m_air = 53.32; \t\t\t #[g]\n", + "m_h2o = 50.22; \t\t\t #[g]\n", + "ph2o = 0.998; \t\t\t #[g/cm**3] - density of water\n", + "\n", + "# Calculations\n", + "V = (m_air-m_h2o)/(ph2o-pair); \t\t\t #[cm**3]\n", + "density = m_air/V;\n", + "\n", + "# Results\n", + "print \" The density of coin is density = %.2f g/cm**3\"%(density);\n", + "print \" Consulting a handbook it is seen that this result is correct density for gold\";\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The density of coin is density = 17.15 g/cm**3\n", + " Consulting a handbook it is seen that this result is correct density for gold\n" + ] + } + ], + "prompt_number": 75 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.20 - Page No :318\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "P = 749./760; \t\t\t #[atm] - pressure\n", + "T = 21+273.15; \t\t #[K] - temperature\n", + "poak = 38*(1./62.4); \t #[g/cm**3] - density of oak\n", + "pbrass = 534/62.4; \t #[g/cm**3] - density of brass\n", + "m_brass = 6.7348; \t\t #[g]\n", + "pair = 0.001184; \t\t #[g/cm**3] - density of air\n", + "\n", + "# Calculations\n", + "# using the formula m_oak = m_brass*((1-(pair/pbrass))/(1-(pair/poak)))\n", + "m_oak = m_brass*((1-(pair/pbrass))/(1-(pair/poak)));\n", + "\n", + "# Results\n", + "print \" True mass of wood = %.3f g\"%(m_oak);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " True mass of wood = 6.747 g\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.21 - Page No :320\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "T = 545.67; \t\t\t #[degR] - temperature\n", + "R = 1545.; \t\t\t #[Torr*ft**3/degR*mole] - gas constant\n", + "M = 29.; \t\t\t #[g/mole] - molecular weight\n", + "g = 9.807; \t\t\t #[m/sec**2] - acceleration due to gravity\n", + "gc = 9.807; \n", + "po = 760.; \t\t\t #[Torr] - pressure\n", + "deltaz = 50.; \t\t\t #[ft]\n", + "\n", + "# Calculations\n", + "# using the equation p = po*exp(-(g/gc)*M*(deltaz/R*T))\n", + "p = po*math.e**(-(g/gc)*M*(deltaz/(R*T)));\n", + "\n", + "# Results\n", + "print \" p = %.1f Torr \\nThus, the pressure decrease for an elevation of 50ft is very small\"%(p);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " p = 758.7 Torr \n", + "Thus, the pressure decrease for an elevation of 50ft is very small\n" + ] + } + ], + "prompt_number": 78 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.22 - Page No :321\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "To = 545.67; \t\t\t #[degR] - air temperature at beach level\n", + "betaa = -0.00357; \t\t #[degR/ft] - constant\n", + "R = 1545.; \t\t\t #[Torr*ft**3/degR*mole] - gas constant\n", + "M = 29.;\n", + "deltaz = 25000.; \t\t #[ft]\n", + "po = 760. \n", + "\n", + "# Calculations\n", + "# using the equation ln(p/po) = ((M)/(R*betaa))*ln(To/(To+betaa*deltaz)\n", + "p = po*math.exp(((M)/(R*betaa))*math.log(To/(To+betaa*deltaz)));\n", + "\n", + "# Results\n", + "print \" Pressure = %.2f Torr\"%(p);\n", + "# using the equation T = To+betaa*deltaz\n", + "T = To+betaa*deltaz;\n", + "print \" Temperature = %.2f degR\"%(T);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure = 297.16 Torr\n", + " Temperature = 456.42 degR\n" + ] + } + ], + "prompt_number": 19 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/ch9.ipynb b/Transport_Phenomena:_A_Unified_Approach/ch9.ipynb new file mode 100755 index 00000000..9c828c2d --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/ch9.ipynb @@ -0,0 +1,204 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 9 : Agitation" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.3 - Page No :389\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "# Variables\n", + "Nblades = 4.; \t\t\t # no. of blades\n", + "d = 9/12.; \t\t\t #[ft] - diameter of the impeller\n", + "dt = 30/12.; \t\t\t #[ft] - diameter of the math.tank\n", + "Nbaffles = 4. \t\t\t # no. of baffles\n", + "h = 30.; \t \t\t # [inch] - height of unit\n", + "mu = 10.; \t\t\t #[cP] - vismath.cosity of fluid_\n", + "sg = 1.1; \t\t \t # specific gravity of fluid_\n", + "s = 300. \t\t\t #[rpm] - speed of agitator\n", + "CbyT = 0.3; \n", + "\n", + "# Calculations\n", + "V = (math.pi*dt**3)/4; \t #volume of math.tank in ft**3\n", + "V1 = V*7.48; \t\t\t #[gal] - volume of math.tank in gallons\n", + "mu = mu*(6.72*10**-4); #[lb/ft*sec]\n", + "p = sg*62.4; \t\t\t #[lb/ft**3] - density of fluid_\n", + "N = s/60.; \t\t\t #[rps] - impeller speed in revolutions per second\n", + "Nre = ((d**2)*N*p)/mu;\n", + "\n", + "# Results\n", + "print \"Nre = %.2e\"%Nre\n", + "print \" Therefore the agitator operates in the turbulent region\"\n", + "Npo = 1.62;\n", + "gc = 32.174;\n", + "P = (Npo*(p*(N**3)*(d**5)))/(gc*550);\n", + "Cf = 63025.;\n", + "Tq = (P/s)*Cf;\n", + "PbyV = P/V;\n", + "PbyV1 = P/V1;\n", + "TqbyV = Tq/V;\n", + "TqbyV1 = Tq/V1;\n", + "print \" The power per unit volume and the torque per unit volume is \\nP/V = %.2ef hp/ft**3 = %.2e \\\n", + "hp/gal \\nTq/V = %.2f in*lb/ft**3 = %.3f in*lb/gal\"%(PbyV,PbyV1,TqbyV,TqbyV1);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Nre = 2.87e+04\n", + " Therefore the agitator operates in the turbulent region\n", + " The power per unit volume and the torque per unit volume is \n", + "P/V = 1.52e-02f hp/ft**3 = 2.03e-03 hp/gal \n", + "Tq/V = 3.19 in*lb/ft**3 = 0.427 in*lb/gal\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.4 - Page No :391\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Tpilot = 30.;\n", + "Tlab = 10.;\n", + "N1 = 690.;\n", + "N2 = 271.;\n", + "D2 = 3.;\n", + "D1 = 1.;\n", + "\n", + "# Calculations\n", + "n = (math.log(N1/N2))/(math.log(D2/D1));\n", + "V = 12000/7.48; \t\t\t #[ft**3]\n", + "T = ((4.*V)/math.pi)**(1./3); \t\t\t #[ft]\n", + "R = 12.69/(30/12.);\n", + "N3 = N2*(1./R)**n; \t\t\t #[rpm] - impeller speed in the reactor\n", + "\n", + "# Results\n", + "print \"impeller speed in rpm = %f\"%round(N3,4)\n", + "D3 = 0.75*R; \t\t\t #[ft] - reactor impeller diameter\n", + "print \"reactor impeller diameter in ft = %.3f\"%D3\n", + "P = 0.1374*((N3/N2)**3)*(R**5);\n", + "print \"power in hp = %.3f\"%P\n", + "Cf = 63025.;\n", + "Tq = (P/N3)*Cf; \t\t\t #[inch*lb]\n", + "print \"torque in inch*lb = %.0f\"%Tq\n", + "print \"At this point, the design is complete. \\nA sarc ard size impeller would be chosen as \\\n", + " well as a tan ard size motor7.5 hp or 10 hp\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "impeller speed in rpm = 68.044500\n", + "reactor impeller diameter in ft = 3.807\n", + "power in hp = 7.329\n", + "torque in inch*lb = 6789\n", + "At this point, the design is complete. \n", + "A sarc ard size impeller would be chosen as well as a tan ard size motor7.5 hp or 10 hp\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.5 - Page No : 393\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "from numpy import *\n", + "\n", + "\n", + "# Variables\n", + "# given\n", + "n = array([0.5, 0.6, 0.7, 0.8, 0.9, 1.0]);\n", + "D2 = 3.806;\n", + "D1 = 0.25;\n", + "R = D2/D1;\n", + "N1 = 690.;\n", + "\n", + "# Calculations\n", + "N2 = N1*((D1/D2)**n);\n", + "P1 = 9.33*10**-3; \t\t\t #[hp]\n", + "P2 = P1*R**(5.-3*n);\n", + "\n", + "# Results\n", + "print \" n N,rpm P,hp\"\n", + "for i in range(6):\n", + " print \" %f %4.0f %4.0f\"%(n[i],N2[i],P2[i]);\n", + "\n", + "\n", + "# Answers may be differ because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " n N,rpm P,hp\n", + " 0.500000 177 128\n", + " 0.600000 135 57\n", + " 0.700000 103 25\n", + " 0.800000 78 11\n", + " 0.900000 60 5\n", + " 1.000000 45 2\n" + ] + } + ], + "prompt_number": 29 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Transport_Phenomena:_A_Unified_Approach/screenshots/asic_screenshot.png b/Transport_Phenomena:_A_Unified_Approach/screenshots/asic_screenshot.png Binary files differnew file mode 100755 index 00000000..d4548f2f --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/screenshots/asic_screenshot.png diff --git a/Transport_Phenomena:_A_Unified_Approach/screenshots/capillary.png b/Transport_Phenomena:_A_Unified_Approach/screenshots/capillary.png Binary files differnew file mode 100755 index 00000000..467a6fb1 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/screenshots/capillary.png diff --git a/Transport_Phenomena:_A_Unified_Approach/screenshots/eddy_viscosity.png b/Transport_Phenomena:_A_Unified_Approach/screenshots/eddy_viscosity.png Binary files differnew file mode 100755 index 00000000..72509529 --- /dev/null +++ b/Transport_Phenomena:_A_Unified_Approach/screenshots/eddy_viscosity.png |