summaryrefslogtreecommitdiff
path: root/Introduction_To_Chemical_Engineering/ch1.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Introduction_To_Chemical_Engineering/ch1.ipynb')
-rw-r--r--Introduction_To_Chemical_Engineering/ch1.ipynb900
1 files changed, 900 insertions, 0 deletions
diff --git a/Introduction_To_Chemical_Engineering/ch1.ipynb b/Introduction_To_Chemical_Engineering/ch1.ipynb
new file mode 100644
index 00000000..a09b75a5
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch1.ipynb
@@ -0,0 +1,900 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Introduction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.1 page number 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find composition of air by weight\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "y_oxygen = 0.21 #mole fraction of oxygen\n",
+ "y_nitrogen = 0.79 #mole fraction of nitrogen\n",
+ "molar_mass_oxygen = 32.\n",
+ "molar_mass_nitrogen = 28.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "molar_mass_air = y_oxygen*molar_mass_oxygen+y_nitrogen*molar_mass_nitrogen;\n",
+ "mass_fraction_oxygen =y_oxygen*molar_mass_oxygen/molar_mass_air;\n",
+ "mass_fraction_nitrogen = y_nitrogen*molar_mass_nitrogen/molar_mass_air;\n",
+ "\n",
+ "print \"mass fraction of oxygen = %f \"%(mass_fraction_oxygen)\n",
+ "print \"mass fraction of nitrogen = %f \"%(mass_fraction_nitrogen)\n",
+ "\n",
+ "V1 = 22.4 #in liters\n",
+ "P1 = 760. #in mm Hg\n",
+ "P2= 735.56 #in mm Hg\n",
+ "T1= 273. #in K\n",
+ "T2 = 298. #in K\n",
+ "\n",
+ "V2= (P1*T2*V1)/(P2*T1);\n",
+ "density = molar_mass_air/V2;\n",
+ "\n",
+ "print \"density = %f gm/l\"%(density)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass fraction of oxygen = 0.233010 \n",
+ "mass fraction of nitrogen = 0.766990 \n",
+ "density = 1.141558 gm/l\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.2 page number 20\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find the volume occupied by propane\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "mass_propane=14.2 #in kg\n",
+ "molar_mass=44 #in kg\n",
+ "\n",
+ "# Calculations\n",
+ "moles=(mass_propane*1000)/molar_mass;\n",
+ "volume=22.4*moles; #in liters\n",
+ "\n",
+ "# Results\n",
+ "print \"volume = %d liters\"%(volume)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 7229 liters\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.3 page number 20\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the average weight, weight composition, gas volume in absence of SO2\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "y_CO2 = 0.25;\n",
+ "y_CO = 0.002;\n",
+ "y_SO2 = 0.012;\n",
+ "y_N2 = 0.680;\n",
+ "y_O2 = 0.056;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Mm = y_CO2*44+y_CO*28+y_SO2*64+y_N2*28+y_O2*32;\n",
+ "print \" molar mass = %d \"%(Mm)\n",
+ "\n",
+ "print \" finding weight composition \"\n",
+ "w_CO2 = y_CO2*44*100/Mm;\n",
+ "print \" weight_CO2 = %f \"%(w_CO2)\n",
+ "w_CO = y_CO*28*100/Mm;\n",
+ "print \"weight_CO = %f \"%(w_CO)\n",
+ "w_SO2 = y_SO2*64*100/Mm;\n",
+ "print \"weight_SO2 = %f \"%( w_SO2)\n",
+ "w_N2 = y_N2*28*100/Mm;\n",
+ "print \"weight_N2 = %f \"%( w_N2)\n",
+ "w_O2 = y_O2*32*100/Mm;\n",
+ "print \"weight_O2 = %f \"%( w_O2)\n",
+ "\n",
+ "print \"if SO2 is removed \"\n",
+ "v_CO2 = 25;\n",
+ "v_CO = 0.2;\n",
+ "v_N2 = 68.0;\n",
+ "v_O2 = 5.6;\n",
+ "v = v_CO2+v_CO+v_N2+v_O2;\n",
+ "v1_CO2 = (v_CO2*100/98.8);\n",
+ "\n",
+ "print \"volume_CO2 = %f \"%( v1_CO2)\n",
+ "v1_CO = (v_CO*100/98.8);\n",
+ "print \"volume_CO = %f \"%(v1_CO)\n",
+ "v1_N2 = (v_N2*100/98.8);\n",
+ "print \"volume_N2 = %f \"%(v1_N2)\n",
+ "v1_O2 = (v_O2*100/98.8);\n",
+ "print \"volume_O2 = %f \"%(v1_O2 )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molar mass = 32 \n",
+ " finding weight composition \n",
+ " weight_CO2 = 33.684468 \n",
+ "weight_CO = 0.171485 \n",
+ "weight_SO2 = 2.351788 \n",
+ "weight_N2 = 58.304753 \n",
+ "weight_O2 = 5.487506 \n",
+ "if SO2 is removed \n",
+ "volume_CO2 = 25.303644 \n",
+ "volume_CO = 0.202429 \n",
+ "volume_N2 = 68.825911 \n",
+ "volume_O2 = 5.668016 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.4 page number 24\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find volume of NH3 dissolvable in water\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "p=1. #atm\n",
+ "H=2.7 #atm\n",
+ "\n",
+ "# Calculations and Results\n",
+ "x=p/H;\n",
+ "\n",
+ "mole_ratio = (x)/(1-x);\n",
+ "moles_of_water=(100*1000)/18.;\n",
+ "moles_of_NH3=mole_ratio*moles_of_water;\n",
+ "\n",
+ "print \"moles of NH3 dissolved = %f\"%(moles_of_NH3)\n",
+ "\n",
+ "volume_NH3=(moles_of_NH3*22.4*293)/273;\n",
+ "print \"volume of NH3 dissolved = %f liters\"%(volume_NH3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "moles of NH3 dissolved = 3267.973856\n",
+ "volume of NH3 dissolved = 78565.443271 liters\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.5 page number 24\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to calculate amount of CO2 released by water\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "p=746 #in mm Hg\n",
+ "H=1.08*10**6 #in mm Hg, Henry's constant\n",
+ "\n",
+ "# Calculations\n",
+ "x= p/H; #mole fraction of CO2\n",
+ "X=x*(44./18); #mass ratio of CO2 in water\n",
+ "\n",
+ "initial_CO2 = 0.005; #kg CO2/kg H20\n",
+ "G=1000*(initial_CO2-X);\n",
+ "\n",
+ "# Results\n",
+ "print \"CO2 given up by 1 cubic meter of water = %f kg CO2/cubic meter H20\"%(G)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CO2 given up by 1 cubic meter of water = 3.311523 kg CO2/cubic meter H20\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.6 page number 27 \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find vapor pressre of ethyl alchohal\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "pa1 = 23.6; #VP of ethyl alchohal at 10 degree C\n",
+ "pa3=760. #VP of ethyl alchohal at 78.3 degree C in mm Hg\n",
+ "pb1 = 9.2 #VP of ethyl water at 10 degree C in mm Hg\n",
+ "pb3=332. #VP of ethyl water at 78.3 degree C in mm Hg\n",
+ "\n",
+ "# Calculations\n",
+ "C=(math.log10(pa1/pa3)/(math.log10(pb1/pb3)));\n",
+ "\n",
+ "pb2=149. #VP of water at 60 degree C in mm Hg\n",
+ "\n",
+ "pas=(pb3/pb2);\n",
+ "pa=C*math.log10(pas);\n",
+ "pa2=pa3/(10**pa);\n",
+ "\n",
+ "# Results\n",
+ "print \"vapor pressure of ethyl alcholoh at 60 degree C = %f mm Hg\"%(pa2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vapor pressure of ethyl alcholoh at 60 degree C = 349.872551 mm Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.7 page number 28 \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find vapor pressure using duhring plot\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "t1 = 41. #in degree C\n",
+ "t2=59. #in degree C\n",
+ "theta_1 =83. #in degree C\n",
+ "theta_2=100. #in degree C\n",
+ "\n",
+ "# Calculations\n",
+ "K = (t1-t2)/(theta_1-theta_2);\n",
+ "t=59+(K*(104.2-100));\n",
+ "\n",
+ "# Results\n",
+ "print \"boiling point of SCl2 at 880 Torr = %f degree celcius\"%(t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "boiling point of SCl2 at 880 Torr = 63.447059 degree celcius\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.8 page number 29\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the amount of steam released\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "vp_C6H6 = 520. #in torr\n",
+ "vp_H2O = 225. #in torr\n",
+ "mass_water=18.\n",
+ "mass_benzene=78.\n",
+ "\n",
+ "# Calculations\n",
+ "amount_of_steam = (vp_H2O/vp_C6H6)/(mass_benzene/mass_water);\n",
+ "\n",
+ "# Results\n",
+ "print \"amount of steam = %f\"%( amount_of_steam)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of steam = 0.099852\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.9 page number 30\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find equilibrium vapor liquid composition\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "p0b = 385. #vapor pressue of benzene at 60 degree C in torr\n",
+ "p0t=140. #vapor pressue of toluene at 60 degree C in torr\n",
+ "xb=0.4;\n",
+ "xt=0.6;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "pb=p0b*xb;\n",
+ "pt=p0t*xt;\n",
+ "P=pb+pt;\n",
+ "\n",
+ "print \"total pressure = %.0f torr\"%(P)\n",
+ "\n",
+ "yb=pb/P;\n",
+ "yt=pt/P;\n",
+ "print \"vapor composition of benzene = %f vapor composition of toluene = %f\"%(yb,yt)\n",
+ "\n",
+ "#for liquid boiling at 90 degree C and 760 torr, liquid phase composition\n",
+ "x=(760.-408)/(1013-408);\n",
+ "#(1013*x)+(408*(1-x))==760;\n",
+ "print \"mole fraction of benzene in liquid mixture = %.3f mole fraction of toluene in liquid mixture= %.3f\"%(x,1-x)\n",
+ "print \"Thus, the liquid mixture contained %.1f mole %% benzene and %.1f mole %% toluene\"%(x*100,(1-x)*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure = 238 torr\n",
+ "vapor composition of benzene = 0.647059 vapor composition of toluene = 0.352941\n",
+ "mole fraction of benzene in liquid mixture = 0.582 mole fraction of toluene in liquid mixture= 0.418\n",
+ "Thus, the liquid mixture contained 58.2 mole % benzene and 41.8 mole % toluene\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.10 page number 33\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find relation between friction factor and reynold's number\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#math.log f=y, math.log Re=x, math.log a=c\n",
+ "sigma_x=23.393;\n",
+ "sigma_y=-12.437;\n",
+ "sigma_x2=91.456\n",
+ "sigma_xy=-48.554;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "m=((6*sigma_xy)-(sigma_x*sigma_y))/(6*sigma_x2-(sigma_x)**2);\n",
+ "print \"m = %f \"%(m)\n",
+ "\n",
+ "c=((sigma_x2*sigma_y)-(sigma_xy*sigma_x))/(6*sigma_x2-(sigma_x)**2);\n",
+ "print \"c = %f \"%(c)\n",
+ "\n",
+ "print \"f=0.084*Re**-0.256\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m = -0.256233 \n",
+ "c = -1.073825 \n",
+ "f=0.084*Re**-0.256\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.11 page number 35\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the average velocity\n",
+ "\n",
+ "import math\n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import * \n",
+ "\n",
+ "%pylab inline\n",
+ "\n",
+ "# Variables\n",
+ "u = array([2,1.92,1.68,1.28,0.72,0]);\n",
+ "r = array([0,1,2,3,4,5]);\n",
+ "\n",
+ "# Calculations\n",
+ "z = u*r;\n",
+ "plot(r,z)\n",
+ "suptitle(\"variation of ur with r\")\n",
+ "xlabel(\"r\")\n",
+ "ylabel(\"ur\")\n",
+ "show()\n",
+ "#by graphical integration, we get\n",
+ "u_avg = (2./25)*12.4\n",
+ "\n",
+ "# Results\n",
+ "print \"average velocity = %f cm/s\"%(u_avg)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['draw_if_interactive', 'new_figure_manager']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nFOT/AdQ5DLwCjsLdAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2575250>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average velocity = 0.992000 cm/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.12 page number 37\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the average velocity\n",
+ "\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "n = 6.;\n",
+ "h = (3. - 0)/n;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I = (h/2.)*(0+2*0.97+2*1.78+2*2.25+2*2.22+2*1.52+0);\n",
+ "u_avg = (2./3**2)*I;\n",
+ "\n",
+ "print \"average velocity = %f cm/s\"%(u_avg)\n",
+ "\n",
+ "print ('Simpsons rule')\n",
+ "\n",
+ "n = 6.;\n",
+ "h = 3./n;\n",
+ "I = (h/3)*(0+4*(0.97+2.25+1.52)+2*(1.78+2.22)+0);\n",
+ "u_avg = (2./3**2)*I;\n",
+ "\n",
+ "print \"average velocity = %f cm/s\"%(u_avg)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average velocity = 0.971111 cm/s\n",
+ "Simpsons rule\n",
+ "average velocity = 0.998519 cm/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.13 page number 38\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the settling velocity as a function of time\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "z0 = 30.84;\n",
+ "z1 = 29.89;\n",
+ "z2 = 29.10;\n",
+ "h = 4;\n",
+ "\n",
+ "# Calculations\n",
+ "u1_t0 = (-3*z0+4*z1-z2)/(2*h);\n",
+ "u1_t4 = (-z0+z2)/(2*h);\n",
+ "u1_t8 = (z0-4*z1+3*z2)/(2*h);\n",
+ "\n",
+ "#considering data set for t = 4,8,12 min\n",
+ "z0 = 29.89;\n",
+ "z1 = 29.10;\n",
+ "z2 = 28.30;\n",
+ "u2_t4 = (-3*z0+4*z1-z2)/(2*h);\n",
+ "u2_t8 = (-z0+z2)/(2*h);\n",
+ "u2_t12 = (z0-4*z1+3*z2)/(2*h);\n",
+ "\n",
+ "#considering data set for t = 8,12,16 min\n",
+ "z0 = 29.10;\n",
+ "z1 = 28.30;\n",
+ "z2 = 27.50;\n",
+ "u3_t8 = (-3*z0+4*z1-z2)/(2*h);\n",
+ "u3_t12 = (-z0+z2)/(2*h);\n",
+ "u3_t16 = (z0-4*z1+3*z2)/(2*h);\n",
+ "\n",
+ "#taking average\n",
+ "u_t4 = (u1_t4+u2_t4)/2;\n",
+ "u_t8 = (u1_t8+u2_t8+u3_t8)/3;\n",
+ "u_t12 = (u2_t12+u3_t12)/2;\n",
+ "\n",
+ "# Results\n",
+ "print \"u_t0 = %f cm/min u_t4 = %f cm/min u_t8 = %f cm/min u_t12 = %f/n cm/min u_t16 =%f/n cm/min \"%(u1_t0,u_t4,u_t8,u_t12,u3_t16)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "u_t0 = -0.257500 cm/min u_t4 = -0.206875 cm/min u_t8 = -0.192083 cm/min u_t12 = -0.200625/n cm/min u_t16 =-0.200000/n cm/min \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.16 page number 49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flow rate and pressure drop\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "density_water=988. #in kg/m3\n",
+ "viscosity_water=55.*10**-5 #in Ns/m2\n",
+ "density_air=1.21 #in kg/m3\n",
+ "viscosity_air=1.83*10**-5 #in Ns/m2\n",
+ "L=1 #length in m\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "L1=10.*L #length in m\n",
+ "Q=0.0133;\n",
+ "\n",
+ "Q1=((Q*density_water*viscosity_air*L)/(L1*viscosity_water*density_air))\n",
+ "\n",
+ "print \"flow rate = %f cubic meter/s\"%(Q1)\n",
+ "\n",
+ "#equating euler number\n",
+ "\n",
+ "p=9.8067*10**4; #pressure in pascal\n",
+ "p1=(p*density_water*Q**2*L**4)/(density_air*Q1**2*L1**4);\n",
+ "\n",
+ "print \"pressure drop corresponding to 1kp/square cm = %f kP/square cm\"%(p1/p)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flow rate = 0.036134 cubic meter/s\n",
+ "pressure drop corresponding to 1kp/square cm = 0.011062 kP/square cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.17 page number 50\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the specific gravity of plasstic\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "L=1. #length of prototype in m\n",
+ "L1=10*L #length of model in m\n",
+ "density_prototype=2.65 #gm/cc\n",
+ "density_water=1. #gm/cc\n",
+ "\n",
+ "# Calculations\n",
+ "density_model=(L**3*(density_prototype-density_water))/(L1**3)+1;\n",
+ "\n",
+ "# Results\n",
+ "print \"specific gravity of plastic = %f\"%(density_model)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "specific gravity of plastic = 1.001650\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.18 page number 53\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find error in actual data and nomographic chat value\n",
+ "\n",
+ "import math \n",
+ "from numpy import linspace\n",
+ "from matplotlib.pyplot import *\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "#for my\n",
+ "ly = 8 #in cm\n",
+ "my = ly/((1/0.25) - (1/0.5));\n",
+ "lz = 10.15 #in cm\n",
+ "\n",
+ "# Calculations and Results\n",
+ "mz = lz/((1./2.85) - (1/6.76));\n",
+ "mx = (my*mz)/(my+mz);\n",
+ "print \"mx = %f cm\"%(mx)\n",
+ "err = ((1-0.9945)/0.9945)*100;\n",
+ "print \"error = %f \"%(err)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mx = 3.703774 cm\n",
+ "error = 0.553042 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 1.19 page number 54\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the economic pipe diameter from nomograph\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#from the nomograph,we get the values of w and density\n",
+ "w=450. #in kg/hr\n",
+ "density=1000. #in kg/m3\n",
+ "d=16. #in mm\n",
+ "\n",
+ "# Calculations\n",
+ "u=(w/density)/(3.14*d**2/4);\n",
+ "Re=u*density*d/0.001;\n",
+ "\n",
+ "# Results\n",
+ "if Re>2100:\n",
+ " print \"flow is turbulent and d= %f mm\"%(d)\n",
+ "else:\n",
+ " print (\"flow is laminar and this nomograph is not valid\")\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flow is turbulent and d= 16.000000 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file