summaryrefslogtreecommitdiff
path: root/Introduction_To_Chemical_Engineering
diff options
context:
space:
mode:
authorJovina Dsouza2014-06-18 12:43:07 +0530
committerJovina Dsouza2014-06-18 12:43:07 +0530
commit206d0358703aa05d5d7315900fe1d054c2817ddc (patch)
treef2403e29f3aded0caf7a2434ea50dd507f6545e2 /Introduction_To_Chemical_Engineering
parentc6f0d6aeb95beaf41e4b679e78bb42c4ffe45a40 (diff)
downloadPython-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.tar.gz
Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.tar.bz2
Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.zip
adding book
Diffstat (limited to 'Introduction_To_Chemical_Engineering')
-rw-r--r--Introduction_To_Chemical_Engineering/README.txt10
-rw-r--r--Introduction_To_Chemical_Engineering/ch1.ipynb900
-rw-r--r--Introduction_To_Chemical_Engineering/ch2.ipynb1550
-rw-r--r--Introduction_To_Chemical_Engineering/ch3.ipynb1587
-rw-r--r--Introduction_To_Chemical_Engineering/ch4.ipynb916
-rw-r--r--Introduction_To_Chemical_Engineering/ch5.ipynb842
-rw-r--r--Introduction_To_Chemical_Engineering/ch6.ipynb866
-rw-r--r--Introduction_To_Chemical_Engineering/ch7.ipynb417
-rw-r--r--Introduction_To_Chemical_Engineering/ch8.ipynb472
-rw-r--r--Introduction_To_Chemical_Engineering/ch9.ipynb219
-rw-r--r--Introduction_To_Chemical_Engineering/screenshots/pic11.pngbin0 -> 123848 bytes
-rw-r--r--Introduction_To_Chemical_Engineering/screenshots/pic22.pngbin0 -> 133387 bytes
-rw-r--r--Introduction_To_Chemical_Engineering/screenshots/pic33.pngbin0 -> 133230 bytes
13 files changed, 7779 insertions, 0 deletions
diff --git a/Introduction_To_Chemical_Engineering/README.txt b/Introduction_To_Chemical_Engineering/README.txt
new file mode 100644
index 00000000..4b3c548b
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Vaibhav Shah
+Course: mca
+College/Institute/Organization: IIT
+Department/Designation: Developer
+Book Title: Introduction To Chemical Engineering
+Author: S. K. Ghoshal, S. K. Sanyal And S. Datta
+Publisher: Tata McGraw Hill Education Pvt. Ltd., New Delhi
+Year of publication: 2006
+Isbn: 0-07-460140-7
+Edition: 1 \ No newline at end of file
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
diff --git a/Introduction_To_Chemical_Engineering/ch2.ipynb b/Introduction_To_Chemical_Engineering/ch2.ipynb
new file mode 100644
index 00000000..7f49d9ae
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch2.ipynb
@@ -0,0 +1,1550 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Physico Chemical Calculations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.1 page number 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the volume of oxygen that can be obtained\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "p1=15. #in bar\n",
+ "p2=1.013 #in bar\n",
+ "t1=283. #in K\n",
+ "t2=273. #in K\n",
+ "v1=10. #in l\n",
+ "\n",
+ "# Calculations\n",
+ "v2=p1*v1*t2/(t1*p2);\n",
+ "\n",
+ "# Results\n",
+ "print \"volume of oxygen = %f liters\"%(v2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of oxygen = 142.842692 liters\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.2 page number 71\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find volumetric composition,partial pressue of each gas and total pressure of mixture\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "nCO2 = 2./44; #moles of CO2\n",
+ "nO2 = 4./32; #moles of O2\n",
+ "nCH4 = 1.5/16; #moles of CH4\n",
+ "\n",
+ "# Calculations and Results\n",
+ "total_moles = nCO2+nO2+nCH4;\n",
+ "yCO2 = nCO2/total_moles;\n",
+ "yO2 = nO2/total_moles;\n",
+ "yCH4 = nCH4/total_moles;\n",
+ "\n",
+ "print \" Composition of mixture = CH4 = %f O2 = %f CO2 = %f \"%(yCH4,yO2,yCO2)\n",
+ "\n",
+ "pCO2=nCO2*8.314*273/(6*10**-3);\n",
+ "pO2=nO2*8.314*273/(6*10**-3);\n",
+ "pCH4=nCH4*8.314*273/(6*10**-3);\n",
+ "\n",
+ "print \"pressure of CH4 = %f kPa pressure of O2 = %f kPa pressure of CO2 =%f kPa\"%(pCH4*10**-3,pO2*10**-3,pCO2*10**-3)\n",
+ "\n",
+ "total_pressure=pCO2+pCH4+pO2;\n",
+ "print \"total pressure = %f Kpa\"%(total_pressure*10**-3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Composition of mixture = CH4 = 0.354839 O2 = 0.473118 CO2 = 0.172043 \n",
+ "pressure of CH4 = 35.464406 kPa pressure of O2 = 47.285875 kPa pressure of CO2 =17.194864 kPa\n",
+ "total pressure = 99.945145 Kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.3 page number 72\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find equivalent mass of metal\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P=104.3 #total pressure in KPa\n",
+ "pH2O=2.3 #in KPa\n",
+ "pH2=P-pH2O; #in KPa\n",
+ "\n",
+ "# Calculations and Results\n",
+ "VH2=209*pH2*273/(293*101.3)\n",
+ "\n",
+ "print \"volume of hydrogen obtained = %f ml\"%(VH2)\n",
+ "\n",
+ "#calculating amount of metal having 11.2l of hydrogen\n",
+ "\n",
+ "m=350/196.08*11.2 #mass of metal in grams\n",
+ "print \"mass of metal equivalent to 11.2 litre/mol of hydrogen = %f gm\"%(m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of hydrogen obtained = 196.079432 ml\n",
+ "mass of metal equivalent to 11.2 litre/mol of hydrogen = 19.991840 gm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.4 page number 72\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find NaCl content in NaOH solution\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "w=2 #in gm\n",
+ "m=0.287 #in gm\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#precipitate from 58.5gm of NaCl=143.4gm\n",
+ "mNaCl=58.5/143.4*m;\n",
+ "\n",
+ "print \"mass of NaCl = %f gm\"%(mNaCl )\n",
+ "\n",
+ "percentage_NaCl=mNaCl/w*100;\n",
+ "print \"amount of NaCl = %f\"%(percentage_NaCl)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of NaCl = 0.117082 gm\n",
+ "amount of NaCl = 5.854079\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.5 page number 72\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the carbon content in sample\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "w=4.73 #in gm5\n",
+ "VCO2=5.30 #in liters\n",
+ "\n",
+ "# Calculations\n",
+ "weight_CO2=44/22.4*VCO2;\n",
+ "carbon_content=12./44*weight_CO2;\n",
+ "percentage_content=(carbon_content/w)*100;\n",
+ "\n",
+ "# Results\n",
+ "print \"percentage amount of carbon in sample = %f\"%(percentage_content)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage amount of carbon in sample = 60.027182\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.6 page number 73\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the volume of air\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "volume_H2=0.5 #in m3\n",
+ "volume_CH4=0.35 #in m3\n",
+ "volume_CO=0.08 #in m3\n",
+ "volume_C2H4=0.02 #in m3\n",
+ "volume_oxygen=0.21 #in m3 in air\n",
+ "\n",
+ "# Calculations\n",
+ "#required oxygen for various gases\n",
+ "H2=0.5*volume_H2;\n",
+ "CH4=2*volume_CH4;\n",
+ "CO=0.5*volume_CO;\n",
+ "C2H4=3*volume_C2H4;\n",
+ "\n",
+ "total_O2=H2+CH4+CO+C2H4;\n",
+ "oxygen_required=total_O2/volume_oxygen;\n",
+ "\n",
+ "# Results\n",
+ "print \"amount of oxygen required = %f cubic meter\"%(oxygen_required)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of oxygen required = 5.000000 cubic meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.7 page number 73\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the volume of sulphuric acid and mass of water consumed\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "density_H2SO4 = 1.10 #in g/ml\n",
+ "mass_1 = 100*density_H2SO4; #mass of 100ml of 15% solution\n",
+ "mass_H2SO4 = 0.15*mass_1;\n",
+ "density_std = 1.84 #density of 96% sulphuric acid\n",
+ "mass_std = 0.96*density_std; #mass of H2SO4 in 1ml 96% H2SO4\n",
+ "\n",
+ "# Calculations\n",
+ "volume_std = mass_H2SO4/mass_std; #volume of 96%H2SO4\n",
+ "mass_water = mass_1 - mass_H2SO4;\n",
+ "\n",
+ "# Results\n",
+ "print \"volume of 0.96 H2SO4 required = %f ml\"%(volume_std)\n",
+ "print \"mass of water required = %f g\"%(mass_water)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of 0.96 H2SO4 required = 9.341033 ml\n",
+ "mass of water required = 93.500000 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.8 page number 73\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find molarity,molality and normality\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "w_H2SO4=0.15 #in gm/1gm solution\n",
+ "density=1.10 #in gm/ml\n",
+ "m=density*1000; #mass per liter\n",
+ "weight=m*w_H2SO4; #H2SO4 per liter solution\n",
+ "molar_mass=98;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Molarity=weight/molar_mass;\n",
+ "print \"Molarity = %f mol/l\"%(Molarity)\n",
+ "\n",
+ "equivalent_mass=49;\n",
+ "normality=weight/equivalent_mass;\n",
+ "print \"Normality = %f N\"%(normality)\n",
+ "\n",
+ "molality=176.5/molar_mass;\n",
+ "print \"Molality = %f\"%(molality)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molarity = 1.683673 mol/l\n",
+ "Normality = 3.367347 N\n",
+ "Molality = 1.801020\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.9 page number 74\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find normality\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "molar_mass_BaCl2=208.3; #in gm\n",
+ "equivalent_H2SO4=0.144;\n",
+ "\n",
+ "# Calculations\n",
+ "normality=equivalent_H2SO4*1000/28.8;\n",
+ "\n",
+ "# Results\n",
+ "print \"Normality = %f N\"%(normality)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normality = 5.000000 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.10 page number 74\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find amount of KClO3 precipitated\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "solubility_70=30.2 #in gm/100gm\n",
+ "w_solute=solubility_70*350/130.2; #in gm\n",
+ "\n",
+ "# Calculations\n",
+ "w_water=350-w_solute;\n",
+ "solubility_30=10.1 #in gm/100gm\n",
+ "precipitate=(solubility_70-solubility_30)*w_water/100\n",
+ "\n",
+ "# Results\n",
+ "print \"amount precipitated = %f gm\"%(precipitate)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount precipitated = 54.032258 gm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.11 page number 74\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the pressure for solubility of CO2\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "absorbtion_coefficient=1.71 #in liters\n",
+ "molar_mass=44;\n",
+ "\n",
+ "# Calculations\n",
+ "solubility=absorbtion_coefficient*molar_mass/22.4; #in gm\n",
+ "pressure=8/solubility*101.3;\n",
+ "\n",
+ "# Results\n",
+ "print \"pressure required = %f kPa\"%(pressure)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure required = 241.267411 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.12 page number 74\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the vapor pressure of water\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "w_water=540. #in gm\n",
+ "w_glucose=36. #in gm\n",
+ "m_water=18.; #molar mass of water\n",
+ "m_glucose=180.; #molar mass of glucose\n",
+ "\n",
+ "# Calculations\n",
+ "x=(w_water/m_water)/(w_water/m_water+w_glucose/m_glucose);\n",
+ "p=8.2*x;\n",
+ "depression=8.2-p;\n",
+ "\n",
+ "# Results\n",
+ "print \"depression in vapor pressure = %f Pa\"%(depression*1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depression in vapor pressure = 54.304636 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.13 page number 75\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the boiling point of solution\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "w_glucose=9. #in gm\n",
+ "w_water=100. #in gm\n",
+ "E=0.52;\n",
+ "m=90/180.; #moles/1000gm water\n",
+ "\n",
+ "# Calculations\n",
+ "delta_t=E*m;\n",
+ "boiling_point=100+delta_t;\n",
+ "\n",
+ "# Results\n",
+ "print \"boiling_point of water = %f degreeC\"%(boiling_point)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "boiling_point of water = 100.260000 degreeC\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.14 page number 75\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the molar mass and osmotic pressure\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "K=1.86;\n",
+ "c=15 #concentration of alcohol\n",
+ "delta_t=10.26;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "m=delta_t/K; #molality\n",
+ "M=c/(m*85); #molar mass\n",
+ "print \"molar mass = %f gm\"%(M*1000)\n",
+ "\n",
+ "density=0.97 #g/ml\n",
+ "cm=c*density/(M*100);\n",
+ "print \"molar concentration of alcohol = %f moles/l\"%(cm)\n",
+ "\n",
+ "p=cm*8.314*293 #osmotic pressure\n",
+ "print \"osmotic pressure = %f Mpa\"%(p/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molar mass = 31.991744 gm\n",
+ "molar concentration of alcohol = 4.548048 moles/l\n",
+ "osmotic pressure = 11.079055 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.15 page number 75\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find u_in, M_v, k'\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "u_in = 0.575 #from the graph\n",
+ "u_s = 0.295 #in mPa-s\n",
+ "\n",
+ "# Calculations\n",
+ "M_v = (u_in/(5.80*10**-5))**(1/0.72);\n",
+ "u_red = 0.628; #in dl/g\n",
+ "\n",
+ "c = 0.40 #in g/dl\n",
+ "k = (u_red-u_in)/((u_in**2)*c);\n",
+ "\n",
+ "# Results\n",
+ "print \"k = %f Mv = %fu_in = %f dl/gm\"%(k,M_v,u_in)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "k = 0.400756 Mv = 355085.654054u_in = 0.575000 dl/gm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.16 page number 76\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the molecular formula\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "C=54.5 #% of carbon\n",
+ "H2=9.1 #% of hydrogen\n",
+ "O2=36.4 #% of oxygen\n",
+ "x=C/12.; #number of carbon molecules\n",
+ "y=O2/16.; #number of oxygen molecules\n",
+ "z=H2/2. #number of hydrogen molecules\n",
+ "molar_mass=88.;\n",
+ "density=44.;\n",
+ "\n",
+ "# Calculations\n",
+ "ratio=molar_mass/density;\n",
+ "x=ratio*2;\n",
+ "y=ratio*1;\n",
+ "z=ratio*4;\n",
+ "\n",
+ "# Results\n",
+ "print \"x = %f y = %f z = %f\"%(x,y,z)\n",
+ "print \"formula of butyric acid is = C4H8O2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 4.000000 y = 2.000000 z = 8.000000\n",
+ "formula of butyric acid is = C4H8O2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.17 page number 77\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find molecular foemula \n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "C=93.75 #% of carbon\n",
+ "H2=6.25 #% of hydrogen\n",
+ "x=C/12 #number of carbon atoms\n",
+ "y=H2/2 #number of hydrogen atoms\n",
+ "molar_mass=64\n",
+ "density=4.41*29;\n",
+ "\n",
+ "# Calculations\n",
+ "ratio=density/molar_mass;\n",
+ "x=round(ratio*5);\n",
+ "y=round(ratio*4);\n",
+ "\n",
+ "# Results\n",
+ "print \"x = %f y = %f\"%(x,y)\n",
+ "print \"formula of butyric acid is = C10H8\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 10.000000 y = 8.000000\n",
+ "formula of butyric acid is = C10H8\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.18 page number 77\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find molecular formula\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "C=50.69 #% of carbon\n",
+ "H2=4.23 #% of hydrogen\n",
+ "O2=45.08 #% of oxygen\n",
+ "a=C/12; #number of carbon molecules\n",
+ "c=O2/16; #number of oxygen molecules\n",
+ "b=H2/2; #number of hydrogen molecules\n",
+ "molar_mass=71;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "def f(m):\n",
+ " return (2.09*1000)/(60*m);\n",
+ "\n",
+ "\n",
+ "M=f((1.25/5.1));\n",
+ "\n",
+ "print \"actual molecular mass = %f\"%(M)\n",
+ "\n",
+ "ratio=M/molar_mass;\n",
+ "a=round(ratio*3);\n",
+ "b=round(ratio*3);\n",
+ "c=round(ratio*2);\n",
+ "\n",
+ "print \"a = %d, b = %d, c = %d\"%(a,b,c)\n",
+ "print \"M = %.1f g/mol\"%M\n",
+ "print \"formula of butyric acid is = C6H6O4\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "actual molecular mass = 142.120000\n",
+ "a = 6, b = 6, c = 4\n",
+ "M = 142.1 g/mol\n",
+ "formula of butyric acid is = C6H6O4\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.19 page number 78\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the molecular formula\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "C=64.6 #% of carbon\n",
+ "H2=5.2 #% of hydrogen\n",
+ "O2=12.6 #% of oxygen\n",
+ "N2=8.8 #% of nitrogen\n",
+ "Fe=8.8 #% of iron\n",
+ "\n",
+ "# Calculations\n",
+ "a=C/12; #number of carbon molecules\n",
+ "c=8.8/14; #number of nitrogen molecules\n",
+ "b=H2; #number of hydrogen molecules\n",
+ "d=O2/16; #number of oxygen molecules\n",
+ "e=Fe/56 #number of iron atoms\n",
+ "\n",
+ "cm=243.4/(8.31*293) #concentration\n",
+ "\n",
+ "molar_mass=63.3/cm;\n",
+ " \n",
+ "# Results \n",
+ "print \"a = %d, b = %d, c = %d, d = %d, e = %d\"%(a*6.5,b*6.5,c*6.5,d*6.5,e*6.5)\n",
+ "print \"formula of butyric acid is = C34H33N4O5Fe\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a = 34, b = 33, c = 4, d = 5, e = 1\n",
+ "formula of butyric acid is = C34H33N4O5Fe\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.20 page number 78\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find sequence of deposition\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "E1=-0.25;\n",
+ "E2=0.80;\n",
+ "E3=0.34;\n",
+ "\n",
+ "# Calculations\n",
+ "a=[E1,E2,E3];\n",
+ "sorted(a)\n",
+ "\n",
+ "# Results\n",
+ "print \"sorted potential in volts =\"\n",
+ "print (a)\n",
+ "print (\"E2>E3>E1\")\n",
+ "print (\"silver>copper>nickel\")\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "sorted potential in volts =\n",
+ "[-0.25, 0.8, 0.34]\n",
+ "E2>E3>E1\n",
+ "silver>copper>nickel\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.21 page number 79\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the emf of cell\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "E0_Zn=-0.76;\n",
+ "E0_Pb=-0.13;\n",
+ "c_Zn=0.1;\n",
+ "c_Pb=0.02;\n",
+ "\n",
+ "# Calculations\n",
+ "E_Zn=E0_Zn+(0.059/2)*math.log10(c_Zn);\n",
+ "E_Pb=E0_Pb+(0.059/2)*math.log10(c_Pb);\n",
+ "E=E_Pb-E_Zn;\n",
+ "\n",
+ "# Results\n",
+ "print \"emf of cell = %f V\"%(E)\n",
+ "print \"Since potential of lead is greater than that of zinc thus reduction will occur at\\\n",
+ " lead electrode and oxidation will occur at zinc electrode\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "emf of cell = 0.609380 V\n",
+ "Since potential of lead is greater than that of zinc thus reduction will occur at lead electrode and oxidation will occur at zinc electrode\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.22 page number 79\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the emf of cell\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "E0_Ag=0.80;\n",
+ "E0_AgNO3=0.80;\n",
+ "c_Ag=0.001;\n",
+ "c_AgNO3=0.1;\n",
+ "\n",
+ "# Calculations\n",
+ "E_Ag=E0_Ag+(0.059)*math.log10(c_Ag);\n",
+ "E_AgNO3=E0_AgNO3+(0.059)*math.log10(c_AgNO3);\n",
+ "E=E_AgNO3-E_Ag;\n",
+ "\n",
+ "# Results\n",
+ "print \"emf of cell = %f V\" %(E)\n",
+ "print \"since E is positive, the left hand electrode will be anode and\\\n",
+ " the electron will travel in the external circuit from the left hand to the right hand electrode\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "emf of cell = 0.118000 V\n",
+ "since E is positive, the left hand electrode will be anode and the electron will travel in the external circuit from the left hand to the right hand electrode\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.23 page number 79\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find emf of cell\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "pH=12; #pH of solution\n",
+ "E_H2=0;\n",
+ "\n",
+ "# Calculations\n",
+ "E2=-0.059*pH;\n",
+ "E=E_H2-E2;\n",
+ "\n",
+ "# Results\n",
+ "print \"EMF of cell = %f V\"%(E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "EMF of cell = 0.708000 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.24 page number 80\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find amount of silver deposited\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I=3 #in Ampere\n",
+ "t=900 #in s\n",
+ "m_eq=107.9 #in gm/mol\n",
+ "F=96500;\n",
+ "\n",
+ "# Calculations\n",
+ "m=(I*t*m_eq)/F;\n",
+ "\n",
+ "# Results\n",
+ "print \"mass = %f gm\"%(m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass = 3.018964 gm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.25 page number 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the time for electroplating\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "volume=10*10*0.005; #in cm3\n",
+ "mass=volume*8.9;\n",
+ "F=96500;\n",
+ "atomic_mass=58.7 #in amu\n",
+ "current=2.5 #in Ampere\n",
+ "\n",
+ "# Calculations\n",
+ "charge=(8.9*F*2)/atomic_mass;\n",
+ "yield_=0.95;\n",
+ "actual_charge=charge/(yield_*3600);\n",
+ "t=actual_charge/current;\n",
+ "\n",
+ "# Results\n",
+ "print \"time required = %f hours\"%(t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required = 3.422497 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.26 page number 80\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find hardness of water\n",
+ "\n",
+ "# Variables\n",
+ "m_MgSO4=90. #in ppm\n",
+ "MgSO4_parts=120.;\n",
+ "CaCO3_parts=100.;\n",
+ "\n",
+ "# Calculations\n",
+ "hardness=(CaCO3_parts/MgSO4_parts)*m_MgSO4;\n",
+ "\n",
+ "# Results\n",
+ "print \"hardness of water = %f mg/l\"%(hardness)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hardness of water = 75.000000 mg/l\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.27 page number 81\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''\n",
+ "calculate\n",
+ "i) the temporary and total hardness of the sample\n",
+ "ii) the amounts of lime and soda needed for softening of 1 l of the sample\n",
+ "'''\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m1 = 162. #mass of calcium bi carbonate in mg\n",
+ "m2 = 73. #mass of magnesium bi carbonate in mg\n",
+ "m3 = 136. # mass of calsium sulfate in mg\n",
+ "m4 = 95. # mass of magnesium cloride\n",
+ "m5 = 500. #mass of sodium cloride in mg\n",
+ "m6 = 50. # mass of potassium cloride in mg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "content_1 = m1*100/m1; #content of calcium bi carbonate in mg\n",
+ "content_2 = m2*100/(2*m2); #content of magnesium bi carbonate in mg\n",
+ "content_3 = m3*100/m3; # content of calsium sufate in mg\n",
+ "content_4 = m4*100/m4; # content of magnesium cloride\n",
+ "\n",
+ "#part_1\n",
+ "\n",
+ "temp_hardness = content_1 + content_2; #depends on bicarbonate only\n",
+ "total_hardness = content_1+content_2+content_3+content_4;\n",
+ "print \"total hardness = %.0f mg/l temporary hardness = %.0f mg/l\"%(temp_hardness,total_hardness)\n",
+ "\n",
+ "#part 2\n",
+ "wt_lime = (74./100)*(content_1+2*content_2+content_4);\n",
+ "actual_lime = wt_lime/0.85;\n",
+ "print \"amount of lime required = %.1f mg/l\"%(actual_lime)\n",
+ "\n",
+ "soda_required = (106./100)*(content_1+content_4);\n",
+ "actual_soda = soda_required/0.98;\n",
+ "print \"amount of soda required = %.1f mg/l\"%(actual_soda)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total hardness = 150 mg/l temporary hardness = 350 mg/l\n",
+ "amount of lime required = 261.2 mg/l\n",
+ "amount of soda required = 216.3 mg/l\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.28 page number 82\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find hardness of water\n",
+ "\n",
+ "# Variables\n",
+ "volume_NaCl=50. #in l\n",
+ "c_NaCl=5000. #in mg/l\n",
+ "\n",
+ "# Calculations\n",
+ "m=volume_NaCl*c_NaCl;\n",
+ "equivalent_NaCl=50/58.5;\n",
+ "\n",
+ "hardness=equivalent_NaCl*m;\n",
+ "\n",
+ "# Results\n",
+ "print \"hardness of water = %f mg/l\"%(hardness/1000.)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hardness of water = 213.675214 mg/l\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.29 page number 82\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the total vapor pressure and molar compositions\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m_benzene = 55. #in kg\n",
+ "m_toluene = 28. #in kg\n",
+ "m_xylene = 17. # in kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "mole_benzene = m_benzene/78.;\n",
+ "mole_toluene = m_toluene/92.;\n",
+ "mole_xylene = m_xylene/106.;\n",
+ "\n",
+ "mole_total = mole_benzene+mole_toluene+mole_xylene;\n",
+ "x_benzene = mole_benzene/mole_total;\n",
+ "x_toluene = mole_toluene/mole_total;\n",
+ "x_xylene = mole_xylene/mole_total;\n",
+ "\n",
+ "P = x_benzene*178.6+x_toluene*74.6+x_xylene*28;\n",
+ "print \"total pressure = %f kPa\"%(P)\n",
+ "\n",
+ "benzene = (x_benzene*178.6*100)/P;\n",
+ "toluene = (x_toluene*74.6*100)/P;\n",
+ "xylene = (x_xylene*28*100)/P;\n",
+ "\n",
+ "print \"xylene = %f toluene = %f benzene = %f\"%(xylene,toluene,benzene)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure = 130.897438 kPa\n",
+ "xylene = 2.932503 toluene = 14.826766 benzene = 82.240730\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.30 page number 83\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the mixture composition\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "vapor_pressure=8. #in kPa\n",
+ "pressure=100. #in kPa\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part 1\n",
+ "volume=1 #in m3\n",
+ "volume_ethanol=volume*(vapor_pressure/pressure);\n",
+ "volume_air=1-volume_ethanol;\n",
+ "print \"volumetric composition:- air composition = %f ethanol compostion = %f\"%(volume_air*100,volume_ethanol*100)\n",
+ "\n",
+ "#part 2\n",
+ "molar_mass_ethanol=46;\n",
+ "molar_mass_air=28.9;\n",
+ "mass_ethanol=0.08*molar_mass_ethanol; #in kg\n",
+ "mass_air=0.92*molar_mass_air; #in kg\n",
+ "fraction_ethanol=(mass_ethanol*100)/(mass_air+mass_ethanol);\n",
+ "fraction_air=(mass_air*100)/(mass_air+mass_ethanol);\n",
+ "print \"composition by weight:-Air = %f Ethanol vapor = %f\"%(fraction_air,fraction_ethanol)\n",
+ "\n",
+ "#part 3\n",
+ "mixture_volume=22.3*(101.3/100)*(299./273); #in m3\n",
+ "weight_ethanol=mass_ethanol/mixture_volume;\n",
+ "print \"weight of ethanol/cubic meter = %f Kg\"%(weight_ethanol)\n",
+ "\n",
+ "#part 4\n",
+ "w_ethanol=mass_ethanol/mass_air;\n",
+ "print \"weight of ethanol/kg vapor free air = %f Kg\"%(w_ethanol)\n",
+ "\n",
+ "#part 5\n",
+ "moles_ethanol=0.08/0.92;\n",
+ "print \"kmol of ethanol per kmol of vapor free air = %f\"%(moles_ethanol)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volumetric composition:- air composition = 92.000000 ethanol compostion = 8.000000\n",
+ "composition by weight:-Air = 87.841945 Ethanol vapor = 12.158055\n",
+ "weight of ethanol/cubic meter = 0.148739 Kg\n",
+ "weight of ethanol/kg vapor free air = 0.138408 Kg\n",
+ "kmol of ethanol per kmol of vapor free air = 0.086957\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.31 page number 84\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find relative saturation and dew point\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "vapor_pressure=8. #in kPa\n",
+ "volume_ethanol=0.05;\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#basis 1kmol of mixture\n",
+ "partial_pressure=volume_ethanol*100;\n",
+ "relative_saturation=partial_pressure/vapor_pressure;\n",
+ "mole_ratio=volume_ethanol/(1-volume_ethanol);\n",
+ "print \"mole ratio = %f \\nrelative saturation = %f %%\"%(mole_ratio,relative_saturation*100)\n",
+ "\n",
+ "#basis 1kmol saturated gas mixture at 100kPa\n",
+ "volume_vapor=(8./100)*100;\n",
+ "ethanol_vapor=volume_vapor/100.;\n",
+ "air_vapor=1-ethanol_vapor;\n",
+ "saturation_ratio=ethanol_vapor/air_vapor;\n",
+ "percentage_saturation=mole_ratio/saturation_ratio;\n",
+ "\n",
+ "print \"percentage saturation = %f %%\"%(percentage_saturation*100)\n",
+ "\n",
+ "#dew point\n",
+ "print \"corresponding to partial pressure of 5kPa we get a dew point of 17.3 degree celcius\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole ratio = 0.052632 \n",
+ "relative saturation = 62.500000 %\n",
+ "percentage saturation = 60.526316 %\n",
+ "corresponding to partial pressure of 5kPa we get a dew point of 17.3 degree celcius\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.32 page number 84\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the properties of humid air\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "p = 4.24 #in kPa\n",
+ "H_rel = 0.8;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "p_partial = p*H_rel;\n",
+ "molal_H = p_partial/(100-p_partial);\n",
+ "print \"initial molal humidity = %.3f\"%(molal_H)\n",
+ "\n",
+ "#part 2\n",
+ "P = 200. #in kPa\n",
+ "p_partial = 1.70 #in kPa\n",
+ "final_H = p_partial/(P-p_partial);\n",
+ "print \"final molal humidity = %.4f\"%(final_H)\n",
+ "\n",
+ "#part 3\n",
+ "p_dryair = 100 - 3.39;\n",
+ "v = 100*(p_dryair/101.3)*(273./303);\n",
+ "moles_dryair = v/22.4;\n",
+ "vapor_initial = molal_H*moles_dryair;\n",
+ "vapor_final = final_H*moles_dryair;\n",
+ "water_condensed = (vapor_initial-vapor_final)*18;\n",
+ "print \"amount of water condensed = %f kg\"%(water_condensed)\n",
+ "\n",
+ "#part 4\n",
+ "total_air = moles_dryair+vapor_final;\n",
+ "final_v = 22.4*(101.3/200)*(288./273)*total_air;\n",
+ "print \"final volume of wety air = %f m**3\"%(final_v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "initial molal humidity = 0.035\n",
+ "final molal humidity = 0.0086\n",
+ "amount of water condensed = 1.832428 kg\n",
+ "final volume of wety air = 46.307275 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch3.ipynb b/Introduction_To_Chemical_Engineering/ch3.ipynb
new file mode 100644
index 00000000..e6461254
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch3.ipynb
@@ -0,0 +1,1587 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Material and Energy Balances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.1 page number 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the coal consumption\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "w_C = 0.6; #amount of carbon in coal\n",
+ "N2_content = 40. #in m3 per 100m3 air\n",
+ "\n",
+ "# Calculations\n",
+ "air_consumed = N2_content/0.79;\n",
+ "weight_air = air_consumed*(28.8/22.4);\n",
+ "O2_content = air_consumed*32*(0.21/22.4); #in kg\n",
+ "\n",
+ "H2_content = 20. #in m3\n",
+ "\n",
+ "steam_consumed = H2_content*(18/22.4);\n",
+ "\n",
+ "C_consumption1 = (12./18)*steam_consumed; #in reaction 1\n",
+ "C_consumption2 = (24./32)*O2_content; #in reaction 2\n",
+ "\n",
+ "total_consumption = C_consumption1+C_consumption2;\n",
+ "coal_consumption = total_consumption/w_C;\n",
+ "\n",
+ "# Results\n",
+ "print \"coal consumption = %f kg\"%(coal_consumption)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "coal consumption = 36.844485 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.2 page number 91\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find amount of ammonia and air consumed\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "NH3_required = (17./63)*1000; #NH3 required for 1 ton of nitric acid\n",
+ "NO_consumption = 0.96;\n",
+ "HNO3_consumption = 0.92;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "NH3_consumed = NH3_required/(NO_consumption*HNO3_consumption);\n",
+ "volume_NH3 = NH3_consumed*(22.4/17);\n",
+ "print \"volume of ammonia consumed= %f cubic metre/h\"%(volume_NH3)\n",
+ "\n",
+ "NH3_content = 11. #% by volume\n",
+ "air_consumption = volume_NH3*((100-11)/11.);\n",
+ "print \"volume of air consumed = %f cubic metre/h\"%(air_consumption)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of ammonia consumed= 402.576490 cubic metre/h\n",
+ "volume of air consumed = 3257.209779 cubic metre/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.3 page number 91\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the consumption of NaCl and H2SO4 in HCl consumption\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "HCl_production = 500. #required to be produced in kg\n",
+ "NaCl_required = (117./73)*HCl_production;\n",
+ "yield_ = 0.92;\n",
+ "purity_NaCl= 0.96;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "actual_NaCl = NaCl_required/(purity_NaCl*yield_);\n",
+ "print \"amount of NaCl required = %f kg\"%(actual_NaCl)\n",
+ "\n",
+ "purity_H2SO4 = 0.93;\n",
+ "H2SO4_consumption = (98./73)*(HCl_production/(yield_*purity_H2SO4));\n",
+ "print \"amount of H2SO4 consumed = %f kg\"%(H2SO4_consumption)\n",
+ "\n",
+ "Na2SO4_produced = (142/73.)*HCl_production;\n",
+ "print \"amount of Na2SO4 produced = %f kg\"%(Na2SO4_produced)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of NaCl required = 907.348124 kg\n",
+ "amount of H2SO4 consumed = 784.517154 kg\n",
+ "amount of Na2SO4 produced = 972.602740 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.4 page number 92\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the period of service\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "C2H2_produced = (1./64)*0.86; #in kmol\n",
+ "volume_C2H2 = C2H2_produced*22.4*1000; #in l\n",
+ "\n",
+ "# Calculations\n",
+ "#assuming ideal behaviour,\n",
+ "volume = (100/101.3)*(273./(273+30));\n",
+ "time = (volume_C2H2/volume)*(1./60);\n",
+ "\n",
+ "# Results\n",
+ "print \"time of service = %f hr\"%(time)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time of service = 5.640332 hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.5 page number 92\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the screen effectiveness\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "xv = 0.88;\n",
+ "xf = 0.46;\n",
+ "xl = 0.32;\n",
+ "F= 100. #in kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "L = (F*(xf-xv))/(xl-xv);\n",
+ "V = F-L;\n",
+ "print \"L = %f Kg V = %f Kg\"%(L,V)\n",
+ "Eo = (V*xv)/(F*xf);\n",
+ "\n",
+ "print \" effectiveness based on oversized partices = %f \"%(Eo)\n",
+ "Eu = (L*(1-xl))/(F*(1-xf));\n",
+ "\n",
+ "print \"effectiveness based on undersized partices = %f\"%(Eu)\n",
+ "E=Eu*Eo;\n",
+ "\n",
+ "print \"overall effectiveness = %f\"%(E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 75.000000 Kg V = 25.000000 Kg\n",
+ " effectiveness based on oversized partices = 0.478261 \n",
+ "effectiveness based on undersized partices = 0.944444\n",
+ "overall effectiveness = 0.451691\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.6 page number 94\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flow rate and concentration\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "G1 = 3600. #in m3/h\n",
+ "P = 106.6 #in kPa\n",
+ "T = 40 #in degree C\n",
+ "\n",
+ "# Calculations and Results\n",
+ "q = G1*(P/101.3)*(273./((273+T))); #in m3/s\n",
+ "m = q/22.4; #in kmol/h\n",
+ "y1 = 0.02;\n",
+ "Y1 = y1/(1-y1);\n",
+ "\n",
+ "print \"mole ratio of benzene = %f kmol benzene/kmol dry gas\"%(Y1)\n",
+ "\n",
+ "Gs = m*(1-y1);\n",
+ "print \"moles of benzene free gas = %f kmol drygas/h\"%(Gs)\n",
+ "\n",
+ "#for 95% removal\n",
+ "Y2 = Y1*(1-0.95);\n",
+ "print \"final mole ratio of benzene = %f kmol benzene/kmol dry gas\"%(Y2)\n",
+ "\n",
+ "x2 = 0.002\n",
+ "X2 = 0.002/(1-0.002);\n",
+ "\n",
+ "#at equilibrium y* = 0.2406X\n",
+ "#part 1\n",
+ "#for oil rate to be minimum the wash oil leaving the absorber must be in equilibrium with the entering gas\n",
+ "\n",
+ "y1 = 0.02;\n",
+ "x1 = y1/(0.2406);\n",
+ "X1 = x1/(1-x1);\n",
+ "min_Ls = Gs*((Y1-Y2)/(X1-X2));\n",
+ "print \"minimum Ls required = %f kg/h\"%(min_Ls*260)\n",
+ "\n",
+ "#for 1.5 times of the minimum\n",
+ "Ls = 1.5*min_Ls;\n",
+ "print \"flow rate of wash oil = %f kg/h\"%(Ls*260)\n",
+ "X1 = X2 + (Gs*((Y1-Y2)/Ls));\n",
+ "print \"concentration of benzene in wash oil = %f kmol benzene/kmol wash oil\"%(X1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole ratio of benzene = 0.020408 kmol benzene/kmol dry gas\n",
+ "moles of benzene free gas = 144.559497 kmol drygas/h\n",
+ "final mole ratio of benzene = 0.001020 kmol benzene/kmol dry gas\n",
+ "minimum Ls required = 8219.216789 kg/h\n",
+ "flow rate of wash oil = 12328.825184 kg/h\n",
+ "concentration of benzene in wash oil = 0.061109 kmol benzene/kmol wash oil\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.7 page number 95\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the extraction of nicotine\n",
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "xf = 0.01\n",
+ "Xf = xf/(1-xf);\n",
+ "Feed = 100 #feed in kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "c_nicotine = Feed*Xf; #nicotine conc in feed\n",
+ "c_water = Feed*(1-Xf) #water conc in feed\n",
+ "\n",
+ "#part 1\n",
+ "def F1(x):\n",
+ " return (x/150.)-0.9*((1-x)/99.);\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "y = fsolve(F1,x)\n",
+ "print \"amount of nicotine removed N = %f kg\"%(y)\n",
+ "#part 2\n",
+ "def F2(x):\n",
+ " return (x/50.)-0.9*((1-x)/99.);\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "N1 = fsolve(F2,x)\n",
+ "print \"amount of nicotine removed in stage 1, N1 = %f kg\"%(N1)\n",
+ "def F3(x):\n",
+ " return (x/50.)-0.9*((1-x-N1)/99.);\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "N2 = fsolve(F3,x)\n",
+ "print \"amount of nicotine removed in stage 2, N2 = %f kg\"%(N2)\n",
+ "def F4(x):\n",
+ " return (x/50.)-0.9*((1-x-N2-N1)/99.);\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "N3 = fsolve(F4,x)\n",
+ "\n",
+ "print \"amount of nicotine removed in stage 3, N3 = %f kg\"%(N3)\n",
+ "N = N1+N2+N3;\n",
+ "print \"total amount of nicotine removed = %f kg\"%(N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of nicotine removed N = 0.576923 kg\n",
+ "amount of nicotine removed in stage 1, N1 = 0.312500 kg\n",
+ "amount of nicotine removed in stage 2, N2 = 0.214844 kg\n",
+ "amount of nicotine removed in stage 3, N3 = 0.147705 kg\n",
+ "total amount of nicotine removed = 0.675049 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.8 page number 96\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the amount of water in residue\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "vp_water = 31.06 #in kPa\n",
+ "vp_benzene = 72.92 #in kPa\n",
+ "\n",
+ "P = vp_water +vp_benzene;\n",
+ "x_benzene = vp_benzene/P;\n",
+ "x_water = vp_water/P;\n",
+ "\n",
+ "# Calculations\n",
+ "initial_water = 50./18; #in kmol of water\n",
+ "initial_benzene = 50./78 #in kmol of benzene\n",
+ "water_evaporated = initial_benzene*(x_water/x_benzene);\n",
+ "water_left = (initial_water - water_evaporated);\n",
+ "\n",
+ "# Results\n",
+ "print \"amount of water left in residue = %f kg\"%(water_left*18)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of water left in residue = 45.085236 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.9 page number 97\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the vapor content of dimethylanaline\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "po_D = 4.93 #in kPa\n",
+ "po_W = 96.3 #in kPa\n",
+ "n = 0.75 #vaporization efficiency\n",
+ "\n",
+ "# Calculations and Results\n",
+ "P = n*po_D+po_W;\n",
+ "print \"P = %f kPa\"%(P)\n",
+ "\n",
+ "x_water = 96.3/100;\n",
+ "x_dimethylanaline = 1-x_water;\n",
+ "wt_dimethylanaline = (x_dimethylanaline*121)/(x_dimethylanaline*121+x_water*18);\n",
+ "print \"weight of dimethylanaline in water = %f\"%(wt_dimethylanaline*100)\n",
+ "\n",
+ "#part 1\n",
+ "n = 0.8;\n",
+ "po_D = 32 #in kPa\n",
+ "actual_vp = n*po_D;\n",
+ "p_water = 100 - actual_vp;\n",
+ "steam_required = (p_water*18)/(actual_vp*121);\n",
+ "print \"amount of steam required = %f kg steam/kg dimethylanaline\"%(steam_required)\n",
+ "\n",
+ "#part 2\n",
+ "x_water = p_water/100.;\n",
+ "wt_water = x_water*18./(x_water*18+(1-x_water)*121.);\n",
+ "print \"weight of water vapor = %f weight of dimethylanaline =%f\"%(wt_water*100,100*(1-wt_water))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P = 99.997500 kPa\n",
+ "weight of dimethylanaline in water = 20.526340\n",
+ "amount of steam required = 0.432335 kg steam/kg dimethylanaline\n",
+ "weight of water vapor = 30.183916 weight of dimethylanaline =69.816084\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.10 page number 98\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the amount of water evaporated\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "xf = 0.15;\n",
+ "xl = (114.7)/(114.7+1000);\n",
+ "xc = 1;\n",
+ "\n",
+ "# Calculations\n",
+ "K2Cr2O7_feed = 1000*0.15; #in kg\n",
+ "\n",
+ "n = 0.8;\n",
+ "C = n*K2Cr2O7_feed;\n",
+ "V = (K2Cr2O7_feed-120 - 880*0.103)/(-0.103);\n",
+ "\n",
+ "# Results\n",
+ "print \"amount of water evaporated = %f kg\"%(V)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of water evaporated = 588.737864 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.11 page number 98\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the yield of crystals\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "xc = round(106./286,3);\n",
+ "xf = 0.25;\n",
+ "xl = round(27.5/127.5,3);\n",
+ "\n",
+ "# Calculations\n",
+ "water_present = 100*(1-xf); #in kg\n",
+ "V = 0.15*75; #in kg\n",
+ "C = (100*xf - 88.7*xl)/(xc-xl);\n",
+ "Na2CO3_feed = 25./xc;\n",
+ "\n",
+ "yield_ = (C/Na2CO3_feed)*100;\n",
+ "\n",
+ "# Results\n",
+ "print \"yield = %.1f %%\"%(yield_)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "yield = 55.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.12 page number 99\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the fraction of air recirculated\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "r = 50. #weight of dry air passing through drier\n",
+ "w1 = 1.60 #in kg per kg dry solid\n",
+ "w2 = 0.1 #in kg/kg dry solid\n",
+ "H0 = 0.016 #in kg water vapor/kg dry air\n",
+ "H2 = 0.055 #in kg water vapor/kg dry air\n",
+ "\n",
+ "# Calculations and Results\n",
+ "y = 1 - (w1-w2)/(r*(H2-H0));\n",
+ "print \"fraction of air recirculated = %f\"%(y)\n",
+ "\n",
+ "H1 = H2 - (w1-w2)/r;\n",
+ "print \"humidity of air entering the drier = %f kg water vapor/kg kg dry air\"%(H1)\n",
+ "\n",
+ "#check\n",
+ "H11 = H2*y+H0*(1-y);\n",
+ "if H1 == H11:\n",
+ " print \"fraction of air recirculated = %f verified\"%(y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of air recirculated = 0.230769\n",
+ "humidity of air entering the drier = 0.025000 kg water vapor/kg kg dry air\n",
+ "fraction of air recirculated = 0.230769 verified\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.13 page number 100\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the volumetric flow rate and fraction of air passing through the cooler\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "Hf = 0.012;\n",
+ "Hi = 0.033;\n",
+ "H1 = 0.0075;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "water_vapor = Hf/18.; #in kmol of water vapor\n",
+ "dry_air = 1/28.9; #in kmol\n",
+ "total_mass = water_vapor+dry_air;\n",
+ "\n",
+ "volume = 22.4*(298./273)*total_mass;\n",
+ "weight = 60/volume;\n",
+ "print \"weight of dry air handled per hr = %f kg\"%(weight)\n",
+ "\n",
+ "#part 1\n",
+ "inlet_watervapor = 0.033/18; #in kmol of water vapor\n",
+ "volume_inlet = 22.4*(308./273)*(inlet_watervapor+dry_air);\n",
+ "print \"volumetric flow rate of inlet air = %f cubic meter\"%(volume_inlet*weight)\n",
+ "\n",
+ "#part 2\n",
+ "y = (Hf - Hi)/(H1 - Hi);\n",
+ "print \"fraction of inlet air passing through cooler = %f\"%(y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight of dry air handled per hr = 69.576029 kg\n",
+ "volumetric flow rate of inlet air = 64.064786 cubic meter\n",
+ "fraction of inlet air passing through cooler = 0.823529\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.14 page number 102\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the fraction of purged recycle and total yield\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#x- moles of N2 and H2 recycled; y - moles of N2 H2 purged\n",
+ "Ar_freshfeed = 0.2;\n",
+ "#argon in fresh feed is equal to argon in purge \n",
+ "\n",
+ "# Calculations and Results\n",
+ "y = 0.2/0.0633; #argon in purge = 0.0633y\n",
+ "x = (0.79*100 - y)/(1-0.79);\n",
+ "print \"y = %f kmolx = %f kmol\"%(y,x)\n",
+ "\n",
+ "#part 1\n",
+ "fraction = y/x;\n",
+ "print \"fration of recycle that is purged = %f\"%(fraction)\n",
+ "\n",
+ "#part 2\n",
+ "yield_ = 0.105*(100+x);\n",
+ "print \"overall yield of ammonia = %f kmol\"%(yield_)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "y = 3.159558 kmolx = 361.144964 kmol\n",
+ "fration of recycle that is purged = 0.008749\n",
+ "overall yield of ammonia = 48.420221 kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.15 page number 107\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find change in enthalpy\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "H0_CH4 = -74.9 #in kJ\n",
+ "H0_CO2 = -393.5 #in kJ\n",
+ "H0_H2O = -241.8 #in kJ\n",
+ "\n",
+ "# Calculations\n",
+ "delta_H0 = H0_CO2+2*H0_H2O-H0_CH4;\n",
+ "\n",
+ "# Results\n",
+ "print \"change in enthalpy = %f kJ\"%(delta_H0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in enthalpy = -802.200000 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.16 page number 107\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to compare the enthalpy change in two reactions\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "H0_glucose = -1273 #in kJ\n",
+ "H0_ethanol = -277.6 #in kJ\n",
+ "H0_CO2 = -393.5 #in kJ\n",
+ "H0_H2O = -285.8 #in kJ\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for reaction 1\n",
+ "delta_H1 = 2*H0_ethanol+2*H0_CO2-H0_glucose;\n",
+ "print \"enthalpy change in reaction 1 = %f KJ\"%(delta_H1)\n",
+ "\n",
+ "#for reaction 2\n",
+ "delta_H2 = 6*H0_H2O+6*H0_CO2-H0_glucose;\n",
+ "print \"enthalpy change in reaction 2 = %f kJ\"%(delta_H2)\n",
+ "\n",
+ "if delta_H1>delta_H2:\n",
+ " print \"reaction 2 supplies more energy\"\n",
+ "else:\n",
+ " print \"reaction 1 supplies more energy\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy change in reaction 1 = -69.200000 KJ\n",
+ "enthalpy change in reaction 2 = -2802.800000 kJ\n",
+ "reaction 2 supplies more energy\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.17 page number 108\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find enthalpy of formation of CuSO4.5H2O\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "delta_H2 = 11.7 #in kJ/mol\n",
+ "m_CuSO4 = 16 #in gm\n",
+ "m_H2O = 384 #in gm\n",
+ "\n",
+ "# Calculations\n",
+ "delta_H3 = -((m_CuSO4+m_H2O)*4.18*3.95*159.6)/(16*10**3)\n",
+ "delta_H1 = delta_H3 - delta_H2;\n",
+ "\n",
+ "# Results\n",
+ "print \"enthalpy of formation = %f kJ/mol\"%(delta_H1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy of formation = -77.578890 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.18 page number 108\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the temperature of combustion\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "H_combustion = 1560000 #in kJ/kmol \n",
+ "H0_CO2 = 54.56 #in kJ/kmol\n",
+ "H0_O2 = 35.2 #in kJ/kmol\n",
+ "H0_steam = 43.38 #in kJ/kmol\n",
+ "H0_N2 = 33.32 #in kJ/kmol\n",
+ "\n",
+ "# Calculations\n",
+ "t = H_combustion/(2*H0_CO2+3*H0_steam+0.875*H0_O2+16.46*H0_N2);\n",
+ "\n",
+ "# Results\n",
+ "print \"theoritical temperature of combustion = %f degree C\"%(t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "theoritical temperature of combustion = 1905.908708 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.19 page number 109\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the heat of reaction and consumption of coke\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "H_NaCl = 410.9 #in MJ/kmol\n",
+ "H_H2SO4 = 811.3 #in MJ/kmol\n",
+ "H_Na2SO4 = 1384 #in MJ/kmol\n",
+ "H_HCl = 92.3 #in MJ/kmol\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Q = H_Na2SO4 + 2*H_HCl -2*H_NaCl-H_H2SO4;\n",
+ "print \"heat of reaction = %f MJ\"%(Q)\n",
+ "\n",
+ "heat_required = 64.5*(500./73);\n",
+ "coke_consumption = heat_required/19\n",
+ "print \"amount of coke oven gas consumed = %f cubic meter\"%(coke_consumption)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat of reaction = -64.500000 MJ\n",
+ "amount of coke oven gas consumed = 23.251622 cubic meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.20 page number 109\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of heat flow\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "cp_water = 146.5 #in kj/kg\n",
+ "cp_steam = 3040 #in kJ/kg\n",
+ "d = 0.102 #in m\n",
+ "u = 1.5 #in m/s\n",
+ "density = 1000 #in kg/m3\n",
+ "\n",
+ "# Calculations\n",
+ "m = (3.14/4)*d**2*u*density;\n",
+ "Q = m*(cp_steam-cp_water);\n",
+ "\n",
+ "# Results\n",
+ "print \"rate of heat flow = %f kW\"%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of heat flow = 35447.429385 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.22 page number 110\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the amount of air required for combustion and composition of flue gas\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "wt_C = 0.75 #in kg\n",
+ "wt_H2 = 0.05 #in kg\n",
+ "wt_O2 = 0.12 #in kg\n",
+ "wt_N2 = 0.03 #in kg\n",
+ "wt_S = 0.01 #in kg\n",
+ "wt_ash = 0.04 #in kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "O2_C = wt_C*(32./12); #in kg\n",
+ "O2_H2 = wt_H2*(16./2); #in kg\n",
+ "O2_S = wt_S*(32./32); #in kg\n",
+ "O2_required = O2_C+O2_H2+O2_S;\n",
+ "\n",
+ "oxygen_supplied = O2_required - wt_O2;\n",
+ "air_needed = oxygen_supplied/0.23;\n",
+ "print \"amount of air required = %f kg\"%(air_needed)\n",
+ "\n",
+ "volume = (22.4/28.8)*air_needed;\n",
+ "print \"volume of air needed = %f cubic meter\"%(volume)\n",
+ "\n",
+ "air_supplied = 1.20*air_needed;\n",
+ "N2_supplied = air_supplied*0.77;\n",
+ "total_N2 = N2_supplied+wt_N2;\n",
+ "\n",
+ "O2_fluegas = air_supplied*0.23 - oxygen_supplied;\n",
+ "\n",
+ "wt_CO2 = wt_C+O2_C;\n",
+ "wt_SO2 = wt_S+O2_S;\n",
+ "\n",
+ "moles_CO2 = wt_CO2/44;\n",
+ "moles_SO2 = wt_SO2/64;\n",
+ "moles_N2 = total_N2/28;\n",
+ "moles_O2 = O2_fluegas/32;\n",
+ "total_moles = moles_CO2+moles_SO2+moles_N2+moles_O2;\n",
+ "\n",
+ "x_CO2 = moles_CO2/total_moles;\n",
+ "x_SO2 = moles_SO2/total_moles;\n",
+ "x_N2 = moles_N2/total_moles;\n",
+ "x_O2 = moles_O2/total_moles;\n",
+ "\n",
+ "print \"CO2 = %f %%\"%(x_CO2*100)\n",
+ "print \"SO2 = %f %%\"%(x_SO2*100)\n",
+ "print \"N2 = %f %%\"%(x_N2*100)\n",
+ "print \"O2 = %f %%\"%(x_O2*100)\n",
+ "\n",
+ "# Note : answers are slightly different because of rounding error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of air required = 9.956522 kg\n",
+ "volume of air needed = 7.743961 cubic meter\n",
+ "CO2 = 15.365264 %\n",
+ "SO2 = 0.076826 %\n",
+ "N2 = 81.039264 %\n",
+ "O2 = 3.518645 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.23 page number 110\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the composition of flue gas\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "C = 0.8 #in kg\n",
+ "H2 = 0.05 #in kg\n",
+ "S = 0.005 #in kg\n",
+ "ash = 0.145 #in kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#required oxygen in kg\n",
+ "C_O2 = C*(32./12); \n",
+ "H2_O2 = H2*(16./2);\n",
+ "S_O2 = S*(32./32);\n",
+ "O2_supplied = C_O2+S_O2+H2_O2;\n",
+ "print \"amount of O2 supplied = %f kg\"%(O2_supplied)\n",
+ "\n",
+ "wt_air = O2_supplied*(100./23);\n",
+ "wt_airsupplied = 1.25*wt_air;\n",
+ "print \"amount of air supplied = %f kg\"%(wt_airsupplied)\n",
+ "\n",
+ "#flue gas composition\n",
+ "m_N2 = wt_airsupplied*0.77; #in kg\n",
+ "mole_N2 = m_N2/28.;\n",
+ "\n",
+ "m_O2 = (wt_airsupplied-wt_air)*0.23; #in kg\n",
+ "mole_O2 = m_O2/32.;\n",
+ "\n",
+ "m_CO2 = C*(44/12.); #in kg\n",
+ "mole_CO2 = m_CO2/44.;\n",
+ "\n",
+ "m_H2O = H2*(18/2.); #in kg\n",
+ "mole_H2O = m_H2O/18.;\n",
+ "\n",
+ "m_SO2 = S*(64/32.); #in kg\n",
+ "mole_SO2 = m_SO2/64.;\n",
+ "\n",
+ "m = m_N2+m_O2+m_CO2+m_H2O+m_SO2\n",
+ "\n",
+ "#percent by weight\n",
+ "w_N2 = m_N2/m;\n",
+ "print \"percentage of N2 by weight = %f\"%(w_N2*100)\n",
+ "\n",
+ "w_O2 = m_O2/m;\n",
+ "print \"percentage of O2 by weight = %f\"%(w_O2*100)\n",
+ "\n",
+ "w_CO2 = m_CO2/m;\n",
+ "print \"percentage of CO2 by weight = %f\"%(w_CO2*100)\n",
+ "\n",
+ "w_H2O = m_H2O/m;\n",
+ "print \"percentage of H2O by weight = %f\"%(w_H2O*100)\n",
+ "\n",
+ "w_SO2 = m_SO2/m;\n",
+ "print \"percentage of SO2 by weight = %f\"%(w_SO2*100)\n",
+ "\n",
+ "m1 = mole_N2+mole_O2+mole_CO2+mole_H2O+mole_SO2\n",
+ "\n",
+ "#percent by mole \n",
+ "x_N2 = mole_N2/m1;\n",
+ "print \"percentage of N2 by mole = %f\"%(x_N2*100)\n",
+ "\n",
+ "x_O2 = mole_O2/m1;\n",
+ "print \"percentage of O2 by mole = %f\"%(x_O2*100)\n",
+ "\n",
+ "x_CO2 = mole_CO2/m1;\n",
+ "print \"percentage of CO2 by mole = %f\"%(x_CO2*100)\n",
+ "\n",
+ "x_H2O = mole_H2O/m1;\n",
+ "print \"percentage of H2O by mole = %f\"%(x_H2O*100)\n",
+ "\n",
+ "x_SO2 = mole_SO2/m1;\n",
+ "print \"percentage of SO2 by mole = %f\"%(x_SO2*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of O2 supplied = 2.538333 kg\n",
+ "amount of air supplied = 13.795290 kg\n",
+ "percentage of N2 by weight = 72.506232\n",
+ "percentage of O2 by weight = 4.331541\n",
+ "percentage of CO2 by weight = 20.022357\n",
+ "percentage of H2O by weight = 3.071612\n",
+ "percentage of SO2 by weight = 0.068258\n",
+ "percentage of N2 by mole = 77.261067\n",
+ "percentage of O2 by mole = 4.038647\n",
+ "percentage of CO2 by mole = 13.577066\n",
+ "percentage of H2O by mole = 5.091400\n",
+ "percentage of SO2 by mole = 0.031821\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.24 page number 112\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find volumetric composition of flue glass\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "wt_H2 = 0.15;\n",
+ "wt_C = 0.85;\n",
+ "O2_H2 = wt_H2*(16./2);\n",
+ "O2_C = wt_C*(32./12);\n",
+ "\n",
+ "# Calculations and Results\n",
+ "total_O2 = O2_H2+O2_C;\n",
+ "wt_air = total_O2/0.23;\n",
+ "air_supplied = 1.15*(wt_air);\n",
+ "N2_supplied = 0.77*air_supplied/28.;\n",
+ "O2_supplied = 0.23*(air_supplied-wt_air)/32.;\n",
+ "moles_CO2 = 0.85/12;\n",
+ "\n",
+ "print \"moles of CO2 = %f kmol\"%(moles_CO2)\n",
+ "print \"moles of N2 = %f kmol \"%(N2_supplied)\n",
+ "print \"moles of O2 = %f kmol\"%(O2_supplied)\n",
+ "\n",
+ "total_moles = N2_supplied+O2_supplied+moles_CO2;\n",
+ "\n",
+ "print \"percentage of CO2 = %f\"%((moles_CO2/total_moles)*100)\n",
+ "print \"percentage of N2 = %f\"%((N2_supplied/total_moles)*100)\n",
+ "print \"percentage of O2 = %f\"%((O2_supplied/total_moles)*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "moles of CO2 = 0.070833 kmol\n",
+ "moles of N2 = 0.476667 kmol \n",
+ "moles of O2 = 0.016250 kmol\n",
+ "percentage of CO2 = 12.564671\n",
+ "percentage of N2 = 84.552846\n",
+ "percentage of O2 = 2.882483\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.25 page number 113\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the excess air supplied\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "N2 = 80.5 #in m3\n",
+ "air_supplied = N2/0.79 #in m3\n",
+ "volume_O2 = air_supplied*0.21; #in m3\n",
+ "O2_fluegas = 6.1 #in m3\n",
+ "\n",
+ "# Calculations\n",
+ "O2_used = volume_O2 - O2_fluegas;\n",
+ "excess_air_supplied = (O2_fluegas/O2_used)*100;\n",
+ "\n",
+ "# Results\n",
+ "print \"percentage of excess air supplied = %f\"%(excess_air_supplied)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage of excess air supplied = 39.872580\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.26 page number 114\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the outlet temperature of water\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "q_NTP = 10*(200/101.3)*(273./313);\n",
+ "m_CO2 = 44*(q_NTP/22.4);\n",
+ "s_CO2 = 0.85 #in kJ/kg K\n",
+ "\n",
+ "# Calculations\n",
+ "Q = m_CO2*s_CO2*(40-20) #Q = ms*delta_T\n",
+ "\n",
+ "d0 = 0.023 #in mm\n",
+ "A0 = (3.14/4)*d0**2;\n",
+ "di = 0.035 #in mm\n",
+ "Ai = (3.14/4)*di**2;\n",
+ "\n",
+ "A_annular = Ai-A0;\n",
+ "u = 0.15 #in m/s\n",
+ "m_water = A_annular*(u*3600)*1000 #in kg/hr\n",
+ "\n",
+ "s_water = 4.19 #in kJ/kg K\n",
+ "t = 15+(Q/(m_water*s_water));\n",
+ "\n",
+ "# Results\n",
+ "print \"exit water temperature = %f degree C\"%(t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exit water temperature = 15.465164 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.27 page number 114\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the area of heating surface\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "F = 1000 #in kg\n",
+ "xF = 0.01 \n",
+ "\n",
+ "# Calculations and Results\n",
+ "solid_feed = F*xF;\n",
+ "water_feed = F - solid_feed;\n",
+ "\n",
+ "tF = 40 #in degree C\n",
+ "hF = 167.5 #in kJ/kg\n",
+ "xL = 0.02;\n",
+ "\n",
+ "solid_liquor = 10 #in kg\n",
+ "L = solid_liquor/xL;\n",
+ "tL = 100 #in degree C\n",
+ "hL = 418.6 #in kJ/kg\n",
+ "\n",
+ "V = F -L;\n",
+ "\n",
+ "tv = 100 #in degree C\n",
+ "Hv = 2675 #in kJ/kg\n",
+ "ts = 108.4 #in degree C\n",
+ "Hs = 2690 #in kJ/kg\n",
+ "tc = 108.4 #in degree C\n",
+ "hc = 454 #in kJ/kg\n",
+ "\n",
+ "#applying heat balance\n",
+ "S = (F*hF-V*Hv-L*hL)/(hc-Hs);\n",
+ "print \"weight of steam required = %f kg/hr\"%(S)\n",
+ "\n",
+ "Q = S*(Hs-hc);\n",
+ "U = 1.4 #in kW/m2K\n",
+ "delta_t = ts-tL;\n",
+ "A = 383.2/(U*delta_t);\n",
+ "print \"area of heating surface = %f square meter\"%(A)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight of steam required = 616.860465 kg/hr\n",
+ "area of heating surface = 32.585034 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.28 page number 115\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the top and bottom product,condenser duty,heat input to rebpoiler\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "hF = 171 #in kJ/kg\n",
+ "hD = 67 #in kJ/kg\n",
+ "hL = hD;\n",
+ "\n",
+ "hW = 200 #in kJ/kg\n",
+ "H = 540 #in kJ/kg\n",
+ "\n",
+ "print ('part 1')\n",
+ "F = 1000 #in kg/h\n",
+ "xF = 0.40\n",
+ "xW = 0.02;\n",
+ "xD = 0.97;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "D = F*(xF-xW)/(xD-xW);\n",
+ "W = F-D;\n",
+ "\n",
+ "print \"bottom product = %f kg/hr\"%(W)\n",
+ "print \"top product = %f kg/hr\"%(D)\n",
+ "\n",
+ "print ('part 2')\n",
+ "L = 3.5*D;\n",
+ "V = L+D;\n",
+ "Qc = V*H-L*hL-D*hD;\n",
+ "print \"condenser duty = %f KJ/hr\"%(Qc)\n",
+ "\n",
+ "print ('part 3')\n",
+ "Qr = Qc - 24200;\n",
+ "print \"rate of heat input to reboiler = %f kJ/hr\"%(Qr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part 1\n",
+ "bottom product = 600.000000 kg/hr\n",
+ "top product = 400.000000 kg/hr\n",
+ "part 2\n",
+ "condenser duty = 851400.000000 KJ/hr\n",
+ "part 3\n",
+ "rate of heat input to reboiler = 827200.000000 kJ/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.29 page number 117\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of crystal formation, cooling water rate, required area\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "F = 1000.; #in kg\n",
+ "V = 0.05*F; #in kg\n",
+ "xF = 0.48;\n",
+ "xL = 75./(100+75);\n",
+ "xC = 1.;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "C = (F*xF-950*xL)/(1-0.429);\n",
+ "print \"rate of crystal formation = %f kg\"%(C)\n",
+ "\n",
+ "L = F-C-V;\n",
+ "\n",
+ "#cooling water\n",
+ "W = (F*2.97*(85-35)+126.9*75.2-V*2414)/(4.19*11);\n",
+ "print \"rate of cooling water = %f kg\"%(W)\n",
+ "\n",
+ "delta_T1 = 56.;\n",
+ "delta_T2 = 17.;\n",
+ "delta_Tm = (delta_T1-delta_T2)/(math.log(delta_T1/delta_T2))\n",
+ "U = 125;\n",
+ "\n",
+ "A=(F*2.97*(85-35)+126.9*75.2-V*2414)/(U*delta_Tm*3.6);\n",
+ "print \"area = %f square meter\"%(A)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of crystal formation = 127.595697 kg\n",
+ "rate of cooling water = 810.216533 kg\n",
+ "area = 2.536631 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 3.30 page number 118\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the heat of combustion\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "delta_n = 10-12.; #mole per mole napthanlene\n",
+ "\n",
+ "#basis 1g\n",
+ "moles_napthalene = (1./128);\n",
+ "\n",
+ "# Calculations and Results\n",
+ "print ('part 1')\n",
+ "Qv = 40.28 #in kJ\n",
+ "Qp = Qv-(delta_n*moles_napthalene*8.3144*298./1000);\n",
+ "print \"heat of combustion = %f kJ\"%(Qp)\n",
+ "\n",
+ "print ('part 2')\n",
+ "delta_H = 44.05 #in kJ/gmol\n",
+ "water_formed = 4./128; #in g mol\n",
+ "Qp1 = Qp - (delta_H*water_formed);\n",
+ "print \"heat of combustion = %f kJ\"%(Qp1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part 1\n",
+ "heat of combustion = 40.318714 kJ\n",
+ "part 2\n",
+ "heat of combustion = 38.942151 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch4.ipynb b/Introduction_To_Chemical_Engineering/ch4.ipynb
new file mode 100644
index 00000000..4c312cd2
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch4.ipynb
@@ -0,0 +1,916 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Flow Of Fluids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.1 page number 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find water compressibility\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "delta_p=70.; #in bar\n",
+ "Et=20680. #in bar\n",
+ "\n",
+ "# Calculations\n",
+ "compressibility = delta_p/Et;\n",
+ "\n",
+ "# Results\n",
+ "print \"compressibilty of water = %f\"%(compressibility)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "compressibilty of water = 0.003385\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.3 page number 128\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the viscosity of oil\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "F=0.5*9.8; #in N\n",
+ "A=3.14*0.05*0.15; #in m2\n",
+ "\n",
+ "# Calculations and Results\n",
+ "shear_stress=F/A; #in Pa\n",
+ "print \"shear_stress = %f Pa\"%(shear_stress)\n",
+ "\n",
+ "velocity_distribution =0.1/(0.05*10**-3);\n",
+ "viscosity=shear_stress/velocity_distribution;\n",
+ "print \"viscosity = %f Pa-s\"%(viscosity) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear_stress = 208.067941 Pa\n",
+ "viscosity = 0.104034 Pa-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.5 page number 133\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find variation of losses with velocity\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "loss_ratio=3.6; #delta_P2/delta_P1=3.6\n",
+ "velocity_ratio=2.; #u2/u1=2\n",
+ "\n",
+ "# Calculations\n",
+ "n=math.log(loss_ratio,2); #delta_P2/delta_P1=(u2/u1)**n\n",
+ "\n",
+ "# Results\n",
+ "print \"power constant = %f flow is turbulent\"%(n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power constant = 1.847997 flow is turbulent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.8 page number 137\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the boundary layer properties\n",
+ "\n",
+ "import math \n",
+ "print ('part 1')\n",
+ "\n",
+ "# Variables\n",
+ "x=0.05 #in m\n",
+ "density=1000. #in kg/m3\n",
+ "\n",
+ "# Calculations and Results\n",
+ "viscosity=1.*10**-3 #in Pa-s\n",
+ "u=1. #in m/s\n",
+ "Re=(density*u*x)/viscosity;\n",
+ "\n",
+ "print \"Reynolds Number = %f\"%(Re)\n",
+ "\n",
+ "thickness=4.65*x*(Re)**-0.5;\n",
+ "print \"boundary layer thickness = %f m\"%(thickness)\n",
+ "\n",
+ "print ('part 2')\n",
+ "Re_x=3.2*10**5;\n",
+ "x_cr=(Re_x*viscosity)/(density*u);\n",
+ "print \"transition takes place at x = %f m\"%(x_cr) \n",
+ "\n",
+ "print ('part 3')\n",
+ "x=0.5 #in m\n",
+ "Re=(density*u*x)/viscosity;\n",
+ "thickness=0.367*x*(Re)**-0.2;\n",
+ "print \"boundary layer thickness= %f m\"%(thickness)\n",
+ "\n",
+ "t_sublayer=71.5*x*(Re)**-0.9;\n",
+ "print \"sub layer thickness= %f m\"%(t_sublayer)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part 1\n",
+ "Reynolds Number = 50000.000000\n",
+ "boundary layer thickness = 0.001040 m\n",
+ "part 2\n",
+ "transition takes place at x = 0.320000 m\n",
+ "part 3\n",
+ "boundary layer thickness= 0.013300 m\n",
+ "sub layer thickness= 0.000266 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.9 page number 138\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flow properties\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "d1=0.05 #in m\n",
+ "A1=(3.14*d1**2)/4.;\n",
+ "density_1=2.1 #in kg/m3\n",
+ "u1=15. #in m/s\n",
+ "P1=1.8; #in bar\n",
+ "P2=1.3; #in bar\n",
+ "\n",
+ "# Calculations and Results\n",
+ "w=density_1*A1*u1;\n",
+ "density_2=density_1*(P2/P1);\n",
+ "print \"density at section 2 = %f kg/cubic meter\"%(density_2)\n",
+ "\n",
+ "u2=u1*(density_1/density_2)*(0.05/0.075)**2;\n",
+ "print \"velocity at section 2 = %f m/s\"%(u2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "density at section 2 = 1.516667 kg/cubic meter\n",
+ "velocity at section 2 = 9.230769 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.10 page number 139\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the temperature increase\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "Q=0.001*10**5 #in J/s\n",
+ "w=0.001*1000 #in kg/s\n",
+ "density=1000. #in kg/m3\n",
+ "cp=4.19*10**3 #in J/kg K\n",
+ "\n",
+ "# Calculations\n",
+ "delta_T=Q/(w*cp);\n",
+ "\n",
+ "# Results\n",
+ "print \"Temperature increase = %f degree celcius\"%(delta_T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature increase = 0.023866 degree celcius\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.11 page number 142\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the pressure\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "u1=0; #in m/s\n",
+ "ws=0;\n",
+ "P1=0.7*10**5 #in Pa\n",
+ "P3=0\n",
+ "density=1000 #in kg/m3\n",
+ "\n",
+ "# Calculations and Results\n",
+ "u3=((2*(P1-P3))/density)**0.5;\n",
+ "print \"u3 = %f m/s\"%(u3)\n",
+ "\n",
+ "ratio_area=0.5;\n",
+ "u2=u3/ratio_area;\n",
+ "print \"u2 = %f m/s\"%(u2)\n",
+ "\n",
+ "#applying bernoulli's equation\n",
+ "P2=1.7*10**5-((density*u2**2)/2)\n",
+ "print \"P2 = %f Pa\"%(P2)\n",
+ "print \"this flow is physically unreal\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "u3 = 11.832160 m/s\n",
+ "u2 = 23.664319 m/s\n",
+ "P2 = -110000.000000 Pa\n",
+ "this flow is physically unreal\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.12 page number 143\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the power requirements\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q=3800./(24*3600) #in m3/s\n",
+ "d=0.202 #in m\n",
+ "\n",
+ "# Calculations\n",
+ "u=Q/((3.14/4)*d**2); #in m/s\n",
+ "delta_P=5.3*10**6 #in Pa\n",
+ "density=897. #in kg/m3\n",
+ "F=delta_P/density; #in J/kg\n",
+ "ws=9.8*30+F;\n",
+ "mass_flow_rate= Q*density;\n",
+ "power=(ws*mass_flow_rate)/0.6;\n",
+ "\n",
+ "# Results\n",
+ "print \"power required = %f kW\"%(power/1000)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power required = 407.834267 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.13 page number 146\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the tube length\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "density=1000 #in kg/m3\n",
+ "viscosity=1*10**-3 #in Pa s\n",
+ "P=100*1000 #in Pa\n",
+ "\n",
+ "# Calculations and Results\n",
+ "vdP=P/density;\n",
+ "\n",
+ "Q=2.5*10**-3/(24*3600)\n",
+ "A=3.14*(0.0005)**2/4;\n",
+ "u=Q/A;\n",
+ "print \"u = %f m/s\"%(u)\n",
+ "\n",
+ "Re=density*u*0.0005/viscosity;\n",
+ "print \"Re = %f\"%(Re)\n",
+ "\n",
+ "#F=18.86*L\n",
+ "L=(-u**2+vdP)/18.86;\n",
+ "print \"L = %f m\"%(L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "u = 0.147440 m/s\n",
+ "Re = 73.720217\n",
+ "L = 5.301074 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.14 page number 151\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the discharge pressure\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "d=0.025 #in m\n",
+ "u=3. #in m/s\n",
+ "density=894. #in kg/m3\n",
+ "viscosity=6.2*10**4 #in Pa-s\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Re=(u*d*density)/viscosity;\n",
+ "f=0.0045;\n",
+ "L=50.;\n",
+ "\n",
+ "delta_P=2*f*density*u**2*(L/d)\n",
+ "print \"frictional head loss = %f kPa\"%(delta_P/1000)\n",
+ "\n",
+ "required_P=25*density*9.8;\n",
+ "total_head=delta_P+required_P;\n",
+ "print \"total pressure head = %f bar\"%(total_head/10**5)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frictional head loss = 144.828000 kPa\n",
+ "total pressure head = 3.638580 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.15 page number 152\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the level difference\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "Q=0.8*10**-3; #in m3/s\n",
+ "d=0.026 #in m\n",
+ "A=(3.14*(d**2))/4 #in m2\n",
+ "\n",
+ "# Calculations\n",
+ "u=Q/A; #in m/s\n",
+ "density=800 #in kg/m3\n",
+ "viscosity=0.0005 #in Pa-s\n",
+ "\n",
+ "Re=(u*density*d)/viscosity;\n",
+ "f=0.079*(Re)**-0.25;\n",
+ "L=60\n",
+ "h_f=2*f*((u**2)/9.8)*(L/d);\n",
+ "\n",
+ "# Results\n",
+ "print \"level difference = %f m\"%(h_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "level difference = 5.343360 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.16 page number 153\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the engery cost\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "delta_z=50; #in m\n",
+ "L=290.36 #in m\n",
+ "d=0.18 #in m\n",
+ "Q=0.05 #in m3/s\n",
+ "\n",
+ "# Calculations\n",
+ "A=(3.14*d**2)/4; #in m2\n",
+ "u=Q/A; #in m/s\n",
+ "density=1180; #in kg/m3\n",
+ "viscosity=0.0012 #in Pa-s\n",
+ "Re=u*density*d/viscosity;\n",
+ "\n",
+ "f=0.004;\n",
+ "sigma_F=2*f*u**2*L/d;\n",
+ "ws=((9.8*50)+sigma_F)/0.6;\n",
+ "mass_flow_rate=Q*density; #in Kg/s\n",
+ "power=mass_flow_rate*ws/1000; #in KW\n",
+ "energy_cost=power*24*0.8;\n",
+ "\n",
+ "# Results\n",
+ "print \"Energy cost = Rs %f\"%(energy_cost)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy cost = Rs 1019.280105\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.17 page number 154\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the pressure loss\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "density=998 #in kg/m3\n",
+ "viscosity=0.0008 #in Pa-s\n",
+ "d=0.03 #in m\n",
+ "u=1.2 #in m/s\n",
+ "\n",
+ "# Calculations\n",
+ "Re=density*d*u/viscosity;\n",
+ "\n",
+ "f=0.0088;\n",
+ "D=1 #in m\n",
+ "N=10\n",
+ "L=3.14*D*N;\n",
+ "delta_P=(2*f*u**2*L)/d; #in Pa\n",
+ "delta_P_coil=delta_P*(1+(3.54*(d/D)));\n",
+ "\n",
+ "# Results\n",
+ "print \"frictional pressure drop = %f kPa\"%(delta_P_coil)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frictional pressure drop = 29.343858 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.18 page number 154\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find pressure drop per unit length\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "b=0.050 #in m\n",
+ "a=0.025 #in m\n",
+ "d_eq=b-a #in m\n",
+ "density=1000 #in kg/m3\n",
+ "u=3 #in m/s\n",
+ "viscosity = 0.001\n",
+ "\n",
+ "# Calculations\n",
+ "Re=d_eq*u*density/viscosity;\n",
+ "\n",
+ "e=40*10**6 #in m\n",
+ "f=0.0062;\n",
+ "P_perunit_length=2*f*density*u**2/d_eq; #in Pa/m\n",
+ "\n",
+ "# Results\n",
+ "print \"pressure per unit length = %f Pa/m\"%(P_perunit_length)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure per unit length = 4464.000000 Pa/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.19 page number 155\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flow rate\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "d = 0.3 #in m\n",
+ "u = 17.63 #avg velocity in m/s\n",
+ "\n",
+ "# Calculations\n",
+ "q = (3.14/4)*d**2*u;\n",
+ "\n",
+ "# Results\n",
+ "print \"volumetric flow rate = %f cubic meter per second\"%(q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volumetric flow rate = 1.245559 cubic meter per second\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.20 page number 156\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the size of pipe required\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 0.15 #in m\n",
+ "\n",
+ "# Calculations\n",
+ "u = (0.0191/0.15**2); #in m/s\n",
+ "q = (3.14/4)*d**2*u;\n",
+ "\n",
+ "# Results\n",
+ "print \"volumetric flow rate = %f cubic meter/s\"%(q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volumetric flow rate = 0.014994 cubic meter/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.21 page number 160\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the pressure gradient\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "Q=0.0003 #in m3/s\n",
+ "d=0.05 #in m\n",
+ "A=(3.14*d**2)/4;\n",
+ "\n",
+ "# Calculations\n",
+ "u=Q/A;\n",
+ "\n",
+ "density=1000; #in kg/m3\n",
+ "viscosity=0.001; #in Pa-s\n",
+ "e=0.3;\n",
+ "dp=0.00125; #particle diameter in m\n",
+ "\n",
+ "Re=(dp*u*density)/(viscosity*(1-e));\n",
+ "fm=(150/Re)+1.75;\n",
+ "L=0.5 #in m\n",
+ "delta_Pf=fm*((density*L*u**2)/dp)*((1-e)/e**3); #in Pa\n",
+ "\n",
+ "#applying bernoulli's equation, we get\n",
+ "delta_P=delta_Pf-(density*9.8*L);\n",
+ "pressure_gradient=delta_P/(L*1000); #in kPa/m\n",
+ "\n",
+ "# Results\n",
+ "print \"required pressure gradient = %f kPa/m of packed height\"%(pressure_gradient)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required pressure gradient = 1104.702008 kPa/m of packed height\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.22 page number 163\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find minimum fluidization velocity\n",
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d=120*10**-6 #in m\n",
+ "density=2500 #particle density in kg/m3\n",
+ "e_min=0.45;\n",
+ "density_water=1000 #in kg/m3\n",
+ "\n",
+ "# Calculations and Results\n",
+ "viscosity=0.9*10**-3; #in Pa-s\n",
+ "umf=(d**2*(density-density_water)*9.8*e_min**3)/(150*viscosity*(1-e_min));\n",
+ "print \"minimum fludization velocity = %f m/s\"%(umf)\n",
+ "\n",
+ "Re_mf=(d*umf*density_water)/(viscosity*(1-e_min));\n",
+ "\n",
+ "\n",
+ "#given that uo/umf=10\n",
+ "def F(e):\n",
+ " return e**3+1.657*e-1.675;\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "e = fsolve(F,x)\n",
+ "\n",
+ "print \"e = %f\"%(e)\n",
+ "length_ratio=(1-e_min)/(1-e);\n",
+ "print \"ratio of heights = %f\"%(length_ratio)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum fludization velocity = 0.000260 m/s\n",
+ "e = 0.753096\n",
+ "ratio of heights = 2.227583\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 4.23 page number 167\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the power requirements\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "P=9807. #in Pa\n",
+ "density=1000. #in kg/m3\n",
+ "Q=250./(60.*density)\n",
+ "head=25. #in m\n",
+ "\n",
+ "# Calculations\n",
+ "w= head*Q*P; #in kW\n",
+ "power_delivered=w/0.65;\n",
+ "power_taken=power_delivered/0.9;\n",
+ "\n",
+ "# Results\n",
+ "print \"power_delivered = %f kW\"%(power_delivered/1000)\n",
+ "print \"power taken by motor = %f kW\"%(power_taken/1000)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power_delivered = 1.571635 kW\n",
+ "power taken by motor = 1.746261 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch5.ipynb b/Introduction_To_Chemical_Engineering/ch5.ipynb
new file mode 100644
index 00000000..b8695b88
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch5.ipynb
@@ -0,0 +1,842 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.1 page number 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of heat loss\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "A=5.*4 #in m2\n",
+ "T1=100.; #in K\n",
+ "T2=30.; #in K\n",
+ "\n",
+ "# Calculations\n",
+ "delta_T=T1-T2;\n",
+ "\n",
+ "x=0.25 #in m\n",
+ "k=0.70 #in W/mK\n",
+ "Q=k*A*(delta_T/x);\n",
+ "\n",
+ "# Results\n",
+ "print \"rate of heat loss = %f W\"%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of heat loss = 3920.000000 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.2 page number 171\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the heat loss\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "d1=0.15 #in m\n",
+ "d2=0.16 #in m\n",
+ "l=1. #in m\n",
+ "\n",
+ "# Calculations\n",
+ "A1=3.14*d1*l;\n",
+ "A2=3.14*d2*l\n",
+ "Am=(A1-A2)/math.log (A1/A2);\n",
+ "\n",
+ "T1=120.; #in K\n",
+ "T2=119.8; #in K\n",
+ "\n",
+ "delta_T=T1-T2;\n",
+ "x=(d2-d1)/2;\n",
+ "k=50. #in W/mK\n",
+ "Q=k*Am*(delta_T/x);\n",
+ "\n",
+ "# Results\n",
+ "print \"rate of heat loss per unit length = %f W/m\"%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of heat loss per unit length = 973.062272 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.3 page number 172\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of heat loss\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "ri=0.5 #in m\n",
+ "ro=0.6; #in m\n",
+ "A1=4*3.14*ri**2;\n",
+ "A2=4*3.14*ro**2;\n",
+ "\n",
+ "# Calculations\n",
+ "Am=(A1*A2)**0.5;\n",
+ "\n",
+ "Ti=140.; #in K\n",
+ "To=50.; #in K\n",
+ "delta_T=Ti-To;\n",
+ "x=0.1 #in m\n",
+ "k=0.12 #in W/mK\n",
+ "\n",
+ "Q=k*Am*(delta_T/x);\n",
+ "\n",
+ "# Results\n",
+ "print \"Heat loss through sphere = %f W\"%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat loss through sphere = 406.944000 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.4 page number 173\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the heat loss from composite wall\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "x1=0.250; #in m\n",
+ "k1=0.7; #in W/mK\n",
+ "A1=1.; #in m2\n",
+ "R1=x1/(k1*A1); #in K/W\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for the felt layer\n",
+ "x2=0.020; #in m\n",
+ "k2=0.046; #in W/mK\n",
+ "A2=1.; #in m2\n",
+ "R2=x2/(k2*A2); #in K/W\n",
+ "R=R1+R2;\n",
+ "print \"Total resistance = %f K/W\"%(R)\n",
+ "\n",
+ "T1=110.; #in K\n",
+ "T2=25. #in K\n",
+ "delta_T=T1-T2;\n",
+ "Q=delta_T/R;\n",
+ "print \"heat loss through wall = %f W/square m\"%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total resistance = 0.791925 K/W\n",
+ "heat loss through wall = 107.333333 W/square m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.5 page number 173\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of heat loss through pipeline\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "d1=0.15 #in m\n",
+ "d2=0.16 #in m\n",
+ "l=1. #in m\n",
+ "A1=3.14*d1*l;\n",
+ "A2=3.14*d2*l\n",
+ "Am1=(A2-A1)/math.log (A2/A1);\n",
+ "x1=(d2-d1)/2.;\n",
+ "k1=50. #in W/mK\n",
+ "R1=x1/(k1*Am1);\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#resistance by insulation\n",
+ "d2=0.16 #in m\n",
+ "d3=0.26 #in m\n",
+ "l=1. #in m\n",
+ "A2=3.14*d2*l;\n",
+ "A3=3.14*d3*l\n",
+ "Am2=(A3-A2)/math.log (A3/A2);\n",
+ "x2=(d3-d2)/2.;\n",
+ "k2=0.08 #in W/mK\n",
+ "R2=x2/(k2*Am2);\n",
+ "R=R1+R2;\n",
+ "\n",
+ "print \"total resistance = %f K/W\"%(R)\n",
+ "\n",
+ "T1=120.; #in K\n",
+ "T2=40.; #in K\n",
+ "delta_T=T1-T2;\n",
+ "Q=delta_T/R;\n",
+ "\n",
+ "print \"heat loss = %f W/m\"%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total resistance = 0.966583 K/W\n",
+ "heat loss = 82.765822 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.6 page number 174\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the increase in heat transfer rate\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "x1=0.1; #in m\n",
+ "x2= 0.25; #in m\n",
+ "k_rb=0.93; #in W/mK\n",
+ "k_ib=0.116 #in W/mK\n",
+ "k_al=203.6 #in W/mK\n",
+ "A=0.1 #in m2\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#to find resistance without rivets\n",
+ "R=(1/A)*((x1/k_rb)+(x2/k_ib));\n",
+ "T1=225 #in K\n",
+ "T2=37 #in K\n",
+ "delta_T=T1-T2;\n",
+ "Q=delta_T/R;\n",
+ "print \"heat transfer rate = %f W\"%(Q)\n",
+ "\n",
+ "#to find resistance with rivet\n",
+ "d=0.03 #in m\n",
+ "rivet_area= (3.14/4)*d**2;\n",
+ "R_r=(x1+x2)/(k_al*rivet_area);\n",
+ "area_norivet=A-rivet_area;\n",
+ "R_cl=(A/area_norivet)*R;\n",
+ "R_eq=1/(1/R_r+1/R_cl);\n",
+ "Q_new=delta_T/R_eq;\n",
+ "\n",
+ "print \"Rate of heat transfer with rivet = %f W\"%(Q_new)\n",
+ "increase=((Q_new-Q)/Q)*100;\n",
+ "print \"percentage increase in heat transfer rate = %f\"%(increase)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat transfer rate = 8.308660 W\n",
+ "Rate of heat transfer with rivet = 85.514415 W\n",
+ "percentage increase in heat transfer rate = 929.220242\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.7 page number 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''\n",
+ "calculate the heat tranfer coefficient based on \n",
+ "i) the arithmetic mean difference between the temperatures of the water and the wall of the tube\n",
+ "ii) the logarithmic mean difference between the temperatures of the water and the wall of the tube.\n",
+ "'''\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "Cp = 4.178 # kJ/kg K for water\n",
+ "q = 1838. # rate at which heat is transfered\n",
+ "A = .1005 # heat transfer area\n",
+ "dt1 = 80. - 24 # temperature diffference at hot end\n",
+ "dt2 = 36.-24 # temperature difference at cold end\n",
+ "\n",
+ "# Calculations and Results\n",
+ "dtm = (56 + 12)/2.0\n",
+ "h = q/(A*dtm)\n",
+ "print \"Heat transfer coefficient, h = %.0f W/m**2 K\"%h\n",
+ "\n",
+ "dtm = (56 - 12)/math.log(56/12.)\n",
+ "h = q/(A*dtm)\n",
+ "print \"h = %.0f W/m**2 K\"%h\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer coefficient, h = 538 W/m**2 K\n",
+ "h = 640 W/m**2 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.8 page number 188\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the heat transfer coefficient\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "density=984.1 #in kg/cubic meter\n",
+ "v=3. #in m/s\n",
+ "viscosity=485*10**-6; #in Pa-s\n",
+ "k=0.657 #in W/mK\n",
+ "cp=4178. #in J/kg K\n",
+ "d=0.016 #in m\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Re=(density*v*d)/viscosity;\n",
+ "Pr=(cp*viscosity)/k;\n",
+ "\n",
+ "#dittus boelter equation\n",
+ "h=0.023*Re**0.8*Pr**0.3*(k/d);\n",
+ "print \"heat transfer coefficient = %f W/sq meter K\"%(h)\n",
+ "\n",
+ "#Sieder Tate equation\n",
+ "viscosity_w=920*10**-6.\n",
+ "h1=0.023*Re**0.8*Pr**(1./3)*(k/d)*(viscosity/viscosity_w)**0.14;\n",
+ "print \"heat transfer coefficient = %f W/sq meter K\"%(h1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat transfer coefficient = 12964.257508 W/sq meter K\n",
+ "heat transfer coefficient = 12306.258209 W/sq meter K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.9 page number 191\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the surface temperature of earth\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "T_sun = 5973 #in degree C\n",
+ "d = 1.5*10**13 #in cm\n",
+ "R = 7.1*10**10; #in cm\n",
+ "\n",
+ "# Calculations\n",
+ "T_earth = ((R/(2*d))**0.5)*T_sun;\n",
+ "\n",
+ "# Results\n",
+ "print \"Temperature of earth = %f C\"%(T_earth-273) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of earth = 17.576884 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.10 page number 191\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find temperature of earth\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "R=7*10**10; #in cm\n",
+ "Ts=6000; #in K\n",
+ "\n",
+ "# Calculations\n",
+ "l=1.5*10**13; #in m\n",
+ "To=((R**2/(4*l**2))**0.25)*Ts;\n",
+ "\n",
+ "# Results\n",
+ "print \"temperature of earth = %f K\"%(To)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature of earth = 289.827535 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.11 page number 192\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the equilibrium temperature\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "R=6.92*10**5 #in km\n",
+ "l=14.97*10**7 #in km\n",
+ "Ts=6200; #in K\n",
+ "\n",
+ "# Calculations\n",
+ "To=(R**2/l**2)**0.25*Ts;\n",
+ "\n",
+ "# Results\n",
+ "print \"Equilibrium temperature = %f K\"%(To)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium temperature = 421.535191 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.12 page number 192\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the equilibrium temperature\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "view_factor=0.5;\n",
+ "R=6.92*10**5 #in km\n",
+ "l=14.97*10**7 #in km\n",
+ "Ts=6200; #in K\n",
+ "\n",
+ "# Calculations\n",
+ "To=(view_factor*(R**2/l**2))**0.25*Ts;\n",
+ "\n",
+ "# Results\n",
+ "print \"Equilibrium temperature = %f K\"%(To)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium temperature = 354.467431 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.13 page number 193\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the surface temperature\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "view_factor=0.25;\n",
+ "R=7.1*10**10 #in cm\n",
+ "l=1.5*10**13 #in cm\n",
+ "Ts=5973; #in K\n",
+ "alpha=0.2;\n",
+ "epsilon=0.1;\n",
+ "\n",
+ "# Calculations\n",
+ "ratio=alpha/epsilon;\n",
+ "To=(ratio*view_factor*(R**2/l**2))**0.25*Ts;\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print \"Equilibrium temperature = %f K\"%(To)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium temperature = 345.556097 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.14 page number 193\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the solar constant\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "R=7*10**10; #in cm\n",
+ "l=1.5*10**13; #in cm\n",
+ "sigma=5.3*10**-5; #in erd/s(cm2)(K)4\n",
+ "T=6000; #in K\n",
+ "\n",
+ "# Calculations\n",
+ "S=(R/l)**2*(sigma)*(T**4)*60;\n",
+ "\n",
+ "# Results\n",
+ "print \"solar constant = %f J/sq cm min\"%(S/10**7)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "solar constant = 8.975232 J/sq cm min\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.15 page number 207\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the amount of vapor and liquid and amount of heat transfer\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "F = 5000. #in kg/hr\n",
+ "xF = 0.01\n",
+ "xL = 0.02;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "L = F*xF/xL;\n",
+ "V = F-L;\n",
+ "print \"L = %f Kg/hr V = %f kg/hr\"%(L,V)\n",
+ "\n",
+ "TF= 303 #in K\n",
+ "hF = 125.9 #in KJ/kg\n",
+ "T1 = 373.2 #in K\n",
+ "Hv = 2676.1 #in kJ/kg\n",
+ "hL = 419.04; #in kJ/kg\n",
+ "Ts = 383.2 #in K\n",
+ "Hs = 2691.5 #in kJ/kg\n",
+ "hs = 461.30 #in kJ/kg\n",
+ "\n",
+ "S = (F*hF-L*hL-V*Hv)/(hs-Hs);\n",
+ "print \"amount of steam = %f kg steam/h\"%(S)\n",
+ "\n",
+ "q = S*(Hs - hs);\n",
+ "q = q*1000/3600 #conversion to Watt\n",
+ "U = q/(69.9*10);\n",
+ "print \"heat transfer coefficient = %f W/sq m K\"%(U)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 2500.000000 Kg/hr V = 2500.000000 kg/hr\n",
+ "amount of steam = 3187.315039 kg steam/h\n",
+ "heat transfer coefficient = 2824.809251 W/sq m K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.16 page number 208\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the amount of liquid and vapor leaving and outlet concentration\n",
+ "\n",
+ "import math \n",
+ "from numpy import *\n",
+ "# Variables\n",
+ "b1 = 6000*125.79+3187.56*2691.5-3187.56*461.30; #data from previous problem\n",
+ "b2 = 6000;\n",
+ "A = array([[419.04, 2676.1],[1, 1]])\n",
+ "\n",
+ "# Calculations and Results\n",
+ "b = array([[b1],[b2]]);\n",
+ "x = linalg.solve(A,b)\n",
+ "#x = x*b\n",
+ "L = x[0];\n",
+ "V = x[1];\n",
+ "\n",
+ "print \"L = %f kg/hrV = %f kg/hr\"%(L,V)\n",
+ "\n",
+ "F = 6000 #in kg/hr\n",
+ "xF = 0.01;\n",
+ "xL = F*xF/L;\n",
+ "print \"percentage increase in outlet concentration = %f\"%(xL*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 3629.927289 kg/hrV = 2370.072711 kg/hr\n",
+ "percentage increase in outlet concentration = 1.652926\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 5.17 page number 209\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the change in heat trnasfer area\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "Hv=2635.3 #kJ/kg\n",
+ "hL=313.93 #in kJ/kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "S=(2500*313.93+2500*2635.3-5000*125.79)/(2691.5-461.30);\n",
+ "print \"steam flow rate = %f kg steam/hr\"%(S)\n",
+ "\n",
+ "q = S*(2691.5 - 461.30);\n",
+ "q = q*1000./3600 #in W\n",
+ "U = 2833.13; #in W/m2 K\n",
+ "delta_T = 383.2-348.2; #in K\n",
+ "A = q/(U*delta_T);\n",
+ "\n",
+ "print \"Area = %f sq meter\"%(A)\n",
+ "print \"in this case a condensor and vaccum pump should be used\"\n",
+ "\n",
+ "# Note : there is mistake in calculation in Book. Please calculate manually."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "steam flow rate = 3024.000090 kg steam/hr\n",
+ "Area = 18.892462 sq meter\n",
+ "in this case a condensor and vaccum pump should be used\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch6.ipynb b/Introduction_To_Chemical_Engineering/ch6.ipynb
new file mode 100644
index 00000000..dc10eb48
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch6.ipynb
@@ -0,0 +1,866 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Mass Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.3 page number 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flux and pressure difference\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "D_AB=6.75*10**-5 #in m2/s\n",
+ "Z=0.03 #in m\n",
+ "R=8314\n",
+ "p_A1=5.5*10**4 #in Pa\n",
+ "p_A2=1.5*10**4 #in Pa\n",
+ "T=298 #in K\n",
+ "\n",
+ "# Calculations and Results\n",
+ "N_A=D_AB*(p_A1-p_A2)/(R*T*Z);\n",
+ "print \"flux = %f kmol/sq m s\"%(N_A)\n",
+ "\n",
+ "#for partial pressure\n",
+ "Z=0.02; #in m\n",
+ "p_A2=p_A1-((N_A*R*T*Z)/D_AB);\n",
+ "print \"pressure = %f Pa\"%(p_A2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flux = 0.000036 kmol/sq m s\n",
+ "pressure = 28333.333333 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.4 page number 216\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flux of NH3 and equimolar counter diffusion flux\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Z=0.15 #in m\n",
+ "P=1.013*10**5 #in Pa\n",
+ "p_A1=1.5*10**4 #in Pa\n",
+ "p_A2=5*10**3 #in Pa\n",
+ "\n",
+ "# Calculations and Results\n",
+ "p_B1=P-p_A1;\n",
+ "p_B2=P-p_A2;\n",
+ "\n",
+ "D_AB=2.30*10**-5 #in m2/s\n",
+ "R=8314.\n",
+ "T=298. #in K\n",
+ "\n",
+ "#for non diffusing N2\n",
+ "p_BM=(p_B2-p_B1)/math.log (p_B2/p_B1);\n",
+ "print p_B1, p_B2\n",
+ "N_A=D_AB*(p_A1-p_A2)*P/(R*T*Z*p_BM);\n",
+ "print \"flux = %.4e kmol/sq m s\"%(N_A)\n",
+ "\n",
+ "#for diffusing N2\n",
+ "N_A=D_AB*(p_A1-p_A2)/(R*T*Z);\n",
+ "print \"flux = %.4e kmol/sq m s\"%(N_A)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "86300.0 96300.0\n",
+ "flux = 6.8736e-07 kmol/sq m s\n",
+ "flux = 6.1889e-07 kmol/sq m s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.6 page number 218\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "# Variables\n",
+ "M_A=36.5 #molar mass of HCl\n",
+ "M_B=18. #molar masss of water\n",
+ "w_A1=12.; #weight % of HCL\n",
+ "w_A2=4. #weight % of HCL\n",
+ "\n",
+ "# Calculations and Results\n",
+ "x_A1=(w_A1/M_A)/((w_A1/M_A)+((100-w_A1)/M_B));\n",
+ "print 'x_A1 =%f'%(x_A1)\n",
+ "\n",
+ "x_B1=1.-x_A1;\n",
+ "M1=100./((w_A1/M_A)+((100-w_A1)/M_B));\n",
+ "print \"molar mass at point 1 = %f kg/kmol\"%(M1)\n",
+ "\n",
+ "#at point 2\n",
+ "x_A2=(w_A2/M_A)/((w_A2/M_A)+((100-w_A2)/M_B));\n",
+ "x_B2=1-x_A2;\n",
+ "M2=100/((w_A2/M_A)+((100-w_A2)/M_B)); #avg molecular weight at point 2\n",
+ "print \"molar mass at point 2 = %f Kg/kmol\"%(M2)\n",
+ "\n",
+ "density_1=1060.7; #in kg/m3\n",
+ "density_2=1020.15; #in kg/m3\n",
+ "C_av=((density_1/M1)+(density_2/M2))/2;\n",
+ "print \"C_av = %f kmol/cubic m\"%(C_av)\n",
+ "\n",
+ "x_BM=(x_B2-x_B1)/(math.log (x_B2/x_B1));\n",
+ "Z=0.004 #in m\n",
+ "D_AB=2.5*10**-9;\n",
+ "N_A=(D_AB*C_av*(x_A1-x_A2))/(x_BM*Z);\n",
+ "print \"flux = %f kmol/sq m-s\"%(N_A)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x_A1 =0.063011\n",
+ "molar mass at point 1 = 19.165694 kg/kmol\n",
+ "molar mass at point 2 = 18.372483 Kg/kmol\n",
+ "C_av = 55.434825 kmol/cubic m\n",
+ "flux = 0.000002 kmol/sq m-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.8 page number 229\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the mean driving force and mass transfer area\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "Gs=700/22.4 #in kmol of dry air/hr\n",
+ "Ls=1500./18 #in kmol of dry air/hr\n",
+ "y1=0.05\n",
+ "Y1=y1/(1-y1);\n",
+ "Y2=0.02*Y1;\n",
+ "X2=0\n",
+ "X1=(Gs/Ls)*(Y1-Y2);\n",
+ "m=Gs*(Y1-Y2);\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#driving force\n",
+ "delta_Y1=Y1-1.68*X1;\n",
+ "delta_Y2=Y2-1.68*X2;\n",
+ "delta_Y=(delta_Y1-delta_Y2)/(math.log (delta_Y1/delta_Y2));\n",
+ "print \"driving force = %f kmol acetone/kmol dry air\"%(delta_Y)\n",
+ "\n",
+ "#mass transfer area\n",
+ "K_G=0.4 #in kmol acetone/kmol dry air\n",
+ "A=m/(K_G*delta_Y);\n",
+ "print \"area = %f sq m\"%(A)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "driving force = 0.006466 kmol acetone/kmol dry air\n",
+ "area = 623.154093 sq m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.9 page number 229\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to calculate minimum oil circulation rate\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "G1=(855/22.4)*(106.6/101.3)*(273/299.7);\n",
+ "y1=0.02;\n",
+ "Y1=y1/(1-y1);\n",
+ "Gs=G1*(1-y1);\n",
+ "\n",
+ "# Calculations\n",
+ "#for 95% removal\n",
+ "Y2=0.05*Y1;\n",
+ "x2=0.005;\n",
+ "X2=x2/(1-x2);\n",
+ "Y=0.204;\n",
+ "X1=0.176; #in kmol bgenzene/kmol benzene free oil\n",
+ "\n",
+ "Ls_molar=(Gs*(Y1-Y2))/(X1-X2);\n",
+ "Ls=Ls_molar*260;\n",
+ "\n",
+ "# Results\n",
+ "print \"minimum oil circulation rate = %f kg/hr\"%(Ls)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum oil circulation rate = 1057.149516 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.10 page number 231\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# to find the equilibrium composition\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "P_M = 53.32 #kPa\n",
+ "P_W = 12.33 #in kpA\n",
+ "P = 40 #IN K pA\n",
+ "\n",
+ "# Calculations and Results\n",
+ "x = (P - P_W)/(P_M-P_W);\n",
+ "\n",
+ "print \"liquid phase composition = %f\"%(x)\n",
+ "\n",
+ "y = P_M*x/P;\n",
+ "print \"vapor phase composition = %f\"%(y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "liquid phase composition = 0.675043\n",
+ "vapor phase composition = 0.899832\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.12 page number 231\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the top and bottom composition\n",
+ "\n",
+ "import math \n",
+ "from matplotlib.pyplot import *\n",
+ "from numpy import *\n",
+ "\n",
+ "%pylab inline\n",
+ "\n",
+ "# Variables\n",
+ "x = [1,0.69,0.40,0.192,0.045,0];\n",
+ "y = [1,0.932,0.78,0.538,0.1775,0];\n",
+ "plot(x,y)\n",
+ "#xlabel(\"x\")\n",
+ "#ylabel(\"y\")\n",
+ "#title(\"distillation curve\")\n",
+ "x = linspace(0,1,10)\n",
+ "y = linspace(0,1,10)\n",
+ "plot(x,y)\n",
+ "x = [0.5,0.31];\n",
+ "y = [0.5,0.7];\n",
+ "plot (x,y)\n",
+ "\n",
+ "xlabel(\"x\")\n",
+ "ylabel(\"y\")\n",
+ "suptitle(\"distillation curve\")\n",
+ "Z=0.5;\n",
+ "y_D=0.69;\n",
+ "x_W=0.31;\n",
+ "\n",
+ "show()\n",
+ "\n",
+ "# Results\n",
+ "print \"composition of top product = %f mole percent of hexane\"%(y_D*100)\n",
+ "print \"composition of bottom product = %f mole percent of hexane\"%(x_W*100)\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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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x27f1450>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "composition of top product = 69.000000 mole percent of hexane\n",
+ "composition of bottom product = 31.000000 mole percent of hexane\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.13 page number 237\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the composite distillate and residue\n",
+ "\n",
+ "%pylab inline\n",
+ "import math \n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "# Variables\n",
+ "F = 100. #moles\n",
+ "xf = 0.4;\n",
+ "D = 60. #moles\n",
+ "W = 40. #moles\n",
+ "\n",
+ "# Calculations\n",
+ "x = linspace(0.2,0.45,6)\n",
+ "y = zeros(6)\n",
+ "z = zeros(6)\n",
+ "for i in range(6):\n",
+ " y[i] = 2.16*x[i]/(1+1.16*x[i]);\n",
+ " z[i] = (y[i]-x[i])**-1;\n",
+ "z = z.T / 10\n",
+ "plot(x,z)\n",
+ "suptitle('Batch Distillation Curve')\n",
+ "xlabel('x')\n",
+ "ylabel('y')\n",
+ "xw = 0.22; #from the graph\n",
+ "yd = (F*xf-W*xw)/D;\n",
+ "show()\n",
+ "\n",
+ "# Results\n",
+ "print \"composition of distillate = %f\"%(yd)\n",
+ "print \"composition of residue = %f\"%(xw)\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": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x1c46110>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "composition of distillate = 0.520000\n",
+ "composition of residue = 0.220000\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.15 page number 249\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the top and bottom product composition\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#part 1\n",
+ "x=0.4;\n",
+ "y=0.8;\n",
+ "x_D=y;\n",
+ "x_W=0.135; #bottom concentration\n",
+ "\n",
+ "# Calculations and Results\n",
+ "D=(100*x-100*x_W)/(y-x_W); #distillate amount\n",
+ "print \"amount of distillate =%f moles/h\"%(D)\n",
+ "\n",
+ "#part 2\n",
+ "alpha=6; #relative volatility\n",
+ "x_R=y/(y+(alpha*(1-y))); #liquid leaving partial condensor\n",
+ "print \"liquid leaving partial condenser = %f\"%(x_R)\n",
+ "\n",
+ "y1=(1./3)*y+(2./3)*x;\n",
+ "x1=y1/(y1+(alpha*(1-y1)));\n",
+ "y_W = (1./3)*x_D+(2./3)*x1;\n",
+ "x_W=y_W/(y_W+(alpha*(1-y_W)));\n",
+ "D=(100*(x-x_W))/(y-x_W);\n",
+ "\n",
+ "print \"amount of distillate = %f moles/h\"%(D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of distillate =39.849624 moles/h\n",
+ "liquid leaving partial condenser = 0.400000\n",
+ "amount of distillate = 43.636364 moles/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.16 page number 264\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the percentage extraction of nicotine\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "x=0.01; #% of nicotine\n",
+ "X0 = x/(1-x);\n",
+ "w=150. #weight of nicotine water solution\n",
+ "\n",
+ "# Calculations and Results\n",
+ "A0=w*(1-X0);\n",
+ "B0=250.; #kg keroscene\n",
+ "X1 = A0*X0/(A0+B0*0.798);\n",
+ "print \"final concentration of nicotine = %f\"%(X1)\n",
+ "\n",
+ "c=A0*(X0-X1);\n",
+ "print \"amount of nicotine removed = %f kg\"%(c)\n",
+ "\n",
+ "percentage = (c*100)/(A0*x);\n",
+ "print \"percentage recovery = %f percent\"%(percentage)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final concentration of nicotine = 0.004310\n",
+ "amount of nicotine removed = 0.859863 kg\n",
+ "percentage recovery = 57.909174 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.17 page number 264\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the number of stages\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "x=0.01 #mole fraction of nicotine\n",
+ "yN = 0.0006; #mole fraction in solvent\n",
+ "xN = 0.001; #final mole fraction in water\n",
+ "\n",
+ "# Calculations and Results\n",
+ "X0=x/(1.-x); #in kg nicotine/kg water\n",
+ "YN =yN/(1.-yN); #in kg nicotine/kg keroscene\n",
+ "XN = xN/(1.-xN);\n",
+ "A0=100.*(1.-X0); #kgwater/h\n",
+ "B0=150.*(1.-YN); #in kg kerosene/h\n",
+ "\n",
+ "Y1=((A0*(X0-XN))/B0)+YN; #in kg nicotine/kg kerosene\n",
+ "print \"Y1 = %f kg nicotine/kg kerosene\"%(Y1)\n",
+ "\n",
+ "#for graph refer to the book\n",
+ "number_of_stages = 8.4;\n",
+ "print \"numnber of stages = %f\"%(number_of_stages)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Y1 = 0.006609 kg nicotine/kg kerosene\n",
+ "numnber of stages = 8.400000\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.18 page number 274\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to calculate the humidity\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 101.3 #in kPa\n",
+ "pA = 3.74 #in kPa\n",
+ "p_AS = 7.415 #in kPa\n",
+ "\n",
+ "# Calculations and Results\n",
+ "H = (18.02/28.97)*(pA/(P-pA));\n",
+ "print \"humidity = %f kg H2O/kg air\"%(H)\n",
+ "\n",
+ "Hs = (18.02/28.97)*(p_AS/(P-p_AS));\n",
+ "print \"Saturated humidity = %f kg H2O/kg air\"%(Hs)\n",
+ "\n",
+ "humidity = 100*(H/Hs);\n",
+ "print \"percentage humidity = %f percent\"%(humidity)\n",
+ "\n",
+ "relative_humidity = 100*(pA/p_AS);\n",
+ "print \"percentage relative humidity = %f percent\"%(relative_humidity)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "humidity = 0.023845 kg H2O/kg air\n",
+ "Saturated humidity = 0.049127 kg H2O/kg air\n",
+ "percentage humidity = 48.538334 percent\n",
+ "percentage relative humidity = 50.438301 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.19 page number 264\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the air flow rate and outlet humidity\n",
+ "\n",
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "S=425.6 #in kg/h\n",
+ "X1 = 0.035 #in kgwater/kg dry solid\n",
+ "t_s1=25. #in degree C\n",
+ "X2 = 0.017 #in kg H2O/kg dry air\n",
+ "t_s2=60. #in degree C\n",
+ "H2 = 0.0175 #in kg H2O/kg dry air\n",
+ "t_G2 = 84.2 #in degree C\n",
+ "t_G1= 32.8 #in degree C\n",
+ "C_pS = 1.465 #in kJ/kg dry solid\n",
+ "C_pA = 4.187 #in kg/ kg H2O K\n",
+ "\n",
+ "# Calculations and Results\n",
+ "H_G2=(1.005+1.88*H2)*(t_G2-0)+H2*2501;\n",
+ "H_S1 = C_pS*(t_s1-0)+X1*C_pA*(t_s1-0); #in kJ/kg\n",
+ "H_S2 = C_pS*(t_s2-0)+X2*C_pA*(t_s2-0); #in kJ/kg\n",
+ "Q=9300.; #in kJ/h\n",
+ "\n",
+ "print \"Latent heat of water at 0C HG2 = %f kJ/kg dryair\"%(H_G2)\n",
+ "print \"Enthalpy of entering solid HS1 = %f kJ/kg dryair\"%(H_S1)\n",
+ "print \"Enthalpy of exit solid HS2 = %f kJ/kg dryair\"%(H_S2)\n",
+ "\n",
+ "#applying GHg2 + SHs1 = GHg1 +SHs2 +Q, we get two linear equations\n",
+ "#0.0175G+14.17248 = GH1 and 98.194G-29745.398 = 2562.664GH1\n",
+ "A = array([[0.0175, -1],[98.194, -2562.664]]);\n",
+ "b = array([[-14.17248],[29745.398]]);\n",
+ "x = linalg.solve(A,b)\n",
+ "G = x[0]\n",
+ "H1 = x[1]/G;\n",
+ "print \"Air flow rate G = %f kg dryair/hr\"%(G)\n",
+ "print \"Humidity H1 = %f kg dryair/hr\"%(H1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of water at 0C HG2 = 131.158680 kJ/kg dryair\n",
+ "Enthalpy of entering solid HS1 = 40.288625 kJ/kg dryair\n",
+ "Enthalpy of exit solid HS2 = 92.170740 kJ/kg dryair\n",
+ "Air flow rate G = 1238.387008 kg dryair/hr\n",
+ "Humidity H1 = 0.028944 kg dryair/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.20 page number 291\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the crystal yield\n",
+ "\n",
+ "import math \n",
+ "from numpy import *\n",
+ "# Variables\n",
+ "M_Na2CO3 = 106\n",
+ "M_10H2O = 180.2\n",
+ "M_Na2CO3_10H2O = 286.2;\n",
+ "w_Na2CO3 = 5000. #in kg\n",
+ "water = 0.05 #% of water evaporated\n",
+ "\n",
+ "# Calculations\n",
+ "W = water*w_Na2CO3;\n",
+ "#solving material balance, we have two equations\n",
+ "#equation 1 -> 0.8230L +0.6296C = 3500\n",
+ "#equation 2 -> 0.1769L + 0.3703C = 1250\n",
+ "\n",
+ "A = array([[0.8230, 0.6296],[0.1769, 0.3703]])\n",
+ "b = array([[3500],[1250]])\n",
+ "x = linalg.solve(A,b);\n",
+ "L = x[0]\n",
+ "C = x[1];\n",
+ "\n",
+ "# Results\n",
+ "print \"L = %f kg solution\"%(L)\n",
+ "print \"C = %f kg of Na2CO3.10H2O crystals\"%(C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 2632.372855 kg solution\n",
+ "C = 2118.102193 kg of Na2CO3.10H2O crystals\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 6.21 page number 291\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the crystal yield\n",
+ "\n",
+ "import math \n",
+ "from numpy import *\n",
+ "# Variables\n",
+ "A = array([[0.7380, 0.5117],[0.2619, 0.4882]])\n",
+ "b = array([[1400],[600]])\n",
+ "\n",
+ "# Calculations and Results\n",
+ "x = linalg.solve(A,b)\n",
+ "L = x[0]\n",
+ "C = x[1];\n",
+ "print \"L = %f kg solution\"%(L)\n",
+ "print \"C = %f kg of MgSO4.7H2O crystals\"%(C)\n",
+ "\n",
+ "F = 2000 #in kg/h\n",
+ "cv = 2.93 #in kJ/kg K\n",
+ "H1 = F*cv*(330-293);\n",
+ "print \"enthalpy of feed = %f kJ\"%(H1)\n",
+ "\n",
+ "wt = 246.49 #molar mass MgSO4.7H2O\n",
+ "heat_soln = -13.31*10**3; #in kJ/kg mol\n",
+ "heat = heat_soln/wt;\n",
+ "heat_crystallization = abs(heat);\n",
+ "H2 = heat_crystallization*C; #total heat\n",
+ "q = -H1-H2;\n",
+ "print \"heat absorbed = %f kJthus heat shall be removed\"%(q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 1663.710339 kg solution\n",
+ "C = 336.489681 kg of MgSO4.7H2O crystals\n",
+ "enthalpy of feed = 216820.000000 kJ\n",
+ "heat absorbed = -234989.814805 kJthus heat shall be removed\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch7.ipynb b/Introduction_To_Chemical_Engineering/ch7.ipynb
new file mode 100644
index 00000000..abdbbfb1
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch7.ipynb
@@ -0,0 +1,417 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Chemical Kinetics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.3 page number 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the change on rate of reaction\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#part 1\n",
+ "#rate equation r = kC_NO**2*C_O2\n",
+ "#if pressure increases 3 times\n",
+ "# Calculations and Results\n",
+ "r = 3**2*3; #according to the rate reaction\n",
+ "print \"reaction reate will be increased by with 3 times increase in pressure = %f times\"%(r)\n",
+ "\n",
+ "#part 2\n",
+ "r = 3**2*3; #according to the rate reaction\n",
+ "print \"reaction reate will be increased by with 3 times decrease in volume = %f times\"%(r)\n",
+ "\n",
+ "r = 3**2; #according to the rate reaction\n",
+ "print \"reaction reate will be increased by with 3 times increase in conc of NO = %f times\"%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reaction reate will be increased by with 3 times increase in pressure = 27.000000 times\n",
+ "reaction reate will be increased by with 3 times decrease in volume = 27.000000 times\n",
+ "reaction reate will be increased by with 3 times increase in conc of NO = 9.000000 times\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.10 page number 316\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the % transformation\n",
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "# Variables\n",
+ "moles_A = 3.;\n",
+ "moles_B = 5.;\n",
+ "K = 1.;\n",
+ "\n",
+ "# Calculations\n",
+ "def F(x):\n",
+ " return 15.-8*x;\n",
+ "\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "y = fsolve(F,x)\n",
+ "\n",
+ "# Results\n",
+ "print \"amount of A transformed = %f percent\"%(y*100/3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of A transformed = 62.500000 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.11 page number 316\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the initial conc of A and B\n",
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "# Variables\n",
+ "Cp = 0.02;\n",
+ "Cq = 0.02;\n",
+ "K = 4*10**-2;\n",
+ "Cb = 0.05;\n",
+ "Cb_i = Cb+Cp;\n",
+ "a = (Cp*Cq)/(K*Cb);\n",
+ "\n",
+ "# Calculations\n",
+ "def F(x):\n",
+ " return x-0.02-a;\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "y = fsolve(F,x)\n",
+ "\n",
+ "# Results\n",
+ "print \"conc of A= %f mol/l\"%(y)\n",
+ "print \"conc of B= %f mol/l\"%(Cb_i)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conc of A= 0.220000 mol/l\n",
+ "conc of B= 0.070000 mol/l\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.12 page number 316\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the initial concentration and shift in equilibrium\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ce_N2 = 3.; #equilibrium conc of N2\n",
+ "Ce_H2 = 9.; #equilibrium conc of H2\n",
+ "Ce_NH3 = 4.; #equilibrium conc oh NH3\n",
+ "\n",
+ "# Calculations and Results\n",
+ "C_N2 = Ce_N2 + 0.5*Ce_NH3;\n",
+ "C_H2 = Ce_H2 + 1.5*Ce_NH3;\n",
+ "\n",
+ "print \"concentration of N2 = %f mol/l \\nconcentration of H2 = %f mol/l\"%(C_N2,C_H2)\n",
+ "# Note :second part is theoritical, book shall be referred for solution\n",
+ "\n",
+ "n_H2 = 3.; #stotiometric coefficient\n",
+ "n_N2 = 1.; #stotiometric coefficient\n",
+ "n_NH3= 2.; #stotiometric coefficient\n",
+ "delta_n = n_H2+n_N2-n_NH3;\n",
+ "if delta_n > 0:\n",
+ " print \"delta_n =%f since delta_n is greater than 0,equilibrium will shift to right with increase in volume\"%(delta_n)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "concentration of N2 = 5.000000 mol/l \n",
+ "concentration of H2 = 15.000000 mol/l\n",
+ "delta_n =2.000000 since delta_n is greater than 0,equilibrium will shift to right with increase in volume\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.13 page number 317\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the % transformation\n",
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "# Variables\n",
+ "moles_A = 0.02;\n",
+ "K = 1.;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part 1\n",
+ "moles_B = 0.02;\n",
+ "def F(x):\n",
+ " return moles_A*moles_B-(moles_A+moles_B)*x;\n",
+ "\n",
+ "#initial guess\n",
+ "x = 10.;\n",
+ "y = fsolve(F,x)\n",
+ "print \"amount of A transformed = %f percent\"%(y*100/0.02)\n",
+ "\n",
+ "#part 2\n",
+ "moles_B = 0.1;\n",
+ "y = fsolve(F,x)\n",
+ "print \"amount of A transformed = %f percent\"%(y*100/0.02)\n",
+ "\n",
+ "#part 1\n",
+ "moles_B = 0.2;\n",
+ "y = fsolve(F,x)\n",
+ "print \"amount of A transformed = %.0f percent\"%(y*100/0.02)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of A transformed = 50.000000 percent\n",
+ "amount of A transformed = 83.333333 percent\n",
+ "amount of A transformed = 91 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.15 page no : 319\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate equation\n",
+ "\n",
+ "import math \n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "\n",
+ "%pylab inline\n",
+ "# Variables\n",
+ "t = array([0,5,10,15,20,25])\n",
+ "C_A = array([25,18.2,13.2,9.6,7,5.1])\n",
+ "\n",
+ "#integral method of rate determination\n",
+ "s = 0;\n",
+ "k = zeros(6)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "for i in range(1,6):\n",
+ " k[i] = (1./t[i])*math.log(25./C_A[i])\n",
+ " #print (k[i],\"k values for various conc.\")\n",
+ " s = s+k[i]\n",
+ "\n",
+ "print \"average value of k = %f\"%(s/5)\n",
+ "print (\"ra =- 0.06367*CA\",\"since its a first order reaction,\")\n",
+ "\n",
+ "subplot(221) \n",
+ "plot(t,C_A)\n",
+ "\n",
+ "xlabel(\"time\")\n",
+ "ylabel(\"concentration\")\n",
+ "suptitle(\"integral method\")\n",
+ "\n",
+ "#differential method of rate determination\n",
+ "ra = array([1.16,0.83,0.60,0.43])\n",
+ "C_A = array([18.2,13.2,9.6,7])\n",
+ "\n",
+ "subplot(222) \n",
+ "plot(C_A,ra)\n",
+ "plot(C_A,ra,'ro')\n",
+ "xlabel(\"Concentration\")\n",
+ "ylabel(\"-ra\")\n",
+ "suptitle(\"differential method\")\n",
+ "xlim(1,20)\n",
+ "ylim(.1,2)\n",
+ "print \"rate from differential method = -0.064*CA\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "average value of k = 0.063680\n",
+ "('ra =- 0.06367*CA', 'since its a first order reaction,')\n",
+ "rate from differential method = -0.064*CA"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\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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\n6kMaAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2b3a490>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.16 page no : 322\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of reaction\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "E = 75200. #in J/mol\n",
+ "E1 = 50100. #in J/mol\n",
+ "R = 8.314 #in J/mol K\n",
+ "T = 298. #in K\n",
+ "\n",
+ "# Calculations\n",
+ "ratio = math.exp((E1-E)/(R*T));\n",
+ "rate_increase = ratio**-1\n",
+ "\n",
+ "# Results\n",
+ "print \"increase in rate of reaction =\",rate_increase,\"times\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "increase in rate of reaction = 25106.6042072 times\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch8.ipynb b/Introduction_To_Chemical_Engineering/ch8.ipynb
new file mode 100644
index 00000000..a18b8152
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch8.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Measuring Devices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.4 page number 336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "pressure_difference = 3.4 #in mm water\n",
+ "pressure = 1.0133*10**5 #in pa\n",
+ "temperatue = 293. #in K\n",
+ "mass_of_air = 29. #in Kg\n",
+ "\n",
+ "# Calculations and Results\n",
+ "density_air = pressure/(temperatue*8314)*mass_of_air #in kg/m3\n",
+ "print \"Density of air = %f kg/cu m\"%(density_air)\n",
+ "\n",
+ "delta_p = pressure_difference*9.8 #in pascal, acceleration due to gravity, g=9.8\n",
+ "Height=4\n",
+ "density_difference = delta_p/(9.8*Height);\n",
+ "print \"Density difference = %f kg/cu m\"%(density_difference)\n",
+ "\n",
+ "density_mixture= density_air-density_difference; #in kg/m3\n",
+ "print \"Density of mixture = %f kg/cu m\"%(density_mixture)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density of air = 1.206309 kg/cu m\n",
+ "Density difference = 0.850000 kg/cu m\n",
+ "Density of mixture = 0.356309 kg/cu m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.5 page number 341\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find viscosity of oil \n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "diameter=0.6; #in m\n",
+ "disk_distance=1.25*10**-3; #in m\n",
+ "speed=5.; #revolutions/min\n",
+ "torque=11.5; #in Joules\n",
+ "\n",
+ "# Calculations\n",
+ "#we know that torque= pi*omega*viscosity*radius**4/2*disc_distance\n",
+ "viscosity=(2*disk_distance*torque)/(3.14*(10*3.14)*(diameter/2)**4);\n",
+ "\n",
+ "# Results\n",
+ "print \"viscosity = %f Pa-s\"%(viscosity)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "viscosity = 0.035999 Pa-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.6 page number 342\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the viscosity of solution using given parameters\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "diameter =10.; #in mm\n",
+ "density_of_solution = 1750.; #in kg/m3\n",
+ "density_of_air = 1.2; #in kg/m3\n",
+ "velocity = 0.9; #in mm/s\n",
+ "\n",
+ "# Calculations and Results\n",
+ "viscosity = (density_of_solution-density_of_air)*9.8*(diameter*10**-3)**2/(18*velocity*10**-3); #expression for finding viscosity\n",
+ "\n",
+ "print \"viscosity of solution = %f Pa-s\"%(viscosity)\n",
+ "\n",
+ "\n",
+ "#checking stoke's region validity\n",
+ "v=(0.2*viscosity)/(density_of_solution*diameter*10**-3);\n",
+ "if v>0.9 :\n",
+ " print \"system follows stokes law\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "viscosity of solution = 105.791605 Pa-s\n",
+ "system follows stokes law\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.7 page number 367\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the flow rate in an orifice\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "density_of_water = 1000.; #in kg/m3\n",
+ "viscosity = 1*10.**-3; #in Pa-s\n",
+ "pipe_diameter = 250.; #in mm\n",
+ "orifice_diameter = 50.; # in mm\n",
+ "density_of_mercury = 13600.; # in mm\n",
+ "manometer_height = 242.; #in mm\n",
+ "\n",
+ "# Calculations and Results\n",
+ "height_water_equivalent = (density_of_mercury-density_of_water)*(manometer_height*10**-3)/(density_of_water) #in m\n",
+ "\n",
+ "#assuming Re>30000\n",
+ "Co = 0.61;\n",
+ "velocity = Co*(2*9.8*height_water_equivalent/(1-(orifice_diameter/pipe_diameter)**4))**0.5; #in m/s\n",
+ "\n",
+ "#checking Reynold's number\n",
+ "Re = (orifice_diameter*10**-3*velocity*density_of_water)/viscosity;\n",
+ "print \"reynolds number = %f which is greater than 30000\"%(Re)\n",
+ "\n",
+ "if Re>30000:\n",
+ " print \"velocity of water = %f m/s\"%(velocity)\n",
+ "\n",
+ "rate_of_flow = (3.14*(orifice_diameter*10.**-3)**2./4)*velocity*density_of_water;\n",
+ "print \"rate of flow = %f litre/s\"%(rate_of_flow)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reynolds number = 235976.385359 which is greater than 30000\n",
+ "velocity of water = 4.719528 m/s\n",
+ "rate of flow = 9.262073 litre/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.8 page number 368\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the coefficient of discharge for converging cone\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "pipe_diameter=0.15; #in m\n",
+ "venturi_diameter=0.05; #in m\n",
+ "pressure_drop=0.12; #m of water\n",
+ "flow_rate=3.; #in kg/s\n",
+ "density = 1000.; #in kg/m3\n",
+ "viscosity = 0.001 #in Pa-s\n",
+ "\n",
+ "# Calculations and Results\n",
+ "velocity = ((4./3.14)*flow_rate)/(venturi_diameter**2*density);\n",
+ "print \"velociy = %f m/s\"%(velocity)\n",
+ "\n",
+ "#calculating coefficient of discharge\n",
+ "Cv=velocity*((1-(venturi_diameter/pipe_diameter)**4)/(2*9.8*pressure_drop))**0.5;\n",
+ "print \"coefficient of discharge = %f\"%(Cv)\n",
+ "\n",
+ "#calculating reynold's number\n",
+ "Re = velocity*(venturi_diameter/pipe_diameter)**2*pipe_diameter*density/viscosity;\n",
+ "print \"reynolds No = %f\"%(Re)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velociy = 1.528662 m/s\n",
+ "coefficient of discharge = 0.990593\n",
+ "reynolds No = 25477.707006\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.9 page number 369\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find pA and pB\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "h1=0.66; #in m\n",
+ "h2=0.203; #in m\n",
+ "h3=0.305 #in m\n",
+ "density=1000.; #in kg/m3\n",
+ "pB=68900.; #in Pa\n",
+ "s1=0.83;\n",
+ "s2=13.6;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "print (\"part 1\")\n",
+ "pA=pB+(h2*s2-(h1-h3)*s1)*density*9.81; #in Pa\n",
+ "print \"pressure at A = %f Pa\"%(pA)\n",
+ "\n",
+ "print (\"part 2\")\n",
+ "pA1=137800. #in Pa\n",
+ "pressure=735. #mm Hg\n",
+ "pB1=pA1-(h2*s2-(h1-h3)*s1)*density*9.81;\n",
+ "pressure_B=(pB1-pressure*133.3)/9810.; #m of water\n",
+ "print \"pressure at B = %f m of water\"%(pressure_B)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part 1\n",
+ "pressure at A = 93092.931500 Pa\n",
+ "part 2\n",
+ "pressure at B = 1.593432 m of water\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.10 page number 370\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of oil flow in l/s\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "density_oil=900.; #in kg/m3\n",
+ "viscosity_oil=38.8*10**-3; #in Pa-s\n",
+ "density_water = 1000.; #in kg/m3\n",
+ "diameter=0.102 #in m\n",
+ "manometer_reading=0.9; #m of water\n",
+ "\n",
+ "# Calculations and Results\n",
+ "delta_H=manometer_reading*(density_water-density_oil)/density_oil;\n",
+ "print \"manometer reading as m of oil = %f m\"%(delta_H)\n",
+ "\n",
+ "maximum_velocity=(2*9.8*delta_H)**0.5;\n",
+ "print \"maximum_velocityVmax) = %f m/s\"%(maximum_velocity)\n",
+ "\n",
+ "Re=diameter*maximum_velocity*density_oil/viscosity_oil;\n",
+ "print \"if Re<4000 then v=0.5*Vmax Re = %f\"%(Re)\n",
+ "if Re<4000 :\n",
+ " velocity=maximum_velocity*0.5;\n",
+ "\n",
+ "print \"velocity = %f m/s\"%(velocity)\n",
+ "\n",
+ "flow_rate=(3.14/4)*diameter**2*velocity*1000;\n",
+ "print \"flow rate =%f litre/s\"%(flow_rate)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "manometer reading as m of oil = 0.100000 m\n",
+ "maximum_velocityVmax) = 1.400000 m/s\n",
+ "if Re<4000 then v=0.5*Vmax Re = 3312.371134\n",
+ "velocity = 0.700000 m/s\n",
+ "flow rate =5.716998 litre/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.11 page number 372\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the maximum capacity of keroscene\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "flow_rate_steel=1.2; #l/s\n",
+ "density_steel=7.92;\n",
+ "density_kerosene=0.82;\n",
+ "density_water=1;\n",
+ "\n",
+ "# Calculations\n",
+ "flow_rate_kerosene =(((density_steel-density_kerosene)/density_kerosene)/((density_steel-density_water)/density_water))**0.5*flow_rate_steel\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print \"maximum_flow rate of kerosene = %f litre/s\"%(flow_rate_kerosene)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum_flow rate of kerosene = 1.342303 litre/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 8.12 page number 373\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the rate of flow of flue gas\n",
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "# Variables\n",
+ "initial_CO2 = 0.02; #weight fraction\n",
+ "flow_rate_CO2 = 22.5; #gm/s\n",
+ "final_CO2=0.031; #weight fraction\n",
+ "\n",
+ "#flow rate of flue gas =x\n",
+ "#amount of CO2 entering = 0.02*x\n",
+ "#amount of CO2 leaving = 0.02x+0.0225\n",
+ "#amount of gas leaving = x+0.0225\n",
+ "#amount of CO2 leaving = 0.031*(x+0.0225)\n",
+ "\n",
+ "# Calculations\n",
+ "def f(x): \n",
+ "\t return initial_CO2*x+0.0225 - 0.031*(x+0.0225)\n",
+ "\n",
+ "flow_rate_flue_gas=fsolve(f,0)\n",
+ "\n",
+ "# Results\n",
+ "print \"flow rate of flue gas = %f kg/s\"%(flow_rate_flue_gas)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flow rate of flue gas = 1.982045 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/ch9.ipynb b/Introduction_To_Chemical_Engineering/ch9.ipynb
new file mode 100644
index 00000000..ebdb2cdc
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/ch9.ipynb
@@ -0,0 +1,219 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Computers and their application"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 9.1 page number 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the pressure drop in the coil\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "D = 38.*10**-3; #in m\n",
+ "U = 1. #in m/s\n",
+ "density = 998. #in kg/cubic m\n",
+ "viscosity = 8.*10**-4 #in Pa-s\n",
+ "DC = 1. #in m\n",
+ "N = 10.\n",
+ "e = 4.*10**-6; #in m\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Re = (density*U*D)/viscosity;\n",
+ "print \"Reynolds number = %f\"%(Re)\n",
+ "\n",
+ "f = (4*math.log10((e/D)/3.7+(6.81/Re)**0.9))**-2;\n",
+ "print \"friction factor = %f\"%(f);\n",
+ "\n",
+ "L = 3.14*DC*N;\n",
+ "\n",
+ "delta_Pstr = (2*f*U*density*L)/D;\n",
+ "print \"pressure drop through straight pipe = %f Pa\"%(delta_Pstr)\n",
+ "\n",
+ "S = 1+3.54*(D/DC);\n",
+ "print \"correction factor = %f\"%(S)\n",
+ "\n",
+ "delta_P = S*delta_Pstr\n",
+ "print \"pressure drop of coil = %f Pa\"%(delta_P)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 47405.000000\n",
+ "friction factor = 0.005330\n",
+ "pressure drop through straight pipe = 8791.184173 Pa\n",
+ "correction factor = 1.134520\n",
+ "pressure drop of coil = 9973.774268 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 9.2 page number 384\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#to find the shell side pressure drop in heat exchanger\n",
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "U = 0.5 #in m/s\n",
+ "N = 19.;\n",
+ "DT = 0.026 #in m\n",
+ "L = 2.7 #in m\n",
+ "DS = 0.2 #in m\n",
+ "e = 0.0002 #in m\n",
+ "density = 836. #in kg/cu m\n",
+ "viscosity = 0.00032 #in Pa s\n",
+ "Pr = 6.5;\n",
+ "Prw = 7.6;\n",
+ "\n",
+ "# Calculations and Results\n",
+ "HYDIA = (DS**2-N*DT**2)/(DS+N*DT);\n",
+ "Re = HYDIA*U*density/viscosity;\n",
+ "print \"Reynolds number = %f\"%(Re)\n",
+ "\n",
+ "f = (4*math.log10((e/HYDIA)/3.7+(6.81/Re)**0.9))**-2;\n",
+ "print \"friction factor = %f\"%(f);\n",
+ "\n",
+ "L = 3.14*DT*N;\n",
+ "\n",
+ "delta_Pstr = (2*f*U*density*L)/HYDIA;\n",
+ "print \"pressure drop through straight pipe = %f Pa\"%(delta_Pstr)\n",
+ "\n",
+ "S = (Prw/Pr)**0.33;\n",
+ "print \"correction factor = %f\"%(S)\n",
+ "\n",
+ "delta_P = S*delta_Pstr\n",
+ "print \"pressure drop of coil = %f Pa\"%(delta_P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 51113.148415\n",
+ "friction factor = 0.008158\n",
+ "pressure drop through straight pipe = 270.362537 Pa\n",
+ "correction factor = 1.052948\n",
+ "pressure drop of coil = 284.677794 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 9.3 page number 385\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "# Variables\n",
+ "MH = 10. #in kg/s\n",
+ "MC = 12.5 #in kg/s\n",
+ "CPH = 4.2 #in kJ/kg\n",
+ "CPC = 4.2 #in kJ/kg\n",
+ "THI = 353. #in K\n",
+ "THO = 333. #in K\n",
+ "TCI = 300. #in K\n",
+ "U = 1.8 #in kW/sq m K\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Q = MH*CPH*(THI-THO);\n",
+ "print \"heat load = %f J\"%(Q)\n",
+ "\n",
+ "TCO = Q/(MC*CPC)+TCI;\n",
+ "print \"cold fluid outlet temperature = %f K\"%(TCO)\n",
+ "\n",
+ "#for co current flow\n",
+ "\n",
+ "DT1 = THI-TCO;\n",
+ "DT2 = THO-TCO;\n",
+ "\n",
+ "LMTD = (DT1-DT2)/math.log(DT1/DT2);\n",
+ "\n",
+ "A = Q/(U*LMTD);\n",
+ "print \"for co current flow area = %f sq m\"%(A);\n",
+ "\n",
+ "#for counter current flow\n",
+ "\n",
+ "DT1 = THI-TCO;\n",
+ "DT2 = THO-TCI;\n",
+ "\n",
+ "LMTD = (DT1-DT2)/math.log(DT1/DT2);\n",
+ "\n",
+ "A = Q/(U*LMTD);\n",
+ "print \"for counter current flow area = %f sq m\"%(A);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat load = 840.000000 J\n",
+ "cold fluid outlet temperature = 316.000000 K\n",
+ "for co current flow area = 18.146440 sq m\n",
+ "for counter current flow area = 13.347874 sq m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Introduction_To_Chemical_Engineering/screenshots/pic11.png b/Introduction_To_Chemical_Engineering/screenshots/pic11.png
new file mode 100644
index 00000000..25fb271a
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/screenshots/pic11.png
Binary files differ
diff --git a/Introduction_To_Chemical_Engineering/screenshots/pic22.png b/Introduction_To_Chemical_Engineering/screenshots/pic22.png
new file mode 100644
index 00000000..10d2054e
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/screenshots/pic22.png
Binary files differ
diff --git a/Introduction_To_Chemical_Engineering/screenshots/pic33.png b/Introduction_To_Chemical_Engineering/screenshots/pic33.png
new file mode 100644
index 00000000..ccbe0f95
--- /dev/null
+++ b/Introduction_To_Chemical_Engineering/screenshots/pic33.png
Binary files differ