summaryrefslogtreecommitdiff
path: root/Basic_Principles_And_Calculations_In_Chemical_Engineering
diff options
context:
space:
mode:
Diffstat (limited to 'Basic_Principles_And_Calculations_In_Chemical_Engineering')
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt10
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb305
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb793
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb498
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb368
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb426
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb190
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb75
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb190
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb326
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb281
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb314
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb941
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb166
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb246
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb292
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb538
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb557
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb610
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb328
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb339
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb223
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb290
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb334
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb117
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb239
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb170
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb152
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb449
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb514
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.pngbin0 -> 12889 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.pngbin0 -> 12889 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.pngbin0 -> 12889 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.pngbin0 -> 12889 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.pngbin0 -> 75537 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.pngbin0 -> 53395 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.pngbin0 -> 15153 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.pngbin0 -> 15153 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.pngbin0 -> 15153 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.pngbin0 -> 15153 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.pngbin0 -> 5133 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.pngbin0 -> 5133 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.pngbin0 -> 5133 bytes
-rw-r--r--Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.pngbin0 -> 5133 bytes
44 files changed, 10281 insertions, 0 deletions
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt b/Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt
new file mode 100644
index 00000000..def5a27e
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Vaibhav Shah
+Course: others
+College/Institute/Organization: Indian Institute of Engineering Bombay
+Department/Designation: System Administrator
+Book Title: Basic Principles And Calculations In Chemical Engineering
+Author: D. M. Himmelblau & J. B. Riggs
+Publisher: PHI Learning Private Limited, New Delhi
+Year of publication: 2004
+Isbn: 9788120338395
+Edition: 7th \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb
new file mode 100644
index 00000000..947cfb01
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb
@@ -0,0 +1,305 @@
+{
+ "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 no : 6\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Finding the density'''\n",
+ "\n",
+ "#let the total mass of mud be 100lbm\n",
+ "#variables\n",
+ "m_total=100.0; #lbm\n",
+ "#70% by wt of mud is sand(SiO2)and remaining is water\n",
+ "m_sand=0.7*m_total; #lbm\n",
+ "m_water=0.3*m_total; #lbm\n",
+ "rho_sand=165.0; #lbm/ft^3\n",
+ "rho_water=62.3; #lbm/ft^3\n",
+ "\n",
+ "#calculation\n",
+ "#rho=mass/volume\n",
+ "rho_mud=m_total/((m_sand/rho_sand)+(m_water/rho_water));\n",
+ "\n",
+ "#result\n",
+ "print \"The density of mud=\" ,rho_mud, \"lbm/ft^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of mud= 110.401675438 lbm/ft^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.2 page no : 8\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''\n",
+ "Calculate the shear stress at the surface of the inner cylinder\n",
+ "'''\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "D1=25.15 #mm\n",
+ "D2=27.62 #mm\n",
+ "dr=0.5*(D2-D1) #mm\n",
+ "f=10. #rpm\n",
+ "\n",
+ "# calculations\n",
+ "Vo=math.pi*D1*f/60. #mm/s\n",
+ "#Let D denote d/dr\n",
+ "DV=Vo/dr #s^-1\n",
+ "tow=0.005 #Nm\n",
+ "L=92.37 #mm\n",
+ "s=2*tow/D1**2/(math.pi)/L*(10**6) #N/m^2\n",
+ "\n",
+ "# result\n",
+ "print \"The stress at the surface of the inner cylinder is %f N/m^2\"%s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress at the surface of the inner cylinder is 0.054481 N/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.3 page no : 15\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#problem on surface tension\n",
+ "# variablees\n",
+ "l=0.10; #m (length of sliding part)\n",
+ "f=0.00589; #N (pull due to 0.6 gm of mass)\n",
+ "\n",
+ "#calculation\n",
+ "f_onefilm=f/2; #N\n",
+ "#surface tension=(force for one film)/(length)\n",
+ "sigma=f_onefilm/l;\n",
+ "\n",
+ "# result\n",
+ "print \"The surface tension of fluid is\",sigma,\"N/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The surface tension of fluid is 0.02945 N/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.4 page no : 20\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert 327 miles/hr into ft/s\n",
+ "\n",
+ "# variables\n",
+ "V=327. #miles/hr\n",
+ "#1 mile = 5280 ft\n",
+ "#1 hour = 3600 sec\n",
+ "\n",
+ "# calculation\n",
+ "V1=V*5280/3600.0#ft/s\n",
+ "\n",
+ "# result\n",
+ "print \"327 miles/hr = %f ft/s\"%V1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "327 miles/hr = 479.600000 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.5 page no : 21\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert 2.6 hours into seconds\n",
+ "\n",
+ "# variables\n",
+ "t=2.6 #hr\n",
+ "#1 hr = 3600 s\n",
+ "\n",
+ "# calculations\n",
+ "t1=2.6*3600 #s\n",
+ "\n",
+ "# result\n",
+ "print \"2.6 hours = %f seconds\"%t1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2.6 hours = 9360.000000 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.6 page no : 24\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the acceleration in ft/min^2\n",
+ "\n",
+ "# variables\n",
+ "m=10. #lbm\n",
+ "F=3.5 #lbf\n",
+ "#1 lbf.s^2 = 32.2 lbm.ft\n",
+ "#1 min = 60 sec\n",
+ "\n",
+ "# calculations\n",
+ "a=F*32.2*60**2/m #ft/min^2\n",
+ "\n",
+ "# result\n",
+ "print \"The acceleration provided is %f ft/min^2\" % a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The acceleration provided is 40572.000000 ft/min^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.7 page no : 24\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the wt of metallic aluminium deposited in an electrolytic cell\n",
+ "\n",
+ "# variables\n",
+ "I=50000. #Ampere or Coulumbs/sec\n",
+ "#1 hr = 3600 sec\n",
+ "I1=50000*3600. #C/hr\n",
+ "\n",
+ "#calculation\n",
+ "#96500 C = 1 gm.eq\n",
+ "#1 mole of aluminium = 3 gm.eq\n",
+ "#1 mole of aluminium = 27 gm\n",
+ "m=I1*(1.0/96500)*(27/3.0)/1000.0 #Kg/hr\n",
+ "\n",
+ "#result\n",
+ "print \"the wt of metallic aluminium deposited in an electrolytic cell is %f Kg/hr\"%m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the wt of metallic aluminium deposited in an electrolytic cell is 16.787565 Kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb
new file mode 100644
index 00000000..621beb27
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb
@@ -0,0 +1,793 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Material Balances for Processes Involving Reaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.1 Page no. 264\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Reaction in which Fraction Conversion is specified\n",
+ "\n",
+ "# Variables \n",
+ "F = 100 # feed to the reactor-[g mol]\n",
+ "CH4 = 0.4*F # [g mol]\n",
+ "Cl2 = 0.5*F ; # [g mol]\n",
+ "N2= 0.1*F ; #[g mol]\n",
+ "\n",
+ "nio_CH4 = CH4 #[g mol CH4]\n",
+ "vi_CH4 = -1 # coefficint of CH4\n",
+ "\n",
+ "\n",
+ "# Calculation and Result\n",
+ "ex_CH4 = -(nio_CH4)/vi_CH4 # Max. extent of reaction based on CH4\n",
+ "\n",
+ "nio_Cl2 = Cl2 ; #[g mol Cl2]\n",
+ "vi_Cl2 = -1 ; # coefficint of Cl2\n",
+ "ex_Cl2 = -(nio_Cl2)/vi_Cl2 ; # Max. extent of reaction based on Cl2\n",
+ "\n",
+ "if (ex_Cl2 > ex_CH4 ):\n",
+ " print ' CH4 is limiting reactant '\n",
+ "else:\n",
+ " print ' (b) Cl2 is limiting reactant '\n",
+ "\n",
+ "cn_CH4 = 67/100.0 ; # percentage conversion of CH4\n",
+ "ex_r = (-cn_CH4)*CH4/vi_CH4 ; # extent of reaction\n",
+ "\n",
+ "print ' extent of reaction is %.1f g moles reacting '%ex_r\n",
+ "\n",
+ "n_un = 11 ; # Number of unknowns in the given problem\n",
+ "n_ie = 11 ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie ; # Number of degree of freedom\n",
+ "print ' Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "vi_CH3Cl = 1;\n",
+ "vi_HCl = 1;\n",
+ "vi_N2 = 0;\n",
+ "p_CH4 = CH4+(vi_CH4*ex_r); # [g mol]\n",
+ "p_Cl2 = Cl2+(vi_Cl2*ex_r); # [g mol]\n",
+ "p_CH3Cl = 0+(vi_CH3Cl*ex_r); # [g mol]\n",
+ "p_HCl = 0+(vi_HCl*ex_r); # [g mol]\n",
+ "p_N2 = N2+(vi_N2*ex_r); # [g mol]\n",
+ "\n",
+ "print 'Composition of product stream in %% g mol of products'\n",
+ "print 'Product Percentage g mol'\n",
+ "print 'CH4 %.1f%% g mol'%p_CH4\n",
+ "print 'Cl2 %.1f%% g mol'%p_Cl2\n",
+ "print 'CH3Cl %.1f%% g mol'%p_CH3Cl\n",
+ "print 'HCl %.1f%% g mol'%p_HCl\n",
+ "print 'N2 %.1f%% g mol'%p_N2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CH4 is limiting reactant \n",
+ " extent of reaction is 26.8 g moles reacting \n",
+ " Number of degree of freedom for the given system is 0 \n",
+ "Composition of product stream in %% g mol of products\n",
+ "Product Percentage g mol\n",
+ "CH4 13.2% g mol\n",
+ "Cl2 23.2% g mol\n",
+ "CH3Cl 26.8% g mol\n",
+ "HCl 26.8% g mol\n",
+ "N2 10.0% g mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.2 Page no. 266\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# A reaction in which Fraction Conversion is to beCalculated\n",
+ "\n",
+ "# Variables \n",
+ "S = 5000. ; # Sulphur [lb]\n",
+ "CH4 = 80. ; # [%]\n",
+ "H2S = 20.; # [%]\n",
+ "\n",
+ "n_un = 11. ;\n",
+ "n_ie = 11. ;\n",
+ "\n",
+ "# Calculation and Result\n",
+ "d_o_f = n_un-n_ie ;\n",
+ "print 'Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "m_S = 32.0 #molecular wt. of S -[lb]\n",
+ "mol_S = S/32.0;\n",
+ "nio_S = 0 #[g mol S]\n",
+ "ni_S = mol_S ; #[g mol S]\n",
+ "vi_S = 3. # coefficint of S -from given reaction\n",
+ "ex_r = (ni_S-nio_S)/vi_S ; # Extent of reaction based on S\n",
+ "print ' Extent of reaction is %.1f g moles reacting '%ex_r\n",
+ "\n",
+ "vi_H2O = 2. ; # coefficint of H2O\n",
+ "vi_H2S = -2. ; # coefficint of H2S\n",
+ "vi_SO2 = -1. ; #coefficint of SO2\n",
+ "vi_CH4 = 0 ; #coefficint of CH4\n",
+ "P_H2O = 0+(vi_H2O*ex_r); # [lb mol]\n",
+ "P_H2S = P_H2O/10 ; #[lb mol]\n",
+ "P_SO2 = 3.*P_H2S ; #[lb mol]\n",
+ "\n",
+ "F = (P_H2S-vi_H2S*ex_r)/(H2S/100) ; # total feed-[lb mol]\n",
+ "F_SO2 = P_SO2-(vi_SO2*ex_r); # feed rate of SO2- [lb mol]\n",
+ "F_CH4 = (CH4/100.)*F+vi_CH4*ex_r ; #feed rate of CH4- [lb mol]\n",
+ "F_H2S = ((H2S/100.)*F) ; # feed rate of H2S-[lb mol]\n",
+ "\n",
+ "f_cn = -(vi_H2S*ex_r)/((H2S/100.)*F) # Fractional conversion of limiting reagent\n",
+ "\n",
+ "print '(1)Feed rate of H2S- %.1f lb mol'%F_H2S\n",
+ "print '(2)Feed rate of SO2- %.1f lb mol'%F_SO2\n",
+ "print '(3)Fractional conversion of limiting reagent- %.2f '%f_cn"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 \n",
+ " Extent of reaction is 52.1 g moles reacting \n",
+ "(1)Feed rate of H2S- 114.6 lb mol\n",
+ "(2)Feed rate of SO2- 83.3 lb mol\n",
+ "(3)Fractional conversion of limiting reagent- 0.91 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.3 Page no. 270\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Material Balances for Process in which two Simultaneous Reactions Occur\n",
+ "\n",
+ "# Variables \n",
+ "F = 1 #CH3OH -[gmol]\n",
+ "f_cn = 90. #[%]\n",
+ "vi_CH3OH = -1. #coefficint of CH3OH\n",
+ "\n",
+ "# Calculation and Result\n",
+ "ex_r1 = (-90./100)/vi_CH3OH # Extent of reaction based on CH3OH \n",
+ "print ' Extent of reaction 1 is %.2f g moles reacting '%ex_r1\n",
+ "\n",
+ "yld = 75. #[%]\n",
+ "ex_r2 = ex_r1-(F*(yld/100.0));\n",
+ "print ' Extent of reaction 2 is %.2f g moles reacting '%ex_r2\n",
+ "\n",
+ "f_O2 = 0.21 # mol. fraction of O2\n",
+ "f_N2 = 0.79 # mol. fraction of N2\n",
+ "n_O2 = 2*((1/2.0)*F) # entering oxygen -[g mol]\n",
+ "air = n_O2/f_O2 # Amount of air entering\n",
+ "n_N2 = air-n_O2 # entering nitrogen -[g mol]\n",
+ "\n",
+ "n_un = 11. # Number of unknowns in the given problem\n",
+ "n_ie = 11. # Number of independent equations\n",
+ "d_o_f = n_un-n_ie # Number of degree of freedom\n",
+ "print ' Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "v1_CH3OH = -1 #coefficint of CH3OH\n",
+ "v1_O2 = -1./2 #coefficint of O2\n",
+ "v1_CH2O = 1 ; #coefficint of CH2O\n",
+ "v1_H2O = 1 ; #coefficint of H2O\n",
+ "v1_CO = 0 ; #coefficient of CO\n",
+ "\n",
+ "#Reaction 2\n",
+ "v2_O2 = -1./2 #coefficint of O2\n",
+ "v2_CH2O = -1 #coefficint of CH2O\n",
+ "v2_H2O = 1 ; #coefficint of H2O\n",
+ "v2_CO = 1 ; #coefficient of CO\n",
+ "P = F+air +(v1_CH3OH+v1_O2+v1_CH2O+v1_H2O)*ex_r1 +(v2_O2+v2_CH2O+v2_H2O+v2_CO)*ex_r2 ;# Product -[g mol]\n",
+ "\n",
+ "no_CH3OH = F+(v1_CH3OH*ex_r1)+0 ; # [g mol]\n",
+ "no_O2 = n_O2+(v1_O2*ex_r1)+v2_O2*ex_r2 ; # [g mol]\n",
+ "no_CH2O = 0 + v1_CH2O*ex_r1 +v2_CH2O*ex_r2 ; #[g mol]\n",
+ "no_CO = 0+v1_CO*ex_r1 +v2_CO*ex_r2 ; #[g mol]\n",
+ "no_H2O = 0+v1_H2O*ex_r1+v2_H2O*ex_r2 ; # [g mol]\n",
+ "no_N2 = n_N2-0-0 ; # [g mol]\n",
+ "\n",
+ "\n",
+ "y_CH3OH = (no_CH3OH/P )*100 ; # mole %\n",
+ "y_O2 = (no_O2/P)*100 ; # mole %\n",
+ "y_CH2O = (no_CH2O/P)*100 ; # mole %\n",
+ "y_CO = (no_CO/P)*100 ; # mole %\n",
+ "y_H2O = (no_H2O/P)*100 ; # mole % \n",
+ "y_N2 = (no_N2/P )*100; # mole %\n",
+ "\n",
+ "print 'Composition of product'\n",
+ "print 'Component mole percent'\n",
+ "print ' CH3OH %.1f %%'%y_CH3OH\n",
+ "print ' O2 %.1f %%'%y_O2\n",
+ "print ' CH2O %.1f %%'%y_CH2O\n",
+ "print ' CO %.1f %%'%y_CO\n",
+ "print ' H2O %.1f %%'%y_H2O\n",
+ "print ' N2 %.1f %%'%y_N2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Extent of reaction 1 is 0.90 g moles reacting \n",
+ " Extent of reaction 2 is 0.15 g moles reacting \n",
+ " Number of degree of freedom for the given system is 0 \n",
+ "Composition of product\n",
+ "Component mole percent\n",
+ " CH3OH 1.6 %\n",
+ " O2 7.6 %\n",
+ " CH2O 11.9 %\n",
+ " CO 2.4 %\n",
+ " H2O 16.7 %\n",
+ " N2 59.8 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.4 Page no. 273\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Analysis of Bioreactor\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables \n",
+ "F = 4000. ; #[kg]\n",
+ "m_H2O = 18.02 ; # molecular masss of water\n",
+ "m_C6H12O6 = 180.1 ; # molecular mass of glucose\n",
+ "m_CO2 = 44. ; #molecular mass of CO2\n",
+ "m_C2H3CO2H = 72.03 ; # molecular mass of C2H3CO2H\n",
+ "m_C2H5OH = 46.05 ; # molecular mass of ethanol\n",
+ "\n",
+ "p_H2O = 88. ; # [%]\n",
+ "p_C6H12O6 = 12.; # [%] \n",
+ "\n",
+ "# Calculation & Result\n",
+ "ni_H2O = (F*p_H2O/100.)/m_H2O ; # initial moles of water\n",
+ "ni_C6H12O6 = (F*(p_C6H12O6/100.))/m_C6H12O6 ; # initial moles of glucose\n",
+ "\n",
+ "n_un = 9. \n",
+ "n_ie = 9. \n",
+ "d_o_f = n_un-n_ie\n",
+ "print 'Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "ur_C6H12O6 = 90. ; #[kg]\n",
+ "pr_CO2 = 120. ; #[kg]\n",
+ "nf_C6H12O6 = ur_C6H12O6/m_C6H12O6 ; # [kmoles]\n",
+ "nf_CO2 = pr_CO2/m_CO2 ; # [kmoles]\n",
+ "\n",
+ "\n",
+ "a = matrix([[-1,-1],[2,0]]); # matrix formed by coefficients of unknowns \n",
+ "b = matrix([[(nf_C6H12O6-ni_C6H12O6)],[nf_CO2]]); #matrix formed by constant\n",
+ "x = a**(-1)*b; #matrix formed by solution\n",
+ " \n",
+ "print ' Extent of reaction 1 is %.3f kg moles reacting '%x[0]\n",
+ "print ' Extent of reaction 2 is %.3f kg moles reacting '%x[1]\n",
+ "\n",
+ "nf_H2O = ni_H2O+0*x[0] +2*x[1]; \n",
+ "nf_C2H5OH = 0+2*x[0]+0*x[1];\n",
+ "nf_C2H3CO2H = 0+0*x[0]+2*x[1]\n",
+ "total_wt = m_H2O*nf_H2O + m_C6H12O6*nf_C6H12O6 + m_CO2*nf_CO2 + \\\n",
+ "m_C2H3CO2H*nf_C2H3CO2H + m_C2H5OH*nf_C2H5OH;\n",
+ "mp_C2H5OH = (m_C2H5OH*nf_C2H5OH*100)/total_wt \n",
+ "mp_C2H3CO2H = (m_C2H3CO2H*nf_C2H3CO2H*100)/total_wt\n",
+ "\n",
+ "print ' Mass percent of ethanol in broth at end of fermentation process is %.1f %%'%mp_C2H5OH\n",
+ "print ' Mass percent of propenoic acid in broth at end of fermentation process is %.1f %%'%mp_C2H3CO2H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 \n",
+ " Extent of reaction 1 is 1.364 kg moles reacting \n",
+ " Extent of reaction 2 is 0.802 kg moles reacting \n",
+ " Mass percent of ethanol in broth at end of fermentation process is 3.1 %\n",
+ " Mass percent of propenoic acid in broth at end of fermentation process is 2.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.5 Page no. 279\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Solution using Elemental Balances\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables \n",
+ "\n",
+ "print '(a)Solution of Example 10.1 using element balance'\n",
+ "F = 100 # feed to the reactor-[g mol]\n",
+ "\n",
+ "CH4 = 0.4*F ; # [g mol]\n",
+ "Cl2 = 0.5*F ; # [g mol]\n",
+ "N2 = 0.1*F #[g mol]\n",
+ "\n",
+ "n_un = 10 # Number of unknowns in the given problem(excluding extent of reaction)\n",
+ "n_ie = 10 ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie # Number of degree of freedom\n",
+ "print ' Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "nio_CH4 = CH4 ; #[g mol CH4]\n",
+ "vi_CH4 = -1; # coefficint of CH4\n",
+ "\n",
+ "# Calculation and Result\n",
+ "ex_CH4 = -(nio_CH4)/vi_CH4 ; # Max. extent of reaction based on CH4\n",
+ "\n",
+ "\n",
+ "nio_Cl2 = Cl2 #[g mol Cl2]\n",
+ "vi_Cl2 = -1 # coefficint of Cl2\n",
+ "ex_Cl2 = -(nio_Cl2)/vi_Cl2 # Max. extent of reaction based on Cl2\n",
+ "\n",
+ "if (ex_Cl2 > ex_CH4 ): \n",
+ " print ' CH4 is limiting reactant '\n",
+ "else:\n",
+ " print ' (b) Cl2 is limiting reactant '\n",
+ "\n",
+ "cn_CH4 = 67.0/100 # percentage conversion of CH4(limiting reagent)\n",
+ "no_CH4 = CH4-(cn_CH4*CH4) ; #CH4 in product -[g mol]\n",
+ "\n",
+ "no_N2 = N2 #N2 in product -[g mol]\n",
+ "\n",
+ "C = CH4 ; #moles of CH4 = moles of C (by molecular formula)\n",
+ "H = 4*CH4 ; # moles of H = 4*moles of CH4 (by molecular formula)\n",
+ "Cl = 2*Cl2 ; # moles of Cl = 2* moles of Cl2 (by molecular formula)\n",
+ "\n",
+ "a = matrix([[0,0,1],[0,1,3],[2,1,1]]) # matrix formed by coefficients of unknowns \n",
+ "b = matrix([[C-no_CH4*1],[H-4*no_CH4],[Cl]]) ; #matrix formed by constant\n",
+ "x = a**(-1)*b ; # matrix of solution\n",
+ "\n",
+ "print 'Composition of product stream in %% g mol of products'\n",
+ "print 'Product Percentage g mol'\n",
+ "print 'CH4 %.1f%% g mol'%no_CH4\n",
+ "print 'Cl2 %.1f%% g mol'%x[0]\n",
+ "print 'CH3Cl %.1f%% g mol'%x[2]\n",
+ "print 'HCl %.1f%% g mol'%x[1]\n",
+ "print 'N2 %.1f%% g mol'%no_N2\n",
+ "\n",
+ "#(b)Solution of Example 10.3 using element balance\n",
+ "print '______________________________________________________________________________'\n",
+ "print '(b)Solution of Example 10.3 using element balance'\n",
+ "\n",
+ "F = 1 #CH3OH -[gmol]\n",
+ "yld = 75 #[%]\n",
+ "cnv = 90 ; #conversion of methanol-[%]\n",
+ "\n",
+ "f_O2 = 0.21 ; # mol. fraction of O2\n",
+ "f_N2 = 0.79 ; # mol. fraction of N2\n",
+ "n_O2 = 2*((1/2.0)*F) # entering oxygen -[g mol]\n",
+ "air = n_O2/f_O2 ; # Amount of air entering\n",
+ "n_N2 = air-n_O2 # entering nitrogen -[g mol]\n",
+ "\n",
+ "n_un = 9 # Number of unknowns in the given problem(excluding extent of reactions)\n",
+ "n_ie = 9 ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie # Number of degree of freedom\n",
+ "\n",
+ "print ' Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "no_N2 = n_N2 # inert ,terefore input = output\n",
+ "C = 1*F #moles of C = moles of CH3OH (by molecular formula)\n",
+ "H = 4*F ; #moles of H = 4*moles of CH3OH (by molecular formula)\n",
+ "O = 1*F +2*n_O2; # moles of O = 1*moles of CH3OH + O in air\n",
+ "no_CH2O = yld/100.0 #[g mol]\n",
+ "no_CH3OH = F-((cnv/100.0)*F) # [g mol]\n",
+ "\n",
+ "a = matrix([[0,0,1],[0,2,0],[2,1,1]]) # matrix formed by coefficients of unknowns \n",
+ "b = matrix([[(C-(no_CH3OH*1+no_CH2O*1))],[(H-(4*no_CH3OH+2*no_CH2O))],[(O-(no_CH3OH*1+no_CH2O*1))]]);\n",
+ "a = a.I\n",
+ "x = a * b ; # matrix of solution\n",
+ "\n",
+ "P = no_CH2O+no_CH3OH+no_N2+x[0]+x[1]+x[2];\n",
+ "\n",
+ "# Composition of product\n",
+ "y_CH3OH = (no_CH3OH/P )*100; # mole %\n",
+ "y_O2 = ((x[0])/P)*100; # mole %\n",
+ "y_CH2O = (no_CH2O/P)*100 ; # mole %\n",
+ "y_CO = (x[2]/P)*100 ; # mole %\n",
+ "y_H2O = (x[1]/P)*100 ; # mole % \n",
+ "y_N2 = (no_N2/P )*100; # mole %\n",
+ "\n",
+ "\n",
+ "print 'Composition of product'\n",
+ "print 'Component mole percent'\n",
+ "print ' CH3OH %.1f %%'%y_CH3OH\n",
+ "print ' O2 %.1f %%'%y_O2\n",
+ "print ' CH2O %.1f %%'%y_CH2O\n",
+ "print ' CO %.1f %%'%y_CO\n",
+ "print ' H2O %.1f %%'%y_H2O\n",
+ "print ' N2 %.1f %%'%y_N2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Solution of Example 10.1 using element balance\n",
+ " Number of degree of freedom for the given system is 0 \n",
+ " CH4 is limiting reactant \n",
+ "Composition of product stream in %% g mol of products\n",
+ "Product Percentage g mol\n",
+ "CH4 13.2% g mol\n",
+ "Cl2 23.2% g mol\n",
+ "CH3Cl 26.8% g mol\n",
+ "HCl 26.8% g mol\n",
+ "N2 10.0% g mol\n",
+ "______________________________________________________________________________\n",
+ "(b)Solution of Example 10.3 using element balance\n",
+ " Number of degree of freedom for the given system is 0 \n",
+ "Composition of product\n",
+ "Component mole percent\n",
+ " CH3OH 1.6 %\n",
+ " O2 7.6 %\n",
+ " CH2O 11.9 %\n",
+ " CO 2.4 %\n",
+ " H2O 16.7 %\n",
+ " N2 59.8 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.6 Page no. 281\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Use of Elemental Balance to Solve a Hydrocracking Problem\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables \n",
+ "P=100. ; #Product from the reactor-[g mol]\n",
+ "C3H8 = 0.195*P ; # [g mol]\n",
+ "C4H10 = 0.594*P ; # [g mol]\n",
+ "C5H12 = 0.211*P; # [g mol]\n",
+ "\n",
+ "n_un = 3 ; # Number of unknowns in the given problem(excluding extent of reaction)\n",
+ "n_ie = 3 ; # Number of independent equations\n",
+ "\n",
+ "# Calculation and Result\n",
+ "d_o_f = n_un-n_ie ; # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "C = C3H8*3+C4H10*4+C5H12*5 # moles of C on product side\n",
+ "H = C3H8*8+C4H10*10+C5H12*12 ; # moles of H on product side\n",
+ "\n",
+ "a = matrix([[8,0],[18,2]]) # matrix formed by coefficients of unknowns \n",
+ "b = matrix([[C],[H]]) ; #matrix formed by constant\n",
+ "a = a.I\n",
+ "x = a*b ; # matrix of solution\n",
+ "\n",
+ "R = x[1]/x[0] ; # Ratio of H2 consumed to C8H18 reacted = G/F\n",
+ "print ' Molar ratio of H2 consumed to C8H18 reacted is %.3f '%R"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 \n",
+ " Molar ratio of H2 consumed to C8H18 reacted is 0.992 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.7 Page no. 286\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Excesss Air\n",
+ "\n",
+ "# Variables \n",
+ "C3H8 = 20 #C3H8 burned in a test-[kg]\n",
+ "m_C3H8 = 44.09 # mol. wt . of 1 kmol C3H8\n",
+ "cf_O2 = 5 # coefficient of O2 in given reaction\n",
+ "air = 400 # Air given -[kg]\n",
+ "m_air = 29.0 # molecular wt. of 1kmol air-[kg]\n",
+ "O2p = 21 # percentage of O2 in air-[%]\n",
+ "p_CO2 = 44 # CO2 produced -[kg]\n",
+ "p_CO = 12 # CO produced -[kg]\n",
+ "\n",
+ "# Calculation \n",
+ "O2 = (air*O2p/100.0)/(m_air) # amount of entering O2-[k mol]\n",
+ "rqO2 = (C3H8*cf_O2)/(m_C3H8) # Required O2 for given reaction\n",
+ "ex_air = ((O2-rqO2)*100.0)/rqO2 ; # Excess air percent-[%]\n",
+ "\n",
+ "# Result\n",
+ "print 'Excess air percent is %.0f %%.'%ex_air"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Excess air percent is 28 %.\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.8 Page no. 287\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# A Fuel Cell to generate Electricity from Methane\n",
+ "\n",
+ "# Variables\n",
+ "F = 16. # feed of CH4 -[kg]\n",
+ "CH4p = 100. #[%]\n",
+ "m_CH4 = 16. ; # mass of kmol of CH4-[kg]\n",
+ "mol_CH4 = (F*CH4p/100)/m_CH4 #k moles of CH4 in feed-[kmol]\n",
+ "air = 300. ; # Air given -[kg]\n",
+ "m_air = 29. # molecular wt. of 1kmol air-[kg]\n",
+ "mol_air = air/m_air ; # kmoles of air-[kmol]\n",
+ "O2p = 21. # percentage of O2 in air-[%]\n",
+ "O2 = (mol_air*O2p/100) # amount of entering O2-[k mol]\n",
+ "N2 = mol_air-O2 ; # amount of entering N2-[k mol]\n",
+ "\n",
+ "n_un = 8. # Number of unknowns in the given problem(excluding extent of reactions)\n",
+ "n_ie = 8. # Number of independent equations\n",
+ "d_o_f = n_un-n_ie # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "# Product composition analysis using element balance of C,H,O and N\n",
+ "p_N2 = N2 # inert \n",
+ "C_in = 1*mol_CH4 ; # kmoles of carbon in input-[kmol]\n",
+ "H_in = 4*mol_CH4 # kmoles of hydrogen in input-[kmol]\n",
+ "O_in = 2*O2 ; # kmoles of oxygen in input-[kmol]\n",
+ "p_CO2 = C_in/1 ; #kmoles of CO2 in product obtained by carbon balance-[kmol]\n",
+ "p_H2O = H_in/2 ; #kmoles of H2O in product obtained by hydrogen balance-[kmol]\n",
+ "p_O2 = (O_in-(2*p_CO2+p_H2O))/2 #kmoles of O2 in product obtained by oxygen balance-[kmol]\n",
+ "p_CH4 = 0 # Complete reaction occurs\n",
+ "P = p_CH4 + p_N2+ p_CO2 + p_H2O + p_O2;\n",
+ "\n",
+ "y_N2 = p_N2*100/P ; #[mol %]\n",
+ "y_CO2 = p_CO2*100/P ; #[mol %]\n",
+ "y_H2O = p_H2O*100/P ; #[mol %]\n",
+ "y_O2 = p_O2*100/P ; #[mol %]\n",
+ "y_CH4 = p_CH4*100/P ; #[mol %]\n",
+ "\n",
+ "# Results\n",
+ "print 'Composition of product'\n",
+ "print 'Component mole percent'\n",
+ "print ' CH4 %.1f %%'%y_CH4\n",
+ "print ' O2 %.1f %%'%y_O2\n",
+ "print ' CO2 %.1f %%'%y_CO2\n",
+ "print ' H2O %.1f %%'%y_H2O\n",
+ "print ' N2 %.1f %%'%y_N2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 \n",
+ "Composition of product\n",
+ "Component mole percent\n",
+ " CH4 0.0 %\n",
+ " O2 1.5 %\n",
+ " CO2 8.8 %\n",
+ " H2O 17.6 %\n",
+ " N2 72.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 10.9 Page no. 290\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Combustion of Coal\n",
+ "\n",
+ "# Variables\n",
+ "F = 100. # feed of coal -[lb]\n",
+ "C = 83.05 #[%]\n",
+ "H = 4.45 #[%]\n",
+ "O = 3.36 ; # [%]\n",
+ "N = 1.08 # [%]\n",
+ "S = 0.70 #[%]\n",
+ "ash = 7.36 #[%]\n",
+ "H2O = 3.9 ; #[%]\n",
+ "w_C = 12. ; # mol. wt. of C\n",
+ "w_H = 1.008; #mol. wt. of H\n",
+ "w_O = 16. ; # mol. wt. of O\n",
+ "w_N = 14. ; # mol. wt. of N\n",
+ "w_S = 32. ; #mol. wt. of S\n",
+ "\n",
+ "CO2 = 15.4 #[%]\n",
+ "CO = 0.0 #[%]\n",
+ "O2 = 4.0 ; # [%]\n",
+ "N2 = 80.6 #[%]\n",
+ "ash_R = 86 #[%]\n",
+ "odr = 14 #[%]\n",
+ "\n",
+ "H2O_air = .0048 # [lb H2O/lb dry air]\n",
+ "m_air = 29. # mol. wt. of air\n",
+ "mf_O2 = 0.21 # mole fraction of O2 in air\n",
+ "mf_N2 = 0.79 #mole fraction of N2 in air\n",
+ "m_H2O = 18. # mol. wt. of H2O\n",
+ "\n",
+ "#Calculations\n",
+ "H_cl = (H2O*2)/m_H2O ; # lb mol of H in coal moisture\n",
+ "O_cl = H_cl/2. ; # lb mol of O in coal moisture\n",
+ "\n",
+ "H_air = (H2O_air*m_air )/m_H2O # lb mol of H per lb mol air\n",
+ "O_air = H_air/2. # lb mol of O per lb mol air \n",
+ "\n",
+ "# Ash balance to get refuse(R)\n",
+ "R = ash/(ash_R/100.) # Refuse-[lb]\n",
+ "\n",
+ "pub_cl = 14. # percentage of unburned coal in refuse-[%]\n",
+ "ub_cl = (14/100.)*R # amount of unburned coal in refuse\n",
+ "C_p = (C/(100-ash))*ub_cl # C in unburned coal-[lb]\n",
+ "H_p = (H/(100-ash))*ub_cl ; # H in unburned coal-[lb]\n",
+ "O_p = (O/(100-ash))*ub_cl ; # O in unburned coal-[lb]\n",
+ "N_p = (N/(100-ash))*ub_cl ; # N in unburned coal-[lb]\n",
+ "S_p = (S/(100-ash))*ub_cl ; # S in unburned coal-[lb]\n",
+ "mol_C = C_p/w_C; # lb mol of C\n",
+ "mol_H = H_p/w_H ; # lb mol of H\n",
+ "mol_N = N_p/w_N ; # lb mol of N\n",
+ "mol_O = O_p/w_O ; # lb mol of O\n",
+ "mol_S = S_p/w_S ; # lb mol of S \n",
+ "\n",
+ "\n",
+ "n_un = 4. # Number of unknowns in the given problem(excluding extent of reactions)\n",
+ "n_ie = 4. # Number of independent equations\n",
+ "d_o_f = n_un-n_ie # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i '%d_o_f\n",
+ "\n",
+ "#Using element balance of C+S, N& H\n",
+ "P = (C/w_C + S/w_S - (mol_C+mol_S ))/.154 # mol of stack gas-[lb mol]\n",
+ "A = (2*P*.806 +2*mol_N-N/w_N)/(2*mf_N2) # mol of air -[lb mol]\n",
+ "W = (H/w_H +H_cl+H_air*A-mol_H)/2 # moles of exit water-[lb mol]\n",
+ "print ' Moles of stack gas(P) - %.1f lb mol'%P\n",
+ "print ' Moles of air (A) - %.1f lb mol '%A\n",
+ "print ' Moles of exit water(W) - %.1f lb mol '%W\n",
+ "\n",
+ "C_req = (C/w_C)/1\n",
+ "H_req = (H/w_H)/4 \n",
+ "N_req = 0 # inert\n",
+ "O_req = (O/w_O)/2 \n",
+ "S_req = (S/w_S)/1 \n",
+ "total_O2_req = C_req+H_req+N_req+O_req +S_req \n",
+ "O2_in = A*mf_O2 # O2 entering in air\n",
+ "ex_air = 100*((O2_in-total_O2_req)/total_O2_req)\n",
+ "\n",
+ "# Results\n",
+ "print ' Excess air is %.1f %%.'%ex_air"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 \n",
+ " Moles of stack gas(P) - 44.5 lb mol\n",
+ " Moles of air (A) - 45.4 lb mol \n",
+ " Moles of exit water(W) - 2.6 lb mol \n",
+ " Excess air is 16.8 %.\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb
new file mode 100644
index 00000000..9592fff3
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb
@@ -0,0 +1,498 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Material Balance Problems involving Multiple Units"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 11.1 Page no. 311\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determination of the Number of Independent Material Balance in a process with Multiple Units\n",
+ "\n",
+ "# Variables \n",
+ "\n",
+ "w_A1 = 1 #concentration of A in 1\n",
+ "w_B2 = 1 # concentration of B in 2\n",
+ "w_A3 = 0.8 # concentration of A in 3\n",
+ "w_B3 = 0.2 # concentration of B in 3\n",
+ "w_C4 = 1 # concentration of C in 4\n",
+ "w_A5 = 0.571 #concentration of A in 5\n",
+ "w_B5 = 0.143 #concentration of B in 5\n",
+ "w_C5 = 0.286 #concentration of C in 5\n",
+ "w_D6 = 1 # concentration of D in 6\n",
+ "w_A7 = 0.714 # concentration of A in 7\n",
+ "w_B7 = 0.286 # concentration of B in 7\n",
+ "w_B8 = 0.333 #concentration of B in 8\n",
+ "w_C8 = .667 #concentration of C in 8\n",
+ "\n",
+ "us1 = 2 # Species involved in unit 1\n",
+ "us2 = 3 ; # Species involved in unit 2\n",
+ "us3 = 4 ; # Species involved in unit 3\n",
+ "\n",
+ "# Caculations \n",
+ "total_sp = us1+us2+us3 # Total species in system\n",
+ "\n",
+ "# Results\n",
+ "print 'Number of possible equations are 9, they are as follows- '\n",
+ "print ' Subsystem 1'\n",
+ "print ' A: F1*w_A1+F2*0 = F3*w_A3 (a)'\n",
+ "print ' B:F1*0 + F2*w_B2 = F3*w_B3 (b)'\n",
+ "print ' Subsystem 2'\n",
+ "print ' A: F3*w_A3+F4*0 = F5*w_A5 (c)'\n",
+ "print ' B:F3*w_B3 + F4*0 = F5*w_B5 (d)'\n",
+ "print ' C: F3*0+F4*w_C4 = F5*w_C5 (e)'\n",
+ "print ' Subsystem 3'\n",
+ "print ' A: F5*w_A5+F6*0 = F7*w_A7+F8*0 (f)'\n",
+ "print ' B:F5*w_B5 + F6*0 = F7*0+F8*w_B8 (g)'\n",
+ "print ' C: F5*w_C5+F6*0 = F7*0+F8*w_C8 (h)'\n",
+ "print ' D:F5*w_C5+F6*0 = F7*0+F8*w_C8 (i)'\n",
+ "print ' The above equations do not form a unique set'\n",
+ "\n",
+ "# By inspection we can see that only 7 equations are independent \n",
+ "#Independent Equations are: \n",
+ "# Subsystem 1\n",
+ "#A: F1*w_A1+F2*0 = F3*w_A3 (a)\n",
+ "#B:F1*0 + F2*w_B2 = F3*w_B3 (b)\n",
+ "#Subsystem 2\n",
+ "#A: F3*w_A3+F4*0 = F5*w_A5 (c)\n",
+ "# C: F3*0+F4*w_C4 = F5*w_C5 (e)\n",
+ "# Subsystem 3\n",
+ "#A: F5*w_A5+F6*0 = F7*w_A7+F8*0 (f)\n",
+ "#B:F5*w_B5 + F6*0 = F7*0+F8*w_B8 (g)\n",
+ "#D:F5*w_C5+F6*0 = F7*0+F8*w_C8 (i)\n",
+ "\n",
+ "print ' Number of independent equations are 7 '"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of possible equations are 9, they are as follows- \n",
+ " Subsystem 1\n",
+ " A: F1*w_A1+F2*0 = F3*w_A3 (a)\n",
+ " B:F1*0 + F2*w_B2 = F3*w_B3 (b)\n",
+ " Subsystem 2\n",
+ " A: F3*w_A3+F4*0 = F5*w_A5 (c)\n",
+ " B:F3*w_B3 + F4*0 = F5*w_B5 (d)\n",
+ " C: F3*0+F4*w_C4 = F5*w_C5 (e)\n",
+ " Subsystem 3\n",
+ " A: F5*w_A5+F6*0 = F7*w_A7+F8*0 (f)\n",
+ " B:F5*w_B5 + F6*0 = F7*0+F8*w_B8 (g)\n",
+ " C: F5*w_C5+F6*0 = F7*0+F8*w_C8 (h)\n",
+ " D:F5*w_C5+F6*0 = F7*0+F8*w_C8 (i)\n",
+ " The above equations do not form a unique set\n",
+ " Number of independent equations are 7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 11.2 Page no.315\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Material Balances for Multiple Units in which no Reaction occurs\n",
+ "\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables \n",
+ "\n",
+ "G = 1400 #[kg]\n",
+ "n_un = 16 # Number of unknowns in the given problem(excluding extent of reactions)\n",
+ "n_ie = 16 ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie # Number of degree of freedom\n",
+ "\n",
+ "print 'For unit 1 number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "o1_air = 0.995 ; # Mass fraction of air at out of unit 1 in A\n",
+ "i1_air = 0.95 ; # Mass fraction air at in of unit 1 in G\n",
+ "i1_wtr = 0.02; # Mass fraction water at in of unit 1 in G\n",
+ "F1_wtr = 0.81 ; # Mass fraction of water at out of unit 1 in F\n",
+ "o1_wtr = 0.005 ; # Mass fraction of water at out of unit 1 in A\n",
+ "o2_wtr = 0.96 ; # Mass fraction of water at out of unit 2 in B\n",
+ "o3_wtr = 0.01; # Mass fraction of water at out of unit 3 in D\n",
+ "i1_act = 0.03 ; # Mass fraction of acetone at in of unit 1 in G\n",
+ "F1_act = 0.19 ; # Mass fraction of acetone at out of unit 1 in F\n",
+ "o3_act = 0.99 ; # Mass fraction of acetone at out of unit 3 in D\n",
+ "o2_act = 0.04 ; # Mass fraction of acetone at out of unit 2 in B\n",
+ "\n",
+ "# Calculations \n",
+ "A = G*i1_air/o1_air ; #air-[kg]\n",
+ "F = G*i1_act/F1_act ; #[kg]\n",
+ "W = (F*F1_wtr+A*o1_wtr-G*i1_wtr)/1 #Pure water in -[kg]\n",
+ "\n",
+ "n_un = 9 ; # Number of unknowns in the given problem(excluding extent of reactions)\n",
+ "n_ie = 9 ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie \n",
+ "\n",
+ "print ' For unit 2 and 3 number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "a = matrix([[o3_act, o2_act],[o3_wtr, o2_wtr]]);\n",
+ "b = matrix([[F*F1_act],[F*F1_wtr]])\n",
+ "a = a.I\n",
+ "x = a*b \n",
+ "\n",
+ "# Results\n",
+ "print ' W-Pure water in to unit 1 - %.2f kg/hr'%W\n",
+ "print ' A-Air out of unit 1 - %.2f kg/hr'%A\n",
+ "print ' F-out of unit 1 - %.2f kg/hr'%F\n",
+ "print ' B-out of unit 2 - %.2f kg/hr'%x[1]\n",
+ "print ' D-out of unit 3 - %.2f kg/hr'%x[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For unit 1 number of degree of freedom for the given system is 0 .\n",
+ " For unit 2 and 3 number of degree of freedom for the given system is 0 .\n",
+ " W-Pure water in to unit 1 - 157.74 kg/hr\n",
+ " A-Air out of unit 1 - 1336.68 kg/hr\n",
+ " F-out of unit 1 - 221.05 kg/hr\n",
+ " B-out of unit 2 - 186.15 kg/hr\n",
+ " D-out of unit 3 - 34.90 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 11.3 Page no. 318\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Material Balance for problems Involving Multiple units and Reactions\n",
+ "\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables \n",
+ "P = 6205. #[lb mol/hr]\n",
+ "amt_F = 560. ; #[bbl]\n",
+ "C_F = 0.50 ; # [mol fraction]\n",
+ "H2_F = 0.47 ; #[mol fraction]\n",
+ "S_F = 0.03 ; #[mol fraction]\n",
+ "\n",
+ "CH4_G = 0.96 ; #[mol fraction]\n",
+ "C2H2_G = 0.02 ; #[mol fraction]\n",
+ "CO2_G = 0.02 ; #[mol fraction]\n",
+ "\n",
+ "O2_A = 0.21 ; #[mol fraction]\n",
+ "N2_A = 0.79 ; #[mol fraction]\n",
+ "\n",
+ "# Analysis of air into Oil furnace(A1)\n",
+ "O2_A1 = 0.20 ; #[mol fraction]\n",
+ "N2_A1 = 0.76 ; #[mol fraction]\n",
+ "CO2_A1 = 0.04 ; #[mol fraction]\n",
+ "\n",
+ "#Stack gas(P) analysis\n",
+ "N2_P = .8493 ; #[mol fraction]\n",
+ "O2_P = .0413 ; #[mol fraction]\n",
+ "SO2_P = .0010 ; # [mol fraction]\n",
+ "CO2_P = .1084 ; #[mol fraction]\n",
+ "\n",
+ "# Degree of freedom analysis \n",
+ "n_un = 5; \n",
+ "n_ie = 5 ;\n",
+ "d_o_f = n_un-n_ie; # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "\n",
+ "# Calculations & Results\n",
+ "F = P* SO2_P/S_F ; # [lb mol/hr]\n",
+ "a = matrix([[2*CH4_G+C2H2_G, -1, 0, 0],[0, 0, N2_A, N2_A1],[CO2_G ,-.5, O2_A, O2_A1+CO2_A1], \n",
+ " [CH4_G+2*C2H2_G+CO2_G,0,0,CO2_A1]]);# matrix of coefficients\n",
+ "b = matrix([[-F*H2_F],[P*N2_P],[P*(O2_P+CO2_P+SO2_P)],[(P*CO2_P-F*C_F)]]); # matrix of constants\n",
+ "a = a.I\n",
+ "x = a*b \n",
+ "G = x[0]\n",
+ "m_F = 7.91\n",
+ "Fc = (F*m_F)/(7.578*42) # Fuel gas consumed -[bbl/hr]\n",
+ "time = amt_F/Fc ; # Time for which available fuel gas lasts-[hr]\n",
+ "\n",
+ " \n",
+ "print '(1) Fuel gas consumed(F) is %.2f bbl/hr .'%Fc\n",
+ "print '(2) Time for which available fuel gas lasts is %.0f hr .'%time\n",
+ "\n",
+ "# For increase in arsenic and mercury level\n",
+ "F_oil = Fc*42; #[gal/hr]\n",
+ "Em_ars2 = (3.96 *10**(-4))/1000.0 ; # [lb/gal]\n",
+ "Em_Hg2 = (5.92 *10**(-4))/1000.0 ; # [lb/gal]\n",
+ "ars_F = F_oil*Em_ars2 \n",
+ "Hg_F = F_oil*Em_Hg2 \n",
+ "G_gas = G*359 #[ft**3/hr]\n",
+ "Em_ars1 = (2.30 *10**(-4))/10**6 ; # [lb/ft**3]\n",
+ "Em_Hg1 = (1.34 *10**(-4))/10**6 ; # [lb/ft**3]\n",
+ "ars_G = G_gas*Em_ars1;\n",
+ "Hg_G = G_gas*Em_Hg1 ;\n",
+ "in_ars = ((ars_F-ars_G)/ars_G)*100 #[% increase in Arsenic emission]\n",
+ "in_Hg = ((Hg_F-Hg_G)/Hg_G)*100 #[% increase in Mercury emission]\n",
+ "\n",
+ "print '(3) Increase in Arsenic emission is %.1f %% .'%in_ars\n",
+ "print '(4) Increase in Mercury emission is %.1f %% .'%in_Hg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 .\n",
+ "(1) Fuel gas consumed(F) is 5.14 bbl/hr .\n",
+ "(2) Time for which available fuel gas lasts is 109 hr .\n",
+ "(3) Increase in Arsenic emission is 107.4 % .\n",
+ "(4) Increase in Mercury emission is 432.3 % .\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 11.4 Page no. 322\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Analysis of Sugar Recovery Process involving Multiple Serial Units\n",
+ "# Solution fig E11.4\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables \n",
+ "M = 1000. ; #[lb]\n",
+ "F_s = 16/100. # Fraction of sugar in F\n",
+ "F_w = 25/100. # Fraction of water in F\n",
+ "F_p = 59/100. # Fraction of pulp in F\n",
+ "D_p = 80/100. # Fraction of pulp in D\n",
+ "E_s = 13/100. # Fraction of sugar in E\n",
+ "E_p = 14/100. # Fraction of pulp in E\n",
+ "G_p = 95/100. # Fraction of pulp in G\n",
+ "H_s = 15/100. # Fraction of sugar in H\n",
+ "K_s = 40/100. # Fraction of sugar in K\n",
+ "\n",
+ "# Calculations \n",
+ "K_w = 1 - K_s\n",
+ "K = M/K_s;\n",
+ "L = K_w*K;\n",
+ "\n",
+ "# For evaporator equations are \n",
+ "H_w = 1- H_s\n",
+ "H = K_s*K/H_s\n",
+ "J = H - K; \n",
+ "\n",
+ "# For screen equations are \n",
+ "E_w = 1 - (E_p + E_s) \n",
+ "\n",
+ "a1 = matrix([[1,-1],[E_p,-G_p]])\n",
+ "b1 = matrix([[H,],[0,]]) \n",
+ "a1 = a1.I\n",
+ "x1 = a1*b1\n",
+ "E = x1[0] \n",
+ "G = x1[1] \n",
+ "G_s = (E_s*E - H_s *H )/G\n",
+ "G_w = 1 -(G_s + G_p) \n",
+ "\n",
+ "a2 = matrix([[1,-1],[F_p,-D_p]]) # Matrix of coefficients of unknown\n",
+ "\n",
+ "F = 7818.93 \n",
+ "D = 1152.2634 \n",
+ "\n",
+ "D_s = (F_s*F - E_s*E )/D # By sugar balance\n",
+ "D_w = 1 -(D_s + D_p) # summation of wt. fraction is 1\n",
+ "\n",
+ "S_rec = M/(F*F_s) ; # Fraction of sugar recovered \n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print 'Flow streams and their respective compositions.'\n",
+ "print ' M = %.0f lb '%M\n",
+ "print ' Sugar: %.2f '%1\n",
+ "\n",
+ "print ' L = %.0f lb '%L\n",
+ "print ' Water: %.2f'%1\n",
+ "\n",
+ "print ' K = %.0f lb '%K\n",
+ "print ' Sugar: %.2f'%K_s\n",
+ "print ' Water: %.2f'%K_w\n",
+ "\n",
+ "print ' J = %.0f lb '%J\n",
+ "print ' Water: %.2f '%1\n",
+ "\n",
+ "print ' H = %.0f lb '%H\n",
+ "print ' Sugar: %.2f'%H_s\n",
+ "print ' Water: %.2f'%H_w\n",
+ "\n",
+ "print ' G = %.0f lb '%G\n",
+ "print ' Sugar: %.3f'%G_s\n",
+ "print ' Water: %.3f'%G_w\n",
+ "print ' Pulp : %.2f'%G_p\n",
+ "\n",
+ "print ' E = %.0f lb '%E\n",
+ "print ' Sugar: %.2f'%E_s\n",
+ "print ' Water: %.2f'%E_w\n",
+ "print ' Pulp : %.2f'%E_p\n",
+ "\n",
+ "print ' D = %.0f lb '%D\n",
+ "print ' Sugar: %.3f'%D_s\n",
+ "print ' Water: %.3f'%D_w\n",
+ "print ' Pulp : %.2f'%D_p\n",
+ "\n",
+ "print ' F = %.0f lb '%F\n",
+ "print ' Sugar: %.2f'%F_s\n",
+ "print ' Water: %.2f'%F_w\n",
+ "print ' Pulp : %.2f'%F_p"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow streams and their respective compositions.\n",
+ " M = 1000 lb \n",
+ " Sugar: 1.00 \n",
+ " L = 1500 lb \n",
+ " Water: 1.00\n",
+ " K = 2500 lb \n",
+ " Sugar: 0.40\n",
+ " Water: 0.60\n",
+ " J = 4167 lb \n",
+ " Water: 1.00 \n",
+ " H = 6667 lb \n",
+ " Sugar: 0.15\n",
+ " Water: 0.85\n",
+ " G = 1152 lb \n",
+ " Sugar: 0.014\n",
+ " Water: 0.036\n",
+ " Pulp : 0.95\n",
+ " E = 7819 lb \n",
+ " Sugar: 0.13\n",
+ " Water: 0.73\n",
+ " Pulp : 0.14\n",
+ " D = 1152 lb \n",
+ " Sugar: 0.204\n",
+ " Water: -0.004\n",
+ " Pulp : 0.80\n",
+ " F = 7819 lb \n",
+ " Sugar: 0.16\n",
+ " Water: 0.25\n",
+ " Pulp : 0.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 11.5 Page no.324\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Production of a Hormone in connected Reactor\n",
+ "\n",
+ "# Variables \n",
+ "F = 15. #[L/hr]\n",
+ "cs_in = 10. #Nutrient conc. input vessel - [g nutrient/L substrate]\n",
+ "V1 = 100. ; # [L]\n",
+ "V2 = 50. ; #[L]\n",
+ "Yxs = 0.2 ; # [cells/g]\n",
+ "umax = 0.4 ; #[hr** - 1]\n",
+ "Ks = 2. ; #[g/L] - Monod constant\n",
+ "\n",
+ "# Calculations\n",
+ "u1 = F/V1 #[hr** - 1] #[hr** - 1]\n",
+ "cs_out = (Ks * u1/umax)/(1 - (u1/umax)) \n",
+ "\n",
+ "x_out = Yxs * (cs_in - cs_out) #[g cells / L substrate]\n",
+ "\n",
+ "u2 = F/V2;\n",
+ "cs_out1 = (Ks * u2/umax)/(1 - (u2/umax)) #Nutrient conc. output vessel - [g nutrient/L substrate]\n",
+ "x_out1 = Yxs * (cs_in - cs_out1) #[g cells / L substrate]\n",
+ "\n",
+ "x_out2 = 1.73 # From eqn. (e),(f) and (g) - [g cells / L substrate]\n",
+ "\n",
+ "# Results\n",
+ "print 'g cells/L from option 1 is %.2f.'%x_out\n",
+ "print 'g cells/L from option 2 is %.2f.'%x_out2\n",
+ "print 'By comparing option 1 and option 2 the respective answers are essentially the same.'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "g cells/L from option 1 is 1.76.\n",
+ "g cells/L from option 2 is 1.73.\n",
+ "By comparing option 1 and option 2 the respective answers are essentially the same.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb
new file mode 100644
index 00000000..1d00a5b6
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb
@@ -0,0 +1,368 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Recycle Bypass Purge and the Industrial Application of Material Balance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 12.1 Page No.349\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import matrix\n",
+ "\t\t\t\n",
+ "# Variables \n",
+ "F = 10000. ;\t\t\t#[lb/hr]\n",
+ "\t\t\t\n",
+ "NaOH_F = 40./100 ;\t \t\t#[wt. fraction]\n",
+ "NaOH_P1 = 95./100 ;\t \t\t#[wt. fraction of NaOH filter cake]\n",
+ "NaOH_P2 = (0.05 * 45)/100 ;\t\t\t#[wt. fraction of NaOH in NaOH soln.]\n",
+ "H2O_P2 = (0.05 * 55)/100 ;\t\t\t#[wt. fraction of H2O in NaOH soln.]\n",
+ "NaOH_R = 45./100;\t\t\t#[wt. fraction]\n",
+ "NaOH_G = 50./100;\t\t\t#[wt. fraction]\n",
+ "\t\t\t\n",
+ "P = (NaOH_F * F)/(NaOH_P1 + NaOH_P2) ;\t\t\t#[lb/hr]\n",
+ "\t\t\t\n",
+ "W = F-P ;\t\t\t# [lb/hr]\n",
+ "\n",
+ "# Calculations & Results\t\n",
+ "a = matrix([[NaOH_G,-NaOH_R],[1,-1]]) \t\t\t# matrix formed of coefficients of unknown\n",
+ "b = matrix([[F*NaOH_F],[P]]);\t\t\t# matrix formed by constant\n",
+ "a = a.I\n",
+ "x = a*b ;\t\t\t# matrix of solutions . x(1) = G, x(2) = R\n",
+ "G = x[0] ;\t\t\t# [lb/hr]\n",
+ "R = x[1] ;\t\t\t# [lb/hr]\n",
+ " \n",
+ "print '(a) Flow rate of water removed by evaporator is %.1f lb/hr'%W\n",
+ "print 'The recycle rate of the process is %.1f lb/hr'%R\n",
+ "\n",
+ "\t\t\t\n",
+ "NaOH_H = 45./100 ;\t\t\t#[wt fraction]\n",
+ "H2O_H = 55./100 ;\t\t\t#[wt fraction]\n",
+ "\n",
+ "a1 = matrix([[NaOH_G,-NaOH_H],[NaOH_G,-H2O_H]]) ;\t\t\t# matrix formed of coefficients of unknown\n",
+ "b1 = matrix([[((NaOH_P1+NaOH_P2)* P)],[(H2O_P2) * P]]);\t\t\t# matrix formed by constant\n",
+ "x1 = a1**-1\n",
+ "x1 = x1*b1 ;\t\t\t# matrix of solutions nw_G = x1(1);H = x1(2)\n",
+ "nw_G1 = x1[0] ;\t\t\t# [lb/hr]\n",
+ "H = x1[1];\t\t\t# [lb/hr]\n",
+ "\n",
+ "nw_F = (NaOH_H * H + (NaOH_P1 + NaOH_P2) * P)/NaOH_F ;\t\t\t#[lb/hr]\n",
+ "print ' (b) Total feed rate when filterate is not recycled is %.1f lb/hr'%nw_F\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Flow rate of water removed by evaporator is 5886.9 lb/hr\n",
+ "The recycle rate of the process is 38868.9 lb/hr\n",
+ " (b) Total feed rate when filterate is not recycled is 53727.5 lb/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 12.2 Page No.357\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F_Bz = 100. ;\t\t\t# Fresh benzene feed / basis - [mol]\n",
+ "con_Bz = .95 ;\t\t\t# Fraction of conversion of benzene\n",
+ "sp_con = .20 ;\t\t\t# Fraction of single pass conversion\n",
+ "ex_H2 = .20 ;\t\t\t# Fraction of exces H2 used in fresh feed\n",
+ "R_Bz = 22.74 ;\t\t\t# Benzene in Recycle stream - [mol %]\n",
+ "R_H2 = 78.26 ;\t\t\t# H2 in Recycle stream - [mol %]\n",
+ "TLV_Bz = 0.5 ;\t\t\t# TLV value of benzene -[ppm]\n",
+ "TLV_C6H12 = 300. ;\t\t\t# TLV value of cyclohexane -[ppm]\n",
+ "TLV_H2 = 1000. ;\t\t\t# TLV value of H2 -[ppm]\n",
+ "\n",
+ "# Calculations\n",
+ "F_H2 = F_Bz*3*(1+ex_H2) ;\t\t\t# H2 in Feed - [mol]\n",
+ "F = F_Bz + F_H2 ;\t\t\t# Total feed - [mol] \n",
+ "\n",
+ "ex_r = con_Bz*F_Bz/(-(-1)) ;\t\t\t# Extent of reaction\n",
+ "\n",
+ "P_Bz = F_Bz -1*(ex_r) ;\t\t\t# Benzene in P ,by benzene balance - [mol]\n",
+ "P_H2 = F_H2 + -3*(ex_r) ;\t\t\t# H2 in P ,by H2 balance - [mol]\n",
+ "P_C6H12 = 0 + 1*(ex_r) ;\t\t\t# Cyclohexane in P ,by cyclohexane balance - [mol]\n",
+ "P = P_Bz + P_H2 + P_C6H12 ;\t\t\t# Total Product - [ mol]\n",
+ "\n",
+ "R = ((-(-ex_r))/(sp_con) - F_Bz)/(R_Bz/100.) ;\t\t\t# Recycle stream - [mol]\n",
+ "R_by_F = R/F ;\t\t\t# Ratio of R to F \n",
+ "\n",
+ "TLV = (P_Bz/P)*(1/TLV_Bz) + (P_H2/P)*(1./TLV_H2) + (P_C6H12/P)*(1/TLV_C6H12) ;\t\t\t# TLV (environmental index) \n",
+ "\n",
+ "# Results\n",
+ "print 'Ratio of R to F is %.2f .'%R_by_F\n",
+ "print ' TLV (environmental index) is %.3f .'%TLV\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of R to F is 3.58 .\n",
+ " TLV (environmental index) is 0.059 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 12.3 Page No.359\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "RR = 8.33 ;\t\t\t# Recycle ratio\n",
+ "F = 100. ;\t\t\t# Overall feed/basis - [lb]\n",
+ "F_g = 0.40 ;\t\t\t# Fraction of glucose in overall feed \n",
+ "F_w = 0.60 ;\t\t\t# Fraction of water in overall feed \n",
+ "F_dash_f = 0.04 ; \t\t\t# Fraction of fructose in feed to reactor\n",
+ "P = F \t\t\t# By overall balance -[lb]\n",
+ "R = P/RR ;\t\t\t# Recycle stream - [lb]\n",
+ "P_w = (F_w * F)/ P ;\t\t\t# Fraction of water in product(P), by overall water balance\n",
+ "R_w = P_w ;\t\t\t#Fraction of water in recycle (R), since both R and P has same composition\n",
+ "\n",
+ "# Calculations\t\t\n",
+ "F_dash = F +R ;\t\t\t# Feed to reactor ,by total balance -[lb]\n",
+ "R_f = (F_dash*F_dash_f)/R ;\t\t\t# Fraction of fructose in recycle stream \n",
+ "R_g = 1 - (R_f + R_w) ;\t\t\t# Fraction of glucose in recycle stream\n",
+ "F_dash_g = (F*F_g + R*R_g)/F_dash ;\t\t\t# Fraction of glucose i feed to reactor\n",
+ "\n",
+ "f_con = ((F_dash*F_dash_g) - (R + P)*R_g)/(F_dash*F_dash_g) ;\t\t\t# Fraction of conversion of glucose in reactor\n",
+ "\n",
+ "# Results\n",
+ "print 'Fraction of conversion of glucose in reactor is %.2f .'%f_con\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fraction of conversion of glucose in reactor is 0.93 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 12.4 Page No.362\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F = 100. ;\t\t\t# Overall feed/basis - [kg]\n",
+ "F_com = 0.10 ;\t\t\t# Mass fraction of component in fresh feed \n",
+ "F_w = 0.90 ;\t\t\t# Mass fraction of water in fresh feed \n",
+ "P_w = 0.10 ;\t\t\t# Mass fraction of water in product\n",
+ "P_com = 0.90 ;\t\t\t#Mass fraction of component in product\n",
+ "F_dash_com = 0.03 ;\t\t\t#Mass fraction of component in feed to reactor\n",
+ "W_w = 1. ;\t\t\t# Mass fraction of water in W(waste)\n",
+ "C_con = .40 ;\t\t\t# Fraction of conversion of component in reactor\n",
+ "\n",
+ "# Calculations\n",
+ "P = F_com*F/P_com ;\t\t\t#By component balance- Product - [kg]\n",
+ "W = F - P ;\t\t\t# By overall balance - waste(W)- [kg]\n",
+ "\n",
+ "Rw = (F*F_com - F*F_com*C_con)/C_con ;\t\t\t# Mass of component in recycle(R) - [kg]\n",
+ "F_dash = ( F*F_com + Rw )/F_dash_com ;\t\t\t# By component balance - feed to reactor(F') -[kg]\n",
+ "R = F_dash - F ;\t\t\t # Recycle(R) - By total balance -[kg]\n",
+ "w = Rw/R ;\t\t\t # Mass fraction of component in recycle(R) \n",
+ "\n",
+ "# Results\n",
+ "print 'Recycle(R) stream- %.0f kg '%R\n",
+ "print ' Mass fraction of component in recycle(R)- %.4f .'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Recycle(R) stream- 733 kg \n",
+ " Mass fraction of component in recycle(R)- 0.0205 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 12.5 Page No.367\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F = 100. \t\t\t# Overall feed/basis - [kg]\n",
+ "F_n_C5H12 = 0.80 ;\t\t\t# Fraction of n_C5H12 in overall feed \n",
+ "F_i_C5H12 = 0.20 ;\t\t\t# Fraction of i_C5H12in overall feed \n",
+ "S_i_C5H12 = 1. ;\t\t\t# Fraction of i_C5H12 in isopentane stream\n",
+ "P_n_C5H12 = .90 ;\t\t\t# Fraction of n_C5H12 in overall product\n",
+ "P_i_C5H12 = .10 ;\t\t\t# Fraction of i_C5H12 in overall product\n",
+ "\n",
+ "# Calculations\n",
+ "P = (F*F_n_C5H12)/P_n_C5H12 ;\t\t\t#Product Material Balance of n_C5H12 -[kg]\n",
+ "S = F - P ;\t\t\t# Isopentane stream (S) from overall material balance - [kg]\n",
+ "\n",
+ "from numpy import matrix\n",
+ "a = matrix([[1,-1],[F_n_C5H12,-1]]) ;\t\t\t# Matrix of coefficients of unknown \n",
+ "b = matrix([[S],[0]]) ;\t\t\t# Matrix of constants\n",
+ "a = a.I\n",
+ "x = a*b \t\t\t# Matrix of solutions, x(1) = x , x(2) = y\n",
+ "\n",
+ "xf = x[0]/F ;\t \t\t# Fraction of butane-free gas going to isopentane tower \n",
+ "\n",
+ "# Results\n",
+ "print 'Fraction of butane-free gas going to isopentane tower is %.3f .'%xf\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fraction of butane-free gas going to isopentane tower is 0.556 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 12.6 Page No.369\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F = 100. ;\t\t\t# Overall feed/basis - [mole]\n",
+ "F_H2 = 0.673 ;\t\t\t# Mole fraction of H2 in overall feed \n",
+ "F_CO = 0.325 ;\t\t\t# Mole fraction of i_C5H12in overall feed \n",
+ "F_CH4 = .002 ;\t\t\t# Mole fraction of CH4 in overall feed \n",
+ "E_CH3OH = 1. ;\t\t\t# Mole fraction of CH3OH in Exit(E)\n",
+ "\t\n",
+ "z = .032 ;\n",
+ "CO_con = .18 ;\t\t\t# Fraction of conversion of CO in reactor\n",
+ "\n",
+ "# Calculations\n",
+ "#By using eqn.(c) and (d)\n",
+ "P = F_CH4*F/z ;\t\t\t# Purge stream - [mole]\n",
+ "\n",
+ "# Using eqn.(a) , (b) and (c)\n",
+ "x_plus_y = 1 - z ;\t\t\t# x + y \n",
+ "E = (F_H2*F + F_CO*F + 3*F_CH4*F - P*(x_plus_y + 3*z ))/3 ;\t\t\t# Exit stream - [mole]\n",
+ "\n",
+ "# By using eqn. (d)\n",
+ "y = ( F_CO*F - E )/P ;\t\t\t# Mole fraction of CO \n",
+ "\n",
+ "# By using eqn. (a)\n",
+ "x = 1 - z - y ;\t\t\t# Mole fraction of H2 \n",
+ "\n",
+ "# Lastly by using eqn.(e)\n",
+ "R = ( F_CO*F - P*y - F_CO*F*CO_con )/(y*CO_con) ;\t\t\t# Recycle steam - [mole]\n",
+ "\n",
+ "# Results\n",
+ "print 'Moles of recycle(R) per mole of feed(F) - %.4f '%(R/F)\n",
+ "print ' Moles of CH3OH(E) per mole of feed(F) - %.4f '%(E/F)\n",
+ "print ' Moles of Purge(P) per mole of feed(F) - %.4f '%(P/F);\n",
+ "print ' Composition of Purge '\n",
+ "print ' Component Mole fraction '\n",
+ "print ' H2 %.3f '%x\n",
+ "print ' CO %.3f '%y\n",
+ "print ' CH4 %.3f '%z\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of recycle(R) per mole of feed(F) - 7.0556 \n",
+ " Moles of CH3OH(E) per mole of feed(F) - 0.3125 \n",
+ " Moles of Purge(P) per mole of feed(F) - 0.0625 \n",
+ " Composition of Purge \n",
+ " Component Mole fraction \n",
+ " H2 0.768 \n",
+ " CO 0.200 \n",
+ " CH4 0.032 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb
new file mode 100644
index 00000000..b72b411d
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb
@@ -0,0 +1,426 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Ideal Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.1 Page No. 404\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "m_CO2 = 40. ;\t\t\t# Mass of CO2-[kg]\n",
+ "mol_wt_CO2 = 44. ;\t\t\t# Molecular mass of 1kmol CO2 -[kg]\n",
+ "mol_V = 22.42 ;\t\t\t# Molar of ideal gas at standard condition-[cubic metre/kg mol]\n",
+ "\n",
+ "# Calculations\n",
+ "V_CO2 = (m_CO2 * mol_V)/(mol_wt_CO2);\t\t\t# volume of CO2-[cubic metre]\n",
+ "\n",
+ "# Results\n",
+ "print 'Volume occupied by 40 kg CO2 at standard condition is %.1f cubic metre.'%V_CO2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume occupied by 40 kg CO2 at standard condition is 20.4 cubic metre.\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.2 Page No. 405\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "p =1. ;\t\t\t# Pressure -[atm]\n",
+ "V = 22415. ;\t\t\t# Molar valume -[cubic centimetre/g mol]\n",
+ "T = 273.15 ;\t\t\t# Temperature-[K]\n",
+ "\n",
+ "# Calculations\n",
+ "R = (p*V/T);\t\t\t# Universal gas constant-[(cubic centimetre.atm)/(K.g mol)]\n",
+ "\n",
+ "# Results\n",
+ "print 'Universal gas constant is %.2f (cubic centimetre*atm)/(K*g mol). '%R\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Universal gas constant is 82.06 (cubic centimetre*atm)/(K*g mol). \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.3 Page No.406\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "m_CO2 = 88. ;\t\t\t# Mass of CO2-[lb]\n",
+ "mol_wt_CO2 = 44. ;\t\t# Molecular mass of 1 lb mol CO2 -[lb]\n",
+ "mol_V = 359. ; \t\t\t# Molar volume-[cubic feet]\n",
+ "\n",
+ "# State 1-standard condition\n",
+ "P1 = 33.91 ; \t\t\t# Pressure -[ft of water]\n",
+ "T1 = 273. ;\t\t\t# Temperature-[K]\n",
+ "\n",
+ "# State 2\n",
+ "P2 = 32.2 ;\t\t\t# Pressure -[ft of water]\n",
+ "Tc = 15. ;\t\t\t # Temperature-[degree C]\n",
+ "T2 = Tc+273 ;\t\t\t# Temperature-[K]\n",
+ "\n",
+ "# Calculations\n",
+ "V1 = (m_CO2 * mol_V) / (mol_wt_CO2);\n",
+ "V2 = (V1 * T2 * P1) / (T1 * P2);\n",
+ "\n",
+ "# Results\n",
+ "print 'The volume occupied 88 lb of CO2 at given condition is %.0f cubic feet.'%V2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The volume occupied 88 lb of CO2 at given condition is 798 cubic feet.\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.4 Page No. 408\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "mol_wt_N2 = 28. ;\t# Molecular mass of 1 kg mol N2 -[kg]\n",
+ "mol_V = 22.42 ;\t\t# Molar of ideal gas at standard condition-[cubic metre/kg mol]\n",
+ "Tc = 27. ;\t\t\t# Temperature-[degree C]\n",
+ "T = Tc + 273. ;\t\t#Temperature-[K]\n",
+ "P = 100. ;\t\t\t#Pressure-[kPa]\n",
+ "\t\t\t\n",
+ "Ps = 101.3 ;\t\t# Pressure -[kPa]\n",
+ "Ts = 273. ;\t\t\t#Temperature-[K]\n",
+ "\n",
+ "# Calculations\n",
+ "V = (T * Ps * mol_V)/(Ts * P) ;\t\t\t# Volume occupied by N2-[cubic metre]\n",
+ "D_N2 = mol_wt_N2/V ;\t\t\t # Density of N2 at given condition-[kg/cubic metre]\n",
+ "\n",
+ "# Results\n",
+ "print ' Density of N2 at given condition is %.3f kg/cubic metre.'%D_N2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Density of N2 at given condition is 1.122 kg/cubic metre.\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No. 409 \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "mol_wt_N2 = 28. ;\t\t\t# Molecular mass of 1 lb mol N2 -[lb]\n",
+ "mol_wt_air = 29. ;\t\t\t# Molecular mass of 1 lb mol air -[lb]\n",
+ "mol_V = 359. ;\t\t\t # Molar volume of ideal gas-[cubic feet]\n",
+ "\t\n",
+ "Tf = 80. ;\t\t\t# Temperature-[degree F]\n",
+ "T = Tf + 460. ;\t\t#Temperature-[degree Rankine]\n",
+ "P = 745. ;\t\t\t#Pressure-[mm of Hg]\n",
+ "\n",
+ "Ps = 760. ;\t\t\t# Pressure -[mm of Hg]\n",
+ "Ts = 492. ;\t\t\t#Temperature-[degree Rankine]\n",
+ "\n",
+ "# Calculations\n",
+ "D_air = (Ts * P * mol_wt_air)/(T * Ps * mol_V) ;\t\t# Density of air at given condition-[lb/cubic feet]\n",
+ "D_N2 = (Ts * P * mol_wt_N2)/(T * Ps * mol_V) ;\t\t\t# Density of N2 at given condition-[lb/cubic feet]\n",
+ "sg_N2 = D_N2/D_air ;\t\t\t # Specific gravity of N2 compared to air at given condition \n",
+ "\n",
+ "# Results\n",
+ "print ' Specific gravity of N2 compared to air at given condition is %.3f .'%sg_N2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Specific gravity of N2 compared to air at given condition is 0.966 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.6 Page No. 414\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F_gas = 1. ;\t\t\t # Flue gas [kg mol]\n",
+ "mf_CO2 = 14./100 ;\t\t\t# [mol fraction]\n",
+ "mf_O2 = 6./100 ;\t\t\t# [mol fraction]\n",
+ "mf_N2 = 80./100 ;\t\t\t# [mol fraction]\n",
+ "P = 765. ;\t\t\t #Pressure-[mm of Hg]\n",
+ "T = 400. ;\t\t\t # Temperature-[degree F]\n",
+ "\n",
+ "# Calculations\n",
+ "p_CO2 = P * mf_CO2 ;\t\t# Partial pressure of CO2-[mm of Hg]\n",
+ "p_O2 = P * mf_O2 ;\t\t\t# Partial pressure of O2-[mm of Hg]\n",
+ "p_N2 = P * mf_N2 ;\t\t\t# Partial pressure of N2-[mm of Hg]\n",
+ "\n",
+ "# Results\n",
+ "print ' Component pi(Partial pressure-[mm of Hg]) '\n",
+ "print ' CO2 %.1f mm of Hg '%p_CO2\n",
+ "print ' O2 %.1f mm of Hg '%p_O2\n",
+ "print ' N2 %.1f mm of Hg '%p_N2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Component pi(Partial pressure-[mm of Hg]) \n",
+ " CO2 107.1 mm of Hg \n",
+ " O2 45.9 mm of Hg \n",
+ " N2 612.0 mm of Hg \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.7 Page no. 416\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t# Example 13.7 Page no. 416\n",
+ "\t\t\t# Solution fig E13.7\n",
+ "\n",
+ "# Variables\n",
+ "G = 100. ;\t\t\t# Basis: Pyrolysis Gas-[lb mol] \n",
+ "ub_CO = 10./100 ;\t# fraction of CO left unburnt\n",
+ "ex_air = 40./100 ;\t# fraction of excess air\n",
+ "m_vol = 359. ;\t\t# molar volume of gas at std. cond.-[cubic feet]\n",
+ "Ts = 492. ;\t\t\t# Standard temperature -[degree Rankine]\n",
+ "Ps = 29.92 ;\t\t#Standard pressure -[in. Hg]\n",
+ "\n",
+ "# Calculations\n",
+ "# Analysis of entering gas of entering gas\n",
+ "Tf1 = 90. ;\t\t\t# Temperature of gas-[degree F]\n",
+ "T_gas = Tf1 + 460. ;\t#Temperature of gas-[degree Rankine]\n",
+ "P_gas = 35. ;\t\t\t#Pressure-[in. Hg]\n",
+ "CO2 = 6.4/100 ;\t\t\t# mol fraction of CO2\n",
+ "O2 = 0.1/100 ;\t\t\t# mol fraction of O2\n",
+ "CO = 39./100 ;\t\t\t# mol fraction of CO\n",
+ "H2 = 51.8/100 ;\t\t\t# mol fraction of H2\n",
+ "CH4 = 0.6/100 ;\t\t\t# mol fraction of CH4\n",
+ "N2 = 2.1/100 ;\t\t\t# mol fraction of N2\n",
+ "\n",
+ "# Analysis of entering air\n",
+ "Tf2 = 70. ;\t\t\t # Temperature of air -[degree F]\n",
+ "T_air = Tf2 + 460. ;\t#Temperature of air-[degree Rankine]\n",
+ "P_air = 29.4 ;\t\t\t#Pressure of air [in. Hg]\n",
+ "f_N2 = 79./100 ;\t\t\t# mol fraction of N2\n",
+ "f_O2 = 21./100 ;\t\t\t# mol fraction of O2\n",
+ "\n",
+ "\n",
+ "O2r_O2 = O2 * G ;\t\t\t# O2 required by O2-[lb mol]\n",
+ "O2r_CO = CO * G/2 ;\t\t\t# O2 required by CO-[lb mol]\n",
+ "O2r_H2 = H2 * G/2 ;\t\t\t# O2 required by H2-[lb mol]\n",
+ "O2r_CH4 = G * CH4 * 2 ;\t\t\t# O2 required by CH4-[lb mol]\n",
+ "O2r_total = O2r_O2 + O2r_CO + O2r_H2 + O2r_CH4 ;\t\t\t# Total O2 required-[lb mol]\n",
+ "ex_O2 = ex_air * O2r_total ;\t\t\t# Excess O2-[lb mol]\n",
+ "total_O2 = ex_O2 + O2r_total ;\t\t\t# Total amt of O2 in air-[lb mol]\n",
+ "total_N2 = total_O2 * (f_N2/f_O2);\t\t\t# Total amt of in air-[lb mol]\n",
+ "air = total_O2 + total_N2 ;\t\t\t# Total air entering -[lb mol]\n",
+ "\n",
+ "# Product analysis\n",
+ "P_CO = ub_CO * CO * G ;\t\t\t#Unburnt CO in P-[lb mol]\n",
+ "P_N2 = N2 * G + total_N2 ;\t\t\t# N2 in P-[lb mol]\n",
+ "P_CO2 = (CO2 + CO + CH4) * G - 1 * P_CO;\t\t\t#CO2 in P-[lb mol]\n",
+ "P_H2O = (H2 + 2 * CH4) * G ;\t\t\t# H2 in P-[lb mol]\n",
+ "P_O2 = (CO2 + O2 + 0.5 * CO) * G + total_O2 -P_CO2-0.5 * (P_H2O + P_CO);\t\t\t# O2 in P-[lb mol]\n",
+ "P = P_CO + P_N2 + P_CO2 + P_H2O + P_O2 ;\t\t\t# Product-[lb mol]\n",
+ "Tf3 = 400 ;\t\t\t# Temperature of product-[degree F]\n",
+ "T_prod = Tf3 + 460 ;\t\t\t#Temperature of product-[degree Rankine]\n",
+ "P_prod = 35 ;\t\t\t# Pressure of product -[in.Hg]\n",
+ "V_gas = (G * m_vol * T_gas * Ps)/(Ts * P_gas);\n",
+ "V_air = (air * m_vol * T_air * Ps)/(Ts * P_air);\n",
+ "V_prod = (P * m_vol * T_prod * Ps)/(Ts * P_prod);\n",
+ "air_ft3 = V_air/V_gas ;\t\t\t#Air supplied per ft**3 of gas entered-[cubic feet]\n",
+ "P_ft3 = V_prod/V_gas ;\t\t\t#Product gas produced per ft**3 of gas entered-[cubic feet]\n",
+ "\n",
+ "# Results\n",
+ "print ' Air supplied per ft**3 of gas entered %.2f cubic feet. '%air_ft3\n",
+ "print ' Product gas produced per ft**3 of gas entered %.2f cubic feet.'%P_ft3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Air supplied per ft**3 of gas entered 3.57 cubic feet. \n",
+ " Product gas produced per ft**3 of gas entered 5.75 cubic feet.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 13.8 Page No. 419\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "T1c = 15. ;\t\t\t # Temperature of F & P -[degree C] \n",
+ "T1 = 273. + T1c ;S\t# Temperature of F & P -[K] \n",
+ "P1 = 105. ;\t\t\t# Pressure of F & P -[kPa]\n",
+ "\n",
+ "# Calculations\n",
+ "# F analysis\n",
+ "F_CO2 = 1.2/100 ;\t\t\t# Volume fraction \n",
+ "F_odr = 98.8/100 ;\t\t\t# Volume fraction \n",
+ "\n",
+ "# P analysis\n",
+ "P_CO2 = 3.4/100 ;\t\t\t# Volume fraction \n",
+ "P_odr = 96.6/100 ;\t\t\t# Volume fraction \n",
+ " \n",
+ "Tc_CO2 = 7. ;\t\t\t#Temperature CO2 -[degree C] \n",
+ "T_CO2 = 273. + Tc_CO2 ;\t\t\t# Temperature CO2 -[K]\n",
+ "P_CO2 = 131. ;\t\t\t# Pressure of CO2 -[kPa]\n",
+ "CO2 = 0.0917 ;\t\t\t# Volume flow rate of CO2-[cubic metre/min]\n",
+ "# Convert given volume flow rate of CO2 at temperature of F & P\n",
+ "nw_CO2 = (CO2 * T1 * P_CO2)/(T_CO2 * P1) ;\t\t\t# volume flow rate of CO2 at temperature of F & P-[cubic metre]\n",
+ "\n",
+ "from numpy import matrix\n",
+ "a = matrix([[F_odr,-P_odr],[1, -1]]);\t\t\t# Matrix formed by coefficients of unknown\n",
+ "b = matrix([[0],[-nw_CO2]]) ;\t\t\t# Matrix formed by constants\n",
+ "a = a.I\n",
+ "x = a*b ;\t\t\t# matrix of solution, x(1) = F;x(2) = P\n",
+ "F = x[0] ;\t\t\t#Volume flow rate of entering gas-[cubic metre/min]\n",
+ "P = x[1] ;\t\t\t#Volume flow rate of product [cubic metre/min]\n",
+ "\n",
+ "# Results\n",
+ "print 'Volume flow rate of entering gas is %.2f cubic metre/min'%F\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume flow rate of entering gas is 5.17 cubic metre/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb
new file mode 100644
index 00000000..dbfb8f2a
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb
@@ -0,0 +1,190 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Real Gases Compressiblity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 14.1 Page No. 442\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "T1f = 125. ;\t\t\t# Temperature of NH3 -[degree F] \n",
+ "T1 = 460. +T1f ;\t\t\t# Temperature NH3 -[degree Rankine] \n",
+ "Pg = 292. ;\t\t\t# Pressure of NH3 -[psig]\n",
+ "Pa = Pg+14.7 ;\t\t\t#Pressure of NH3 -[psia]\n",
+ "R = 10.73 ;\t\t\t#Universal gas constant-[(psia*cubic feet)/(lb mol*R)]\n",
+ "mw_NH3 = 17. ;\t\t# Molecular wt. 1 lb mol NH3-[lb]\n",
+ "n = 1/17. ;\t\t\t#[mol]\n",
+ "V_tank = 120. ;\t\t# Volume of tank-[cubic feet]\n",
+ "\n",
+ "# Calculations\n",
+ "V_id = (n*R*T1)/Pa ;\t# Specific volume of NH3 treating it ideal gas-[cubic feet/lb]\n",
+ "Tc = 729.9 ;\t\t\t#[degree R]\n",
+ "Pc = 1636. ;\t\t\t#[psia]\n",
+ "Tr = T1/Tc;\n",
+ "Pr = Pa/Pc;\n",
+ "\n",
+ "z_real = 0.855;\n",
+ "z_ideal = 1.;\n",
+ "V_real = V_id*z_real/z_ideal;\t\t\t# Specific volume of NH3 treating it real gas-[cubic feet/lb]\n",
+ "NH3 = V_tank/V_real ;\t\t\t # Actual amt. of NH3 in tank-[lb]\n",
+ "\n",
+ "# Results\n",
+ "print 'Actual amt. of NH3 in tank is %.0f lb. Therefore , boss is wrong.'%NH3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Actual amt. of NH3 in tank is 117 lb. Therefore , boss is wrong.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 14.2 Page No. 444\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Tc = 154.4 ;\t\t\t#[K]\n",
+ "Pc1 = 49.7 ;\t\t\t# [atm]\n",
+ "Pc = 101.3 * Pc1;\t\t#[kPa]\n",
+ "\n",
+ "T_O21 = -25 ;\t\t\t# Temperature-[degree C]\n",
+ "T_O2 = 273+T_O21;\t\t#Temperature -[K]\n",
+ "R = 8.134 ;\t\t\t # gas constant-[(cubic metre * kPa)/(kg mol * K)]\n",
+ "V_tank = 0.0284 ;\t\t# Volume of tank-[cubic metre]\n",
+ "mol_O2 = 32 ;\t\t\t# Kmol. wt. of O2-[kg]\n",
+ "m_O2 = 3.5 ;\t\t\t# Mass of liquid O2-[kg]\n",
+ "\n",
+ "# Calculations\n",
+ "V_sp = V_tank * mol_O2/m_O2 ;\t\t\t# Specific molar volume-[m**3/kg]\n",
+ "Vc = R * Tc/Pc ;\t\t\t # [cubic metre/kg mol]\n",
+ "Vr = V_sp/Vc;\n",
+ "Tr = T_O2/Tc;\n",
+ "\n",
+ "Pr = 1.43 ;\t\t\t# [kPa]\n",
+ "P_O2 = Pr * Pc ;\t# The pressure in the tank -[kPa]\n",
+ "\n",
+ "# Results\n",
+ "print 'The pressure in the tank is %.2f kPa.'%P_O2\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pressure in the tank is 7199.49 kPa.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 14.3 Page No. 448\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "Tc = 100. ;\t\t\t# Temperature -[degree C] \n",
+ "T = 273 +Tc ;\t# Temperature -[K] \n",
+ "P = 90. ;\t\t# Pressure [atm]\n",
+ "R = 82.06 ;\t\t\t# gas constant-[(cubic centimetre * atm)/(g mol * K)]\n",
+ "Y_CH4 = 20./100 ;\t\t\t# [mole fraction]\n",
+ "Y_C2H4 = 30./100 ;\t\t\t# [mole fraction]\n",
+ "Y_N2 = 50./100 ;\t\t\t#[mole fraction]\n",
+ "\n",
+ "#Additional information from appendix D\n",
+ "Tc_CH4 = 191. ;\t\t\t#[K]\n",
+ "Pc_CH4 = 45.8 ;\t\t\t# [atm]\n",
+ "Tc_C2H4 = 283. ;\t\t#[K]\n",
+ "Pc_C2H4 = 50.5 ;\t\t# [atm]\n",
+ "Tc_N2 = 126. ;\t\t\t#[K]\n",
+ "Pc_N2 = 33.5 ;\t\t\t# [atm]\n",
+ "\n",
+ "# Calculations & Results\n",
+ "#(a)-Ideal gas law\n",
+ "V_sp1 = R * T/P ;\t\t\t# Molar volume-[cubic centimetre/g mol]\n",
+ " \n",
+ "print '(a) The volume per mole of mixture by ideal gas law is %.1f cubic centimetre/g mol.'%V_sp1\n",
+ "\n",
+ "\t\t\t#(b)\n",
+ "Pc_mix = Pc_CH4 * Y_CH4+Pc_C2H4 * Y_C2H4+Pc_N2 * Y_N2;\t\t\t# [atm]\n",
+ "Tc_mix = Tc_CH4 * Y_CH4+Tc_C2H4 * Y_C2H4+Tc_N2 * Y_N2 ;\t\t\t# [K]\n",
+ "Pr_mix = P/Pc_mix;\n",
+ "Tr_mix = T/Tc_mix;\n",
+ "\t\t\t# With 2 parameters(Pr_mix and Tr_mix) , you can find from figure 14.4b that z * Tr_mix = 1.91\n",
+ "z = 1.91/Tr_mix;\n",
+ "V_sp2 = z * R * T/P ;\t\t\t# Molar volume-[cubic centimetre/g mol]\n",
+ "print '(b) The volume per mole of mixture by treating it to be real gas is %.1f cubic centimetre/g mol.'%V_sp2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) The volume per mole of mixture by ideal gas law is 340.1 cubic centimetre/g mol.\n",
+ "(b) The volume per mole of mixture by treating it to be real gas is 324.1 cubic centimetre/g mol.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb
new file mode 100644
index 00000000..c6c7dffb
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb
@@ -0,0 +1,75 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Real Gases Equations of State"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 15.1 Page No. 464\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of Van der Walls Equation to Calculate a Temperature\n",
+ "\n",
+ "# variables\n",
+ "R = 82.06 # gas constant-[(cm**3 *atm)/(g mol *K)]\n",
+ "a = 9.24 *10**(6) ; #(atm) *(cm**3/g mol)**2\n",
+ "b = 90.7 ; # (cm**3)/(g mol)\n",
+ "m_C3H8 = 22.7 # Mass of propane-[kg]\n",
+ "mw_C3H8 = 44. ; # Mol. wt. of 1kmol propane-[kg]\n",
+ "V = 0.15 *10**(6) ; # Volume of cylinder -[cm**3]\n",
+ "pg = 4790. # Gauge pressure -[kPa]\n",
+ "\n",
+ "# Calculations\n",
+ "P = (pg +101.3)/101.3 # Pressure absolute-[atm abs]\n",
+ "n = (m_C3H8/mw_C3H8) *10**3 ; # Moles of propane\n",
+ "# Get T using Van der Waal's eqn. \n",
+ "T = ((P +((n**(2) *a/(V**(2))))) *(V-n *b))/(R *n) ;# Temperature of propane-[K]\n",
+ "\n",
+ "# Result\n",
+ "print 'Temperature of propane is %.0f K.'%T"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of propane is 384 K.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb
new file mode 100644
index 00000000..37a79df4
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb
@@ -0,0 +1,190 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Single Component Two Phase Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Page no. 486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "Tc = 972. ;\t\t\t#[degree C]\n",
+ "T = 273.+Tc ;\t\t\t#[K]\n",
+ "A = 8.799;\n",
+ "B = 1.615 * 10**4;\n",
+ "C = 0.;\n",
+ "mw = 26.98;\n",
+ "\n",
+ "# Calculations\n",
+ "# Use Antoine eqn. to get vapour pressure at 972 degree C\n",
+ "vP = math.exp(A-(B/(C+T))) ;\t\t\t# vapour pressure at 972 degree C-[mm Hg]\n",
+ "P = vP * 101.325/760 ;\t\t\t#[kPa]\n",
+ "# Use rate of vapourization(m) by given formula\n",
+ "m = 0.437 * (P * (mw**.5)/(T**0.5)) ;\t\t\t# Vapourization rate at 972 degree C-[g/(square centimetre * s)]\n",
+ "\n",
+ "# Results\n",
+ "print ' Vapourization rate at 972 degree C is %.1e g/(square centimetre)(s).'%m\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Vapourization rate at 972 degree C is 1.3e-04 g/(square centimetre)(s).\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 16.3 Page no. 494\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "T1 = 110. ;\t\t\t# Temperature of chlorobenzene - [degree C] \n",
+ "T1F = (9*T1)/(5) + 32 ;\t\t\t# Temperature of chlorobenzene - [degree F] \n",
+ "P1 = 400. ;\t\t\t#Pressure of chlorobenzene - [mm of Hg]\n",
+ "P1_psia = P1*14.7/760 ;\t\t\t#Pressure of chlorobenzene - [psia]\n",
+ "T2 = 205. ;\t\t\t# Temperature of chlorobenzene - [degree C] \n",
+ "T2F = (9.*T2)/(5) + 32 ;\t\t\t# Temperature of chlorobenzene - [degree F] \n",
+ "P2 = 5. ;\t\t\t#Pressure of chlorobenzene - [atm]\n",
+ "\n",
+ "# Calculations\n",
+ "P2_psia = P2*14.7 ;\t\t\t#Pressure of chlorobenzene - [psia]\n",
+ "\n",
+ "# Data from steam table\n",
+ "x1 = [.9487,3.72,11.525,29.8,67,247,680,1543,3094];\n",
+ "y1 = [100,150,200,250,300,400,500,600,700];\n",
+ "\n",
+ "x2 = [P1_psia,P2_psia];\n",
+ "y2 = [T1F,T2F];\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Results\n",
+ "plt.plot(x1,y1);\n",
+ "plt.plot(x2,y2);\n",
+ "plt.plot(x1,y1);\n",
+ "plt.plot(x2,y2);\n",
+ "plt.show()\n",
+ "vp1 = 150. ;\t\t\t# vapour pressure of chlorobenzene from cox chart prepared at 245 degree C\n",
+ "vp2 = 700. ;\t\t\t# vapour pressure of chlorobenzene from cox chart prepared at 359 degree C\n",
+ "\n",
+ "print 'Temperature Estimated vapour pressure of chlorobenzene from cox chart'\n",
+ "print ' 245 degree C %i psia'%vp1\n",
+ "print ' 359 degree C %i psia'%vp2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nU34WbyUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2d83e10>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature Estimated vapour pressure of chlorobenzene from cox chart\n",
+ " 245 degree C 150 psia\n",
+ " 359 degree C 700 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 16.4 Page no. 495\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "OP_Et = 400. ;\t\t\t#OSHA PEL of ethyl acetate -[ppm by volume]\n",
+ "OP_Mek = 200. ;\t\t\t#OSHA PEL of Methyl ethyl ketone [ppm by volume]\n",
+ "OP_Nba = 1.3 ;\t\t\t#OSHA PEL of n-butyl acetate [ppm by volume]\n",
+ "vp_Et = 96.9 ;\t\t\t# Vapour pressure of ethyl acetate obtained from CD-[mm of Hg]\n",
+ "vp_Mek = 94.8 ;\t\t\t# Vapour pressure of Methyl ethyl ketone obtained from CD-[mm of Hg]\n",
+ "vp_Nba = 20. ;\t\t\t# Vapour pressure of n-butyl acetate obtained from Perry-[mm of Hg]\n",
+ "\n",
+ "# Calculations\n",
+ "Chz_Et = vp_Et/OP_Et ;\t\t\t# Combined hazard criterion of ethyl acetate\n",
+ "Chz_Mek = vp_Mek/OP_Mek ;\t\t\t# Combined hazard criterion of Methyl ethyl ketone \n",
+ "Chz_Nba = vp_Nba/OP_Nba ;\t\t\t# Combined hazard criterion of n-butyl acetate\n",
+ "\n",
+ "# Results\n",
+ "print 'Combined hazard criterion of solvents in increasing order are :'\n",
+ "print 'Ethyl acetate : %.2f'%Chz_Et\n",
+ "print 'Methyl ethyl ketone : %.2f'%Chz_Mek\n",
+ "print 'n-butyl acetate : %.2f'%Chz_Nba\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Combined hazard criterion of solvents in increasing order are :\n",
+ "Ethyl acetate : 0.24\n",
+ "Methyl ethyl ketone : 0.47\n",
+ "n-butyl acetate : 15.38\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb
new file mode 100644
index 00000000..0c482647
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb
@@ -0,0 +1,326 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : Two Phase Gas Liquid Systems Saturation Condensation and Vaporization"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 17.1 Page no. 511\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F = 1. ;\t\t\t#H2C2O4- [mol]\n",
+ "ex_O2 = 248. ;\t\t#Excess air- [%]\n",
+ "f_C = 65/100. ;\t\t# Fraction of Carbon which convert to CO2\n",
+ "P = 101.3 ;\t\t\t# Atmospheric pressure-[kPa]\n",
+ "\n",
+ "# Calculations\n",
+ "O2_req = F*0.5 ;\t\t\t# O2 required by the above reaction-[mol]\n",
+ "O2_in = (1. + ex_O2*F/100)*0.5 ;\t\t\t# Mol. of O2 entering\n",
+ "\n",
+ "# Use Elemental balance moles of species in output \n",
+ "n_CO2 = f_C*2 ;\t\t\t# [mol]\n",
+ "n_H2O = (2*F)/2. ;\t\t# From 2H balance-[mol]\n",
+ "n_N2 = ((O2_in*0.79)/(0.21)) ;\t\t\t# From 2N balance-[mol]\n",
+ "n_CO = 2-n_CO2 ;\t\t\t # From C balance-[mol]\n",
+ "n_O2 = ((4 + O2_in*2)-(n_H2O + n_CO + 2*n_CO2))/2 ;\t\t\t# From O2 balance-[mol]\n",
+ "total_mol = n_CO2 + n_H2O + n_N2 + n_CO + n_O2 ;\t\t\t# Total moles in output stream-[mol]\n",
+ "y_H2O = n_H2O/total_mol ;\t# Mole fraction of H2O\n",
+ "pp_H2O = y_H2O*P ;\t\t\t# Partial pressure of H2O-[kPa]\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print 'Partial pressure of H2O %.2f kPa.'%pp_H2O\n",
+ "print 'Use partial pressure of H2O to get dew point temperature T from steam table: T = 316.5 K'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Partial pressure of H2O 9.10 kPa.\n",
+ "Use partial pressure of H2O to get dew point temperature T from steam table: T = 316.5 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 17.2 Page no. 517\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "gas = 1. ;\t\t\t# Entering gas-[g mol]\n",
+ "T = 26. ;\t\t\t# Temperature (for isothermal process)-[degree C]\n",
+ "vp = 99.7 ;\t\t\t# vapour pressure of benzene at 26 C-[mm of Hg]\n",
+ "\n",
+ "# Analysis of entering gas \n",
+ "f_C6H6 = 0.018 ;\t\t\t# Mol fraction of benzene\n",
+ "f_air = 0.982 ;\t\t\t# Mol fraction of air\n",
+ "mol_C6H6 = 0.018*gas ;\t\t# Moles of benzene-[g mol]\n",
+ "mol_air = 0.982*gas ;\t\t# Moles of air-[g mol]\n",
+ "\n",
+ "# Calculations\n",
+ "# Analysis of exit gas\n",
+ "C6H6_rec = 95./100 ;\t\t\t# Fraction of benzene recovered\n",
+ "C6H6_out = 1-C6H6_rec ;\t\t#Fraction of benzene in exit stream\n",
+ "C6H6_out = mol_C6H6*C6H6_out ;\t#Moles of benzene in exit stream-[g mol]\n",
+ "air_out = mol_air ;\t\t\t #Moles of air in exit stream-[g mol]\n",
+ "total_mol = C6H6_out+air_out ;\t# Total moles in exit stream\n",
+ "y_C6H6_out = C6H6_out/total_mol ;\t\t\t# Mole fraction of benzene in exit\n",
+ "P = vp/y_C6H6_out ;\t\t\t # Pressure total of exit\n",
+ "\n",
+ "# Results\n",
+ "print ' Pressure total at exit of compressor %.2e mm of Hg.'%P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure total at exit of compressor 1.09e+05 mm of Hg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 17.3 Page no. 519\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "ex_air = .4 ;\t\t\t# Fraction of excess air required\n",
+ "w_C = 12. ;\t\t\t # Mol. wt. of C-[g]\n",
+ "mol_C = 71./w_C ;\t\t#[kg mol]\n",
+ "w_H2 = 2.016 ;\t\t\t# Mol. wt. of H2 - [g] \n",
+ "mol_H2 = 5.6/w_H2;\n",
+ "air_O2 = 0.21;\t\t\t# Fraction of O2 in air\n",
+ "air_N2 = 0.79;\t\t\t# Fraction of N2 in air\n",
+ "\n",
+ "# Calculations\n",
+ "CO2_1 = 1. ;\t\t\t# By Eqn. (a) CO2 produced -[kg mol]\n",
+ "H2O_1 = 2. ;\t\t\t# By Eqn. (a) H2O produced -[kg mol]\n",
+ "Req_O2_1 = 2. ;\t\t\t# By Eqn. (a) -[kg mol]\n",
+ "ex_O2_1 = Req_O2_1*ex_air ;\t\t\t# Excess O2 required -[kg mol]\n",
+ "O2_1 = Req_O2_1 + ex_O2_1 ;\t\t\t # Total O2 required - [kg mol]\n",
+ "N2_1 = O2_1*(air_N2/air_O2) ;\t\t\t#Total N2 required - [kg mol]\n",
+ "Total_1 = CO2_1 + H2O_1 + N2_1 + ex_O2_1 ;\t\t\t# Total gas produced- [kg mol]\n",
+ "\n",
+ "CO2_2 = 1 ;\t\t\t# By Eqn. (a) CO2 produced -[kg mol]\n",
+ "H2O_2 = mol_H2/mol_C ;\t\t\t# By Eqn. (a) H2O produced -[kg mol]\n",
+ "Req_O2_2 = 1 + (mol_H2/mol_C)*(1./2) ;\t\t\t# By Eqn. (b) and (c) -[kg mol]\n",
+ "ex_O2_2 = Req_O2_2*ex_air ;\t\t\t# Excess O2 required -[kg mol]\n",
+ "O2_2 = Req_O2_2 + ex_O2_2; \t\t\t# Total O2 required - [kg mol]\n",
+ "N2_2 = O2_2*(air_N2/air_O2); \t\t\t#Total N2 required - [kg mol]\n",
+ "Total_2 = CO2_2 + H2O_2 + N2_2 + ex_O2_2 ;\t\t\t# Total gas produced- [kg mol]\n",
+ "\n",
+ "P = 100. ;\t\t\t# Total pressure -[kPa]\n",
+ "p1 = P*(H2O_1/Total_1) ;\t\t\t# Partial pressure of water vapour in natural gas - [kPa]\n",
+ "Eq_T1 = 52.5 ;\t\t\t# Equivalent temperature -[degree C]\n",
+ "p2 = P*(H2O_2/Total_2) ;\t\t\t# Partial pressure of water vapour in coal - [kPa]\n",
+ "Eq_T2 = 35 ;\t\t\t# Equivalent temperature -[degree C]\n",
+ "\n",
+ "# Results\n",
+ "print ' Natural gas Coal'\n",
+ "print ' ---------------------- --------------------'\n",
+ "print 'Partial pressure: %.1f kPa %.1f kPa'%(p1,p2 )\n",
+ "print 'Equivalent temperature: %.1f C %.1f C'%(Eq_T1,Eq_T2 );\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Natural gas Coal\n",
+ " ---------------------- --------------------\n",
+ "Partial pressure: 14.0 kPa 5.5 kPa\n",
+ "Equivalent temperature: 52.5 C 35.0 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 17.4 Page no. 522\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F = 30. ;\t\t\t# Volume of initial gas-[m**3]\n",
+ "P_F = 98.6 ;\t\t\t# Pressure of gas-[kPa]\n",
+ "T_F = 273.+100 ;\t\t\t# Temperature of gas-[K]\n",
+ "P_p = 109. ;\t\t\t#[kPa]\n",
+ "T_p = 14.+273 ;\t\t\t# Temperature of gas-[K]\n",
+ "R = 8.314 ;\t\t\t# [(kPa*m**3)/(k mol*K)] \n",
+ "# Additional condition\n",
+ "vpW_30 = 4.24 ;\t\t\t#Vapour pressure-[kPa]\n",
+ "vpW_14 = 1.60 ;\t\t\t#Vapour pressure-[kPa]\n",
+ "n_F = (P_F*F)/(R*T_F) ;\t\t\t# Number of moles in F\n",
+ "\n",
+ "# Calculations\n",
+ "# Material balance to calculate P & W\n",
+ "P = (n_F*((P_F-vpW_30)/P_F))/((P_p-vpW_14)/P_p) ;\t\t\t# P from mat. bal. of air -[kg mol]\n",
+ "W = (n_F*(vpW_30/P_F))- P*(vpW_14/P_p); \t\t\t# W from mat. bal. of water -[kg mol]\n",
+ "iW = n_F*(vpW_30/P_F) ;\t\t\t# Initial amount of water -[kg mol]\n",
+ "fr_con = W/iW ;\t\t\t#Fraction of water condenseed \n",
+ "\n",
+ "# Results\n",
+ "print ' Fraction of water condenseed %.3f.'%fr_con\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Fraction of water condenseed 0.668.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 17.5 Page no. 527\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "P = 100. ;\t\t\t# Pressure of air-[kPa]\n",
+ "T = 20. + 273 ;\t\t\t# Temperature of air-[K]\n",
+ "R = 8.314 ;\t\t\t# [(kPa*m**3)/(k mol*K)] \n",
+ "EOH = 6 ;\t\t\t# Amount of ethyl alcohol to evaporate-[kg]\n",
+ "mw_EOH = 46.07 ;\t\t\t# Mol.wt. of 1 k mol ethyl alcohol-[kg]\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "# Additional data needed\n",
+ "vp_EOH = 5.93 ;\t\t\t# Partial pressure of alcohol at 20 C-[kPa]\n",
+ "vp_air = P-vp_EOH ;\t\t\t# Partial pressure of air at 20 C-[kPa]\n",
+ "n_EOH = EOH/mw_EOH ;\t\t\t#Moles of ethyl alcohol -[kg mol]\n",
+ "n_air = (n_EOH*vp_air)/vp_EOH ;\t\t\t# Moles of air -[kg mol]\n",
+ "V_air = n_air*R*T/P ;\t\t\t# Volume of air required\n",
+ "\n",
+ "# Results\n",
+ "print ' Volume of air required to evaporate 6 kg of ethyl alcohol is %.1f cubic metre . '%V_air\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Volume of air required to evaporate 6 kg of ethyl alcohol is 50.3 cubic metre . \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 17.6 Page no. 529\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "P = 760. ;\t\t\t# Pressure -[ mm of Hg]\n",
+ "vp = 40. ;\t\t\t# vapour pressure of n-heptane-[mm of Hg]\n",
+ "\n",
+ "# Calculations\n",
+ "K = 10**((math.log10(vp/P)-0.16)/1.25) ;\n",
+ "x = 0.5 ;\t\t\t# mole fraction after t_half\n",
+ "x0 = 1. ;\t\t\t# initial mole fraction \n",
+ "t_half = (math.log(x/x0))/(-K);\t\t\t# Time required to reduce the concentration to one-half-[min]\n",
+ "\n",
+ "# Results\n",
+ "print 'Time required to reduce the concentration to one-half is %.1f min. '%t_half\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required to reduce the concentration to one-half is 9.8 min. \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb
new file mode 100644
index 00000000..7e472aab
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb
@@ -0,0 +1,281 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Two Phase Gas Liquid Systems Partial Saturation and Humidity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 18.1 Page no.539\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 1. ;\t\t\t# Volume of water vapour-[cubic metre]\n",
+ "rel_h = 43. ;\t\t\t# relative humidity -[%]\n",
+ "vp_H2O = 1.61 ;\t\t\t# vapour pressure of water at 94 F-[in. of Hg]\n",
+ "P_H2O = vp_H2O*(rel_h/100) ;\t\t\t# Pressure of water vapour in air-[in. of Hg]\n",
+ "P = 29.92 ;\t\t\t# [in of Hg]\n",
+ "T = 94+460. ;\t\t\t# Temperature -[Rankine]\n",
+ "Ts = 492. ;\t\t\t#Temperature std. -[Rankine]\n",
+ "mw_H2O = 18. ;\t\t\t# molecular mass of water -[lb]\n",
+ "\n",
+ "# Calculations\n",
+ "H2O = (5280**3*Ts*P_H2O*mw_H2O)/(T*P*359) ;\t\t\t#mass of H2O-[lb]\n",
+ "# The dew point is temperature at which water vapour in air first condense ,i.e at realative humidity 100 %, therefore\n",
+ "psat_H2O = P_H2O ;\t\t\t# Saturation pressure of H2O -[in. of Hg]\n",
+ "\n",
+ "# Results\n",
+ "print 'Saturation pressure of H2O %.3f in. of Hg'%psat_H2O\n",
+ "print 'Use saturation pressure of H2O to get dew point temperature T from steam table: T is about 68-69 F.'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturation pressure of H2O 0.692 in. of Hg\n",
+ "Use saturation pressure of H2O to get dew point temperature T from steam table: T is about 68-69 F.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 18.2 Page no. 541\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "# Data from steam table\n",
+ "psat_H2O = 31.8 ;\t\t\t# Saturation pressure -[mm of Hg]\n",
+ "\n",
+ "#(c)\n",
+ "H = .0055 ;\t\t\t# Humidity\n",
+ "mw_H2O = 18. ;\t\t\t# Molecular wt. of water-[lb]\n",
+ "mw_air = 29. ;\t\t\t# Molecular wt. of air -[lb]\n",
+ "P = 750. ;\t\t\t# Pressure total -[mm of Hg]\n",
+ "\n",
+ "# Calculations\n",
+ "p_H2O = ((H*mw_air*P)/mw_H2O)/(1+(H*mw_air/mw_H2O)) ;\t\t\t# Partial pressure of water vapour in air-[mm of Hg]\n",
+ "#(a)\n",
+ "rel_H = (p_H2O/psat_H2O)*100 ;\t\t\t# relative humidity -[%]\n",
+ "#(b)\n",
+ "mol_H = (p_H2O)/(P-p_H2O) ;\t\t\t# Molal humidity\n",
+ "\n",
+ "# Results\n",
+ "print '(a)Relative humidity is %.0f%% .'%rel_H\n",
+ "print '(b)Molal humidity is %.1e '%mol_H\n",
+ "print '(c)Partial pressure of water vapour in air is %.1f mm of Hg.'%p_H2O\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Relative humidity is 21% .\n",
+ "(b)Molal humidity is 8.9e-03 \n",
+ "(c)Partial pressure of water vapour in air is 6.6 mm of Hg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 18.3 Page No. 544\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "V_BDA = 1000. ;\t\t\t# Volume of bone dry air(BDA) at 20 C & 108.0 kPa\n",
+ "mol_V = 22.4 ;\t\t\t# Molar volume of gas at standard condition-[m**3]\n",
+ "T = 20+273. ;\t\t\t# Temperature of BDA-[K]\n",
+ "P = 108.0 ;\t\t\t#Pressure of BDA-[kPa]\n",
+ "Ts = 273. ;\t\t\t# Standard temperature-[K]\n",
+ "Ps = 101.3 ;\t\t\t#Standard pressure-[kPa]\n",
+ "W = 0.93 ;\t\t\t# [kg]\n",
+ "mw_W = 18. ;\t\t\t# mol. wt. of 1kmol water -[kg]\n",
+ "\n",
+ "# Calculations\n",
+ "mol_W = W/mw_W ;\t\t\t# amount of water vapour(W)-[kg mol]\n",
+ "mol_BDA = (V_BDA*Ts*P)/(T*Ps*mol_V) ;\t\t\t# amount of BDA-[kg mol]\n",
+ "p_H2O = (mol_W/(mol_W+mol_BDA))*P ;\t\t\t# Partial pressure of H2O-[kPa]\n",
+ "\n",
+ "# Get vapour pressure for water at 15 C , namely 1.70 kPa\n",
+ "psat_H2O = 1.70 ;\t\t\t#vapour pressure for water at 15 C-[kPa]\n",
+ "rel_H = (p_H2O/psat_H2O) ;\t\t\t#Fractional relative humidity-[]\n",
+ "\n",
+ "# Results\n",
+ "print '(a)Fractional relative humidity of original air was %.3f .'%rel_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Fractional relative humidity of original air was 0.074 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 18.4 Page no.545\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "F = 1000. ;\t\t\t# Volume of entering moist air at 22 C & 101.0 kPa\n",
+ "mol_V = 22.4 ;\t\t\t# Molar volume of gas at standard condition-[m**3]\n",
+ "T_in = 22.+273 ;\t\t\t# Temperature of entering moist air-[K]\n",
+ "P_in = 101.0 ;\t\t\t#Pressure of entering moist air -[kPa]\n",
+ "dp_in = 11.+273 ;\t\t\t# Dew point of entering air-[K]\n",
+ "Ts = 273. ;\t\t\t# Standard temperature-[K]\n",
+ "Ps = 101.3 ;\t\t\t#Standard pressure-[kPa]\n",
+ "T_out = 58.+273 ;\t\t\t# Temperature of exiting moist air-[K]\n",
+ "P_out = 98. ;\t\t\t#Pressure of exiting moist air -[kPa]\n",
+ "\n",
+ "# Additional vapour pressure data\n",
+ "psat_in = 1.31 ;\t\t\t#Vapour pressure of entering moist air -[kPa]\n",
+ "psat_out = 18.14 ;\t\t\t# Vapour pressure of exiting moist air -[kPa]\n",
+ "pBDA_in = P_in-psat_in ;\t\t\t# Pressure of entering dry air - [kPa]\n",
+ "pBDA_out = P_out - psat_out ;\t\t\t# Pressure of exiting dry air - [kPa]\n",
+ "\n",
+ "# Calculations\n",
+ "mol_F = (F*P_in*Ts)/(Ps*T_in*mol_V) ;\t\t\t# Moles of moist air entering-[kg mol]\n",
+ "mol_P = (mol_F*(pBDA_in/P_in))/(pBDA_out/P_out); \t\t\t#BDA balance- [kg mol]\n",
+ "mol_W = mol_P-mol_F ;\t\t\t# Total balance -[kg mol]\n",
+ "mw_BDA = 29. ;\t\t\t# Mol. wt. of dry air\n",
+ "mw_H2O = 18. ;\t\t\t# Mol. wt. of water vapour\n",
+ "m_BDA = (mol_F*pBDA_in/P_in)*mw_BDA ;\t\t\t# Mass of dry air entering-[kg]\n",
+ "m_H2O = (mol_F*psat_in/P_in)*mw_H2O ;\t\t\t# Mass of water vapour entering-[kg]\n",
+ "wa_in = m_BDA+m_H2O ;\t\t\t#Total wet air entering -[kg]\n",
+ "H2O_ad = mol_W*mw_H2O/wa_in ;\t\t\t#Water added to each kg of wet air entering the process-[kg]\n",
+ "\n",
+ "# Results\n",
+ "print 'Water added to each kg of wet air entering the process is %.3f kg.'%H2O_ad\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Water added to each kg of wet air entering the process is 0.132 kg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 18.5 Page No.547\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "# Given data\n",
+ "#Basis: F = 29.76 lb mol\n",
+ "F = 29.76 ;\t\t\t# amount of entering moist air -[lb mol]\n",
+ "F_rh = 90/100. ;\t\t\t# Relative humidity\n",
+ "T_in = 100 + 460. ;\t\t\t# Temperature of entering moist air-[Rankine]\n",
+ "P_in = 29.76 ;\t\t\t#Pressure of entering moist air -[in. of Hg]\n",
+ "psat_in = 1.93 ;\t\t\t# Saturation pressure from steam table-[in. of Hg]\n",
+ "T_out = 120 + 460. ;\t\t\t# Temperature of exiting dry air-[Rankine]\n",
+ "P_out = 131.7 ;\t\t\t#Pressure of exiting dry air -[in. of Hg]\n",
+ "psat_out = 3.45 ;\t\t\t# Saturation pressure from steam table-[in. of Hg]\n",
+ "mol_V = 22.4 ;\t\t\t# Molar volume of gas at standard condition-[m**3]\n",
+ "mw_H2O = 18.02 ;\t\t\t# Mol. wt. of water -[lb]\n",
+ "mw_air = 29. ;\t\t\t# Mol. wt. of air -[lb]\n",
+ "p_H2O_in = F_rh*psat_in ;\t\t\t# Partial pressure of water vapour at inlet--[in. of Hg]\n",
+ "p_air_in = P_in-p_H2O_in ;\t\t\t# Partial pressure of air at inlet--[in. of Hg]\n",
+ "\n",
+ "# Calculations\n",
+ "# Assume condensation takes place , therefore output gas P is saturated,\n",
+ "P_rh = 1;\t\t\t# Relative humidity of output gas\n",
+ "p_H2O_out = P_rh*psat_out ;\t\t\t# Partial pressure of water vapour at outlet--[in. of Hg]\n",
+ "p_air_out = P_out-p_H2O_out ;\t\t\t# Partial pressure of air at outlet--[in. of Hg]\n",
+ "\n",
+ "# Get W and P from balance of air and water\n",
+ "P = (p_air_in*F/P_in)/(p_air_out/P_out) ;\t\t\t# From air balance-[ lb mol]\n",
+ "W = (p_H2O_in*F/P_in)-(P*p_H2O_out/P_out);\t\t\t# From water balance -[lb mol]\n",
+ "W_ton = (W*mw_H2O*2000)/(p_air_in*mw_air) ;\t\t\t# Moles of water condenses per ton dry air-[lb mol]\n",
+ "W_m = mw_H2O*W_ton ;\t\t\t# Mass of water condenses per ton dry air-[lb]\n",
+ "\n",
+ "# Results\n",
+ "# Since W is positive our assumption(condensation takes place ) is right .\n",
+ "print '(a) Yes water condense out during compression ,since W(%.3f lb mol) is positive our assumption(condensation takes place ) \\nis right .'%W\n",
+ "print '(b) Amount of water condenses per ton dry air is %.1f lb mol i.e %.0f lb water.'%(W_ton,W_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Yes water condense out during compression ,since W(0.983 lb mol) is positive our assumption(condensation takes place ) \n",
+ "is right .\n",
+ "(b) Amount of water condenses per ton dry air is 43.6 lb mol i.e 786 lb water.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb
new file mode 100644
index 00000000..dc3cb7a9
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 : The Phase Rule and Vapor Liquid Equilibria"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 19.1 Page No. 563\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Calculating the number of degrees to freedom'''\n",
+ "\n",
+ "# Use phase rule to get degree of freedom(F) = 2-P+C \n",
+ "# (a)\n",
+ "N1 = 1.;\n",
+ "P1 = 1. ;\t\t\t# Number of phases present\n",
+ "C1 = 1. ;\t\t\t#Number of components present\n",
+ "F1 = 2.-P1+C1 ;\t\t\t#Number of degree of freedom\n",
+ "print ' (a) Number of degree of freedom of pure benzene is %i.\\n Therefore %i additional \\\n",
+ "intensive variables must be specified to fix to fix the system.'%(F1,F1)\n",
+ "\n",
+ "\t\t\t# (b)\n",
+ "N2 = 1.;\n",
+ "P2 = 2. ;\t\t\t# Number of phases present\n",
+ "C2 = 1. ;\t\t\t#Number of components present\n",
+ "F2 = 2.-P2+C2 ;\t\t\t#Number of degree of freedom\n",
+ "print '(b) Number of degree of freedom of a mixture of ice and water only is %i.\\\n",
+ " \\nTherefore %i additional intensive variables must be specified to fix the system. '%(F2,F2)\n",
+ "\n",
+ "\t\t\t# (c)\n",
+ "N3 = 2.;\n",
+ "P3 = 2. ;\t\t\t# Number of phases present\n",
+ "C3 = 2. ;\t\t\t#Number of components present\n",
+ "F3 = 2.-P3+C3 ;\t\t\t#Number of degree of freedom\n",
+ "print '(c) Number of degree of freedom of a mixture of liquid benzene,benzene vapour and\\\n",
+ " helium gas is %i. \\nTherefore %i additional intensive variables must be specified to fix the system. '%(F3,F3)\n",
+ "\n",
+ "\t\t\t# (d)\n",
+ "N4 = 2.;\n",
+ "P4 = 2. ;\t\t\t# Number of phases present\n",
+ "C4 = 2. ;\t\t\t#Number of components present\n",
+ "F4 = 2.-P4+C4 ;\t\t\t#Number of degree of freedom\n",
+ "print '(d) Number of degree of freedom of a mixture of salt and water designed to achieve\\\n",
+ " a specific vapour pressure is %i. \\nTherefore %i additional intensive variables must be\\\n",
+ " specified to fix the system. '%(F4,F4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a) Number of degree of freedom of pure benzene is 2.\n",
+ " Therefore 2 additional intensive variables must be specified to fix to fix the system.\n",
+ "(b) Number of degree of freedom of a mixture of ice and water only is 1. \n",
+ "Therefore 1 additional intensive variables must be specified to fix the system. \n",
+ "(c) Number of degree of freedom of a mixture of liquid benzene,benzene vapour and helium gas is 2. \n",
+ "Therefore 2 additional intensive variables must be specified to fix the system. \n",
+ "(d) Number of degree of freedom of a mixture of salt and water designed to achieve a specific vapour pressure is 2. \n",
+ "Therefore 2 additional intensive variables must be specified to fix the system. \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 19.2 Page No.564\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Calculating the number of degrees to freedom'''\n",
+ "\n",
+ "# Use phase rule to get degree of freedom(F) = 2-P+C \n",
+ "# (a)\n",
+ "N1 = 5.;\n",
+ "P1 = 1.; \t\t\t# Number of phases present,here 1 gas \n",
+ "C1 = 3. ;\t\t\t#Number of independent components present,here 3 because 3 elements(C,O and H)\n",
+ "F1 = 2-P1+C1 ;\t\t\t#Number of degree of freedom\n",
+ "print ' (a) Number of degree of gas composed of CO,CO2,H2,H2O and CH4 is %i. \\n \\\n",
+ "Therefore %i additional intensive variables must be specified to fix the system. '%(F1,F1)\n",
+ "\n",
+ "# (b)\n",
+ "N2 = 4.;\n",
+ "P2 = 4. ;\t\t\t# Number of phases present,here 3 different solid phases and 1 gas phase\n",
+ "C2 = 3. ;\t\t\t#Number of components present, here 3 because 3 elements(Zn,O and C) ,you can also use method explained \n",
+ " #in Appendix L1\n",
+ "F2 = 2.-P2+C2 ;\t\t#Number of degree of freedom\n",
+ "print '(b) Number of degree of freedom of a mixture of ZnO(s), C(s) ,CO(g) and Zn(s) is %i. \\n \\\n",
+ "Therefore %i additional intensive variables must be specified to fix the system. '%(F2,F2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a) Number of degree of gas composed of CO,CO2,H2,H2O and CH4 is 4. \n",
+ " Therefore 4 additional intensive variables must be specified to fix the system. \n",
+ "(b) Number of degree of freedom of a mixture of ZnO(s), C(s) ,CO(g) and Zn(s) is 1. \n",
+ " Therefore 1 additional intensive variables must be specified to fix the system. \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 19.3 Page No :576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Bubble point calculation'''\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "P_atm = 1. ;\t\t\t#[atm]\n",
+ "P = 760. ;\t\t\t#[mm of Hg]\n",
+ "x_1 = 4./100 ;\t\t\t# Mole fraction of hexane in liquid phase\n",
+ "# Constant A,B and C for Antoine eqn. of n_hexane \n",
+ "A1 = 15.8366;\n",
+ "B1 = 2697.55 ;\n",
+ "C1 = -48.784;\n",
+ "# Constant A,B and C for Antoine eqn. of n_octane\n",
+ "A2 = 15.9798;\n",
+ "B2 = 3127.60 ;\n",
+ "C2 = -63.633;\n",
+ "\n",
+ "# Calculations\n",
+ "# Solve for bubble point temperature by eqn. obtained by using Antoine equation\n",
+ "def f(T):\n",
+ " return math.exp(A1-(B1/(C1+T)))*x_1 + math.exp(A2-(B2/(C2+T)))*(1-x_1) - P\n",
+ "T = fsolve(f,390)[0] ;\t\t\t# Bubble point temperature \n",
+ "\n",
+ "print 'Bubble point temperature is %.1f K'%T\n",
+ "\n",
+ "# Composition of first vapour\n",
+ "# Get vapour pressure of hexane and octane from Perry, it is\n",
+ "vp_1 = 3114. ;\t\t\t# vapour pressure of hexane-[mm of Hg]\n",
+ "vp_2 = 661. ;\t\t\t# vapour pressure of octane-[mm of Hg]\n",
+ "y_1 = vp_1*x_1/P ;\t\t\t# Mole fraction of hexane in vapour phase\n",
+ "y_2 = 1- y_1 ;\t\t\t#Mole fraction of octane in vapour phase\n",
+ "\n",
+ "# Results\n",
+ "print ' Composition of first vapour. '\n",
+ "print 'Component Mole fraction. '\n",
+ "print 'n_hexane %.3f'%y_1\n",
+ "print ' n_octane %.3f'%y_2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bubble point temperature is 393.6 K\n",
+ " Composition of first vapour. \n",
+ "Component Mole fraction. \n",
+ "n_hexane 0.164\n",
+ " n_octane 0.836\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 19.4 Page no. 577"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Calculating the fraction of liquid that will remain in equilibrium'''\n",
+ "\n",
+ "# Variables\n",
+ "# Basis : 100 g solution\n",
+ "F = 100. ;\t\t\t# Amount of solution-[g]\n",
+ "P_atm = 1. ;\t\t\t#[atm]\n",
+ "P = 760. ;\t\t\t# Total pressure -[mm of Hg]\n",
+ "wf_hex = 68.6/100 ;\t\t\t#Weight fraction of hexane in mixture\n",
+ "wf_tol = 31.4/100 ;\t\t\t#Weight fraction of toluene in mixture\n",
+ "mw_hex = 86.17 ;\t\t\t# Mol.wt. of hexane-[g]\n",
+ "mw_tol = 92.13 ;\t\t\t# Mol.wt. of toluene-[g]\n",
+ "\n",
+ "# Calculations\n",
+ "mol_hex = wf_hex *F/mw_hex ;\t\t\t# moles of hexane-[g mol]\n",
+ "mol_tol = wf_tol*F/mw_tol ;\t\t\t # moles of toluene-[g mol]\n",
+ "mol_total = mol_hex + mol_tol ;\t\t\t# Total moles in mixture-[g mol]\n",
+ "molf_hex = mol_hex/mol_total ;\t\t\t# Mole fraction of hexane \n",
+ "molf_tol = mol_tol/mol_total ;\t\t\t# Mole fraction of toluene \n",
+ "# Get vapour pressure of hexane and toluene at 80 deg. C from Perry, it is\n",
+ "vp_hex = 1020. ;\t\t\t# vapour pressure of hexane-[mm of Hg]\n",
+ "vp_tol = 290. ;\t\t\t# vapour pressure of toluene-[mm of Hg]\n",
+ "K_hex = vp_hex/P ;\t\t\t# K-value of hexane\n",
+ "K_tol = vp_tol/P ;\t\t\t# K-value of toluene\n",
+ "rec_K_hex = 1/K_hex ;\t\t\t# Reciprocal of K-value of hexane\n",
+ "rec_K_tol = 1/K_tol ;\t\t\t# Reciprocal of K-value of toluene\n",
+ "\n",
+ "# Let L/F = x, then use eqn. 19.11 to find x(L/F) \n",
+ "def g(x):\n",
+ " return (molf_hex)/(1-x*(1-rec_K_hex)) + (molf_tol)/(1-x*(1-rec_K_tol))-1\n",
+ "\n",
+ "x = fsolve(g,1)[0] ;\t\t\t# L/F value\n",
+ "\n",
+ "# Results\n",
+ "print ' Fraction of liquid(L/F) that will remain at equilibrium after vaporization is %.3f. '%x\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Fraction of liquid(L/F) that will remain at equilibrium after vaporization is 0.744. \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 19.5 Page no. 578\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "'''Seperation of virus from a culture'''\n",
+ "\n",
+ "# Variables\n",
+ "Vo = 3.0 ;\t\t\t# Initial volume of the solution containing the culture and virus-[L]\n",
+ "Vp = 0.1 ;\t\t\t# Volume of the polymer solution added to the vessel -[L]\n",
+ "Kpc = 100. ;\t\t\t# Partition coefficient for virus(cp/cc) between two phases\n",
+ "\n",
+ "# Calculations\n",
+ "Vc = Vo ;\t\t\t# At equilibrium -[L]\n",
+ "cp_by_co = Vo/(Vp+(Vo/Kpc)) ;\t\t\t\n",
+ "Fr_rec = cp_by_co*(Vp/Vo) ;\t\t\n",
+ "\n",
+ "# Results\n",
+ "print ' Fraction of the initial virus in the culture phase that is recovered in the polymer phase is %.2f . '%Fr_rec\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Fraction of the initial virus in the culture phase that is recovered in the polymer phase is 0.77 . \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb
new file mode 100644
index 00000000..d803af44
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb
@@ -0,0 +1,941 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Fluid statics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.1 page no : 40\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculate specific weight of water\n",
+ "\n",
+ "# variables\n",
+ "g=32.2; #ft/s^2\n",
+ "rho_water=62.3; #lbm/ft^3\n",
+ "\n",
+ "# calculation\n",
+ "#specific weoight=(density)*(acceleration due to gravity)\n",
+ "specific_wt=rho_water*g; #lbm.ft/ft^3.s^2\n",
+ "\n",
+ "#1 lbf=32.2 lbm.ft/s^2\n",
+ "specific_wt=specific_wt/32.2; #lbf/ft^3\n",
+ "\n",
+ "# result\n",
+ "print \"Specific weight of water is\" ,specific_wt , \"lbf/ft^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific weight of water is 62.3 lbf/ft^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.2 page no : 40\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc pressure at depth of 304.9m\n",
+ "\n",
+ "# variables\n",
+ "d=304.9; #m\n",
+ "rho_water=1024.; #Kg/m^3\n",
+ "g=9.81; #m/s^2\n",
+ "p_atm=101.3; #KPa\n",
+ "\n",
+ "# calculation\n",
+ "#gauge pressure=(desity)*(acc. due to gravity)*(depth)\n",
+ "p_depth=p_atm+rho_water*g*d/1000.0; #KPa\n",
+ "\n",
+ "# result\n",
+ "print \"pressure at the depth is\" , (p_depth) , \"KPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure at the depth is 3164.154656 KPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.3 page no : 41\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#gauge pressure=(density)*(acc. due to gravity)*(depth)\n",
+ "\n",
+ "# variables\n",
+ "rho_oil=55.; #lbm/ft^3\n",
+ "g=32.2; #ft/s^2\n",
+ "d=60.; #ft (depth of oil cylinder)\n",
+ "\n",
+ "# calculation and result\n",
+ "gauge_pressure=rho_oil*g*d/32.2; #lbf/ft^2\n",
+ "print \"Gauge pressure is\",\n",
+ "print gauge_pressure,\n",
+ "print \"lbf/ft^2\"\n",
+ "\n",
+ "#1 ft=12 in\n",
+ "gauge_pressure=gauge_pressure/144.0; #lbf/in^2\n",
+ "print \"Gauge pressure is\",\n",
+ "print gauge_pressure,\n",
+ "print \"lbf/in^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gauge pressure is 3300.0 lbf/ft^2\n",
+ "Gauge pressure is 22.9166666667 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.4 page no : 42\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculate the pressures\n",
+ "import math\n",
+ "\n",
+ "# varirbles\n",
+ "#calc of density of air at a certain height\n",
+ "p_atm=14.7; #psia\n",
+ "T=289.; #K\n",
+ "\n",
+ "#P2=P1*exp^(-(acc. due to gravity)*(mass of air)*(height)/(universal gas const.)/(temp.))\n",
+ "g=9.81; #m/s^2\n",
+ "R=8314; #N.m^2/Kmol/K\n",
+ "\n",
+ "#for height of 1000 ft=304.8m\n",
+ "h=304.8; #m\n",
+ "p_1000=14.7*math.exp(-g*29*h/R/289);\n",
+ "print \"pressure at 1000ft is\",\n",
+ "print p_1000,\n",
+ "print \"psia\"\n",
+ "\n",
+ "#for height of 10000 ft=3048m\n",
+ "h=3048.; #m\n",
+ "p_10000=p_atm*math.exp(-g*29.*h/R/289.);\n",
+ "print \"pressure at 10000ft is\",\n",
+ "print p_10000,\n",
+ "print \"psia\"\n",
+ "\n",
+ "#for height of 100000 ft=30480m\n",
+ "h=30480.; #m\n",
+ "p_100000=14.7*math.exp(-g*29.*h/R/289.);\n",
+ "print \"pressure at 100000ft is\",\n",
+ "print p_100000,\n",
+ "print \"psia\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure at 1000ft is 14.1789512072 psia\n",
+ "pressure at 10000ft is 10.2467246829 psia\n",
+ "pressure at 100000ft is 0.398102276652 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.5 page no : 42\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc pressuer at different heights considering on density change in air\n",
+ "\n",
+ "# variables\n",
+ "p_atm=14.7; #psia\n",
+ "g=9.81; #m/s^2\n",
+ "\n",
+ "#P2=P1*[1-(acc. due to gravity)*(mass of air)*(height)/(univ. gas const.)/(temp.)]\n",
+ "T=289.; #K\n",
+ "R=8314. #N.m^2/Kmol/K\n",
+ "\n",
+ "\n",
+ "# calculation and result\n",
+ "#for height of 1000ft=304.8m\n",
+ "h=304.8 #m\n",
+ "p_1000=p_atm*(1-g*29*h/R/T)\n",
+ "print \"pressure at 1000ft is\",\n",
+ "print p_1000,\n",
+ "print \"psia\"\n",
+ "\n",
+ "#for height of 10000ft=3048m\n",
+ "h=3048. #m\n",
+ "p_10000=p_atm*(1-g*29*h/R/T)\n",
+ "print \"pressure at 10000ft is\",\n",
+ "print p_10000,\n",
+ "print \"psia\"\n",
+ "\n",
+ "#for height of 100000ft=30480m\n",
+ "h=30480. #m\n",
+ "p_100000=p_atm*(1-g*29*h/R/T)\n",
+ "print \"pressure at 100000ft is\",\n",
+ "print p_100000,\n",
+ "print \"psia\"\n",
+ "\n",
+ "#NOTE that the pressure comes out to be negative at 100000ft justifying that density of air changes with altitude"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure at 1000ft is 14.1694926079 psia\n",
+ "pressure at 10000ft is 9.39492607874 psia\n",
+ "pressure at 100000ft is -38.3507392126 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.6 page no : 45\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculate the atmosphere\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "#calc atm pressure on a storage tank roof\n",
+ "p_atm=14.7; #psia\n",
+ "\n",
+ "#diameter of roof is 120ft\n",
+ "d_roof=120.; #ft\n",
+ "\n",
+ "# calculation\n",
+ "#force=(pressure)*(area)\n",
+ "f_roof=p_atm*(math.pi)*d_roof**2/4.*144; #lbf ;144 because 1ft=12inch\n",
+ "\n",
+ "# result\n",
+ "print \"Force exerted by atmosphere on the roof is\",\n",
+ "print f_roof,\n",
+ "print \"lbf\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force exerted by atmosphere on the roof is 23940443.9848 lbf\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.7 page no : 45\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculate net pressure.\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "#calc atm pressure on a storage tank roof\n",
+ "p_atm=14.7; #psia\n",
+ "\n",
+ "#diameter of roof is 120ft\n",
+ "d_roof=120.; #ft\n",
+ "#force=(atm. pressure + gauge pressure)*(area)\n",
+ "#gauge pressure=(desity)*(acc. due to gravity)*(depth)\n",
+ "rho_water=62.3 #lbm/ft^3\n",
+ "g=32.2; #ft/s^2\n",
+ "\n",
+ "# calculation\n",
+ "#depth of water on roof=8 inch=o.667 ft\n",
+ "h=0.667; #ft\n",
+ "gauge_pressure=rho_water*g*h/32.2*(math.pi)*d_roof**2/4.; #lbf\n",
+ "\n",
+ "# result\n",
+ "print gauge_pressure"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "469965.799032\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.8 page no : 46\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc the total force on a lock gate\n",
+ "\n",
+ "# variables\n",
+ "#lock gate has water on one side and air on the other at atm. pressure\n",
+ "w=20.; #m (width of the lock gate)\n",
+ "h=10.; #m (height of the lock gate)\n",
+ "p_atm=1.; #atm\n",
+ "rho_water=1000.; #Kg/m^3\n",
+ "g=9.81 #m/s^2\n",
+ "\n",
+ "# calculation\n",
+ "#for a small strip of dx height at the depth of x on the lock gate\n",
+ "#net pressure on strip = (p_atm+(rho_water)*g*x) - p_atm\n",
+ "#thus, net pressure on strip = (rho_water)*g*x\n",
+ "#force on strip = (rho_water*g*x)*w.dx = (rho_water)*g*w*(x.dx)\n",
+ "#force on lock gate = integration of force on strip fromm h=0 to h=10\n",
+ "#integration(x.dx) = x^2/2\n",
+ "#for h=0 to h=10; integration (x.dx) = h^2/2\n",
+ "force_lockgate=(rho_water)*g*w*h**2/2;\n",
+ "\n",
+ "# result\n",
+ "print \"The net force on the lock gate is\",force_lockgate/10**6,\"MN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net force on the lock gate is 9.81 MN\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.9 page no : 49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc thickness of an oil storage\n",
+ "sigma_tensile=20000. #lbf/in^2 (tensile stress is normally 1/4 rupture stress)\n",
+ "\n",
+ "#max pressure is observed at the bottom of the storage\n",
+ "p_max=22.9; #lbf/in^2\n",
+ "\n",
+ "#diameter of storaeg tank = 120ft =1440in\n",
+ "d=1440.; #in\n",
+ "\n",
+ "# calculation\n",
+ "t=(p_max)*d/sigma_tensile/2; #in\n",
+ "\n",
+ "# result\n",
+ "print \"Thichness of the storage tank is\",\n",
+ "print t,\n",
+ "print \"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thichness of the storage tank is 0.8244 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.10 page no : 50\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc thickness of a storage tank\n",
+ "\n",
+ "# variables\n",
+ "p_working=250.0; #lbf/in^2\n",
+ "\n",
+ "#diameter of the cylinder = 10ft = 120in\n",
+ "d=120.0; #in\n",
+ "sigma_tensile=20000.; #lbf/in^2\n",
+ "\n",
+ "# calculation\n",
+ "t=p_working*d/sigma_tensile/2; #in\n",
+ "\n",
+ "# result\n",
+ "print \"Thichness of the storage tank is\",\n",
+ "print t,\n",
+ "print \"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thichness of the storage tank is 0.75 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.11 page no : 53\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc payload of a helium balloon\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "p_atm=1.; #atm\n",
+ "T=293.; #K\n",
+ "d=3.; #m (diameter of the balloon)\n",
+ "\n",
+ "# calculation\n",
+ "#buoyant force=(density of air)*g*(volume of balloon)\n",
+ "#weight of balloon = (density of helium)*g*(volume of balloon)\n",
+ "#density for gases = PM/RT\n",
+ "#payload of balloon = buoyant force - weight\n",
+ "V_balloon=(math.pi)*d**3/6.; #m^3\n",
+ "R=8.2*10**(-2); #m^3.atm/mol/K\n",
+ "M_air=29.; #Kg/Kmol\n",
+ "M_he=4.; #Kg/Kmol\n",
+ "g=9.81; #m/s^2\n",
+ "payload=(V_balloon)*g*p_atm*(M_air-M_he)/R/T; #N\n",
+ "\n",
+ "# result\n",
+ "print \"Payload of the balloon is\",\n",
+ "print payload,\n",
+ "print \"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Payload of the balloon is 144.307841185 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.12 page no : 54\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#wooden block floating in two phase mix of water and gasoline\n",
+ "\n",
+ "# variables\n",
+ "#calc fraction of block in water\n",
+ "SG_wood=0.96; #Specific gravity\n",
+ "SG_gasoline=0.72;\n",
+ "\n",
+ "# calculation\n",
+ "#Let r be the ratio - V_water/V_wood\n",
+ "r=(SG_wood-SG_gasoline)/(1-SG_gasoline);\n",
+ "\n",
+ "# result\n",
+ "print \"Fraction of wood in water\",\n",
+ "print r"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fraction of wood in water 0.857142857143\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.13 page no : 54\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc gauge pressure of cylinder in a manometer\n",
+ "\n",
+ "# variables\n",
+ "#height of water above pt.C = 2.5ft\n",
+ "rho_water=62.3; #lbm/ft^3;\n",
+ "h1=2.5; #ft\n",
+ "rho_gas=0.1; #lbm/ft^3\n",
+ "h2=0.5; #ft (height of gas)\n",
+ "g=32.2; #ft/s^2\n",
+ "\n",
+ "# calculation\n",
+ "gauge_pressure=((rho_water)*g*h1+(rho_gas)*g*h2)/144/32.2 #lbf/in^2\n",
+ "\n",
+ "# result\n",
+ "print \"Gauge pressure is\",\n",
+ "print gauge_pressure,\n",
+ "print \"lbf/in^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gauge pressure is 1.08194444444 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.14 page no : 56\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc pressure diff between two tanks in a two liquid manometer\n",
+ "rho_water=62.3; #lbm/ft^3\n",
+ "SG_oil=1.1;\n",
+ "rho_oil=SG_oil*(rho_water);\n",
+ "g=32.2; #ft/s^2\n",
+ "h1_1=1.; #ft\n",
+ "h1_2=2.; #ft\n",
+ "h2_1=2.; #ft\n",
+ "h2_2=1.; #ft\n",
+ "\n",
+ "# calculation\n",
+ "p_diff=((rho_water)*g*(h1_1-h1_2)+(rho_oil)*g*(h2_1-h2_2))/32.2/144.0; #lbf/in^2\n",
+ "\n",
+ "# result\n",
+ "print \"The pressure difference is\",\n",
+ "print p_diff,\n",
+ "print \"lbf/in^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pressure difference is 0.0432638888889 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.15 page no : 57\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc pressure of gauge through a spring piston system\n",
+ "\n",
+ "# variables\n",
+ "k=10000.; #N/m (spring constant)\n",
+ "x=0.025; #m (displacement in spring)\n",
+ "A=0.01; #m^2 (area of piston)\n",
+ "\n",
+ "# calculation\n",
+ "gauge_pressure=k*x/A/1000.; #KPa\n",
+ "\n",
+ "# result\n",
+ "print \"The gauge pressure is\",\n",
+ "print gauge_pressure,\n",
+ "print \"KPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The gauge pressure is 25.0 KPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.16 page no : 60\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc pressure diff at the mouth of the fire place\n",
+ "\n",
+ "# variables\n",
+ "g=32.2; #ft/s^2\n",
+ "h=20.; #ft (height of fireplace)\n",
+ "rho_air=0.075; #lbm/ft^3\n",
+ "T_air=293.0; #K (surrounding temperature)\n",
+ "T_fluegas=422.0; #K\n",
+ "\n",
+ "# calculation\n",
+ "p_diff=g*h*(rho_air)*(1-(T_air/T_fluegas))/32.2/144; #lbf/in^2\n",
+ "\n",
+ "# result\n",
+ "print \"The pressure difference is\",\n",
+ "print p_diff,\n",
+ "print \"lbf/in^2\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pressure difference is 0.00318424170616 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.17 page no : 64\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculate the gauge pressure at the bottom of the tank.\n",
+ "\n",
+ "# variables\n",
+ "rho_water=1000. #Kg/m^3\n",
+ "g=9.81; #m/s^2\n",
+ "h=5.; #m (depth of water)\n",
+ "\n",
+ "# calculation and result\n",
+ "#for elevator not accelerated\n",
+ "p_gauge=(rho_water)*g*h/1000.0; #KPa\n",
+ "print \"THe gauge pressure is\",\n",
+ "print p_gauge,\n",
+ "print \"KPa\"\n",
+ "\n",
+ "#for elevator accelerated at 5m/s^2 in upward direction\n",
+ "a=5.; #m/s^2\n",
+ "p_gauge=(rho_water)*(g+a)*h/1000.0; #KPa\n",
+ "print \"THe gauge pressure is\",\n",
+ "print p_gauge,\n",
+ "print \"KPa\"\n",
+ "\n",
+ "#for elevator accelerated at 5m/s^2 in downward direction\n",
+ "a=5.; #m/s^2\n",
+ "p_gauge=(rho_water)*(g-a)*h/1000.0; #KPa\n",
+ "print \"THe gauge pressure is\",\n",
+ "print p_gauge,\n",
+ "print \"KPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THe gauge pressure is 49.05 KPa\n",
+ "THe gauge pressure is 74.05 KPa\n",
+ "THe gauge pressure is 24.05 KPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 2.18 page no : 65\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculate angle\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "#angle free surface makes with the horizontal in an accelerated body\n",
+ "a=1.; #ft/s^2\n",
+ "g=32.2; #ft/s^2\n",
+ "\n",
+ "# calculation\n",
+ "theta=math.atan(a/g); #radians\n",
+ "theta=theta*180./math.pi; #degrees\n",
+ "\n",
+ "# result\n",
+ "print \"The angle made by free surface with the horizontal is\",\n",
+ "print theta,\n",
+ "print \"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle made by free surface with the horizontal is 1.77880031567 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.19 page no : 66\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc the height to which liq in a cylinder rises when rotated\n",
+ "\n",
+ "import math\n",
+ "# variables\n",
+ "f=78/60.0; #rps\n",
+ "r=0.15; #m\n",
+ "g=9.81; #m/s^2\n",
+ "\n",
+ "# calculation\n",
+ "#omega=2*(%pi)*f\n",
+ "z=((2*(math.pi)*f)**2)*r**2/2/g; #m\n",
+ "\n",
+ "# result\n",
+ "print \"The liquid in the cylinder rises to a height of\",\n",
+ "print z,\n",
+ "print \"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The liquid in the cylinder rises to a height of 0.0765120708158 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " example 2.20 page no : 67\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calc thickness of liquid strip at the bottom of the industrial centrifuge\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "#Let difference between heights at bottom and top be d\n",
+ "d=20.; #in\n",
+ "r_a=14.; #in\n",
+ "f=1000/60.; #rps\n",
+ "g=32.2; #ft/s^2\n",
+ "\n",
+ "# calculation\n",
+ "r_b=((r_a)**2-2*(d)*g*12/(2*(math.pi)*f)**2)**0.5; #in\n",
+ "\n",
+ "# result\n",
+ "print \"The thickness of water strip at bottom of industrial centrifuge\",\n",
+ "print r_b,\n",
+ "print \"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of water strip at bottom of industrial centrifuge 13.9495728181 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb
new file mode 100644
index 00000000..9286e99b
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 : Liquid and Gases in Equilibrium with Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 20.1 Page no. 594\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fitting Adsorption Isotherms to Experimental Data\n",
+ "\n",
+ "%pylab inline\n",
+ "\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "# Variables\n",
+ "p_CO2 = [0,25,50,100,200,400,760] ;\t\t\t# Values of partial pressure of CO2 - [mm Hg]\n",
+ "y = [0,6.69*10**-2,9.24*10**-2,0.108,0.114,0.127,0.137] ;\t\t\t# adsorption of CO2 -[g adorbed / g seives]\n",
+ "\n",
+ "# Results\n",
+ "plt.plot(p_CO2,y);\n",
+ "plt.title('Figure E20.1 The Freundlich and Langmuir iotherms coincide for the adsorption of CO2 on 5A molecular seives');\n",
+ "plt.show()\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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\nlLBWq21ttibqT3v69GlcvHgRN9xwA9zd3eHu7o6xY8eanL5paOjQoUp9586dQ25ursnw2tpaTJ06\nFQ4ODli6dKnyvJOTk3K6oc758+fh7OzcYr1ipmuN6l+726VLF1RUVAAwXkf01FNPKa+/7jKC+qe3\nGiopKVFe/9NPPw0A8PLyQqdOnZRx8vLycOeddyrzDQ8Ph52dHU6dOtWmer29vU3qraqqQm1tLYqK\niuDv728ybvfu3ds0z4KCAvTq1avZ4c2to4YOHz6M8ePHw9fXF66urnjxxRdNTpm3NK+TJ0+abIN1\np6/a6+LFi5gxYwaCgoLg6uqKkSNH4vz58ybbS/0aOnfurNRQVFRkst907ty50eUj3bp1Mxnu6emp\nXPvauXNnAGh2/bSm4SUdLSkqKjJ5fwMDA1FUVNTiNM1tO8ePH0dRUZGyTbq7u2PhwoXK6Vig6fak\n/vwcHBxM1o2Dg4OyHkaPHo1Zs2bh8ccfh7e3N2bMmIHy8vJG88vPz4eHhwdcXV0bDTt58qTJ63V0\ndETXrl2b3R/r11b/Pc7Pz0fPnj2bnKa+httCly5dTLaFv7IfFxUVNdq+u3fvbvL+tWdbqK+l9qyt\n9ba0D9VtJ3Xbel3tdfvX1KlTMWbMGMTHx8Pf3x/PPfcc9Ho9ioqK4OHhAUdHR2W6wMBAk/evqW2s\n/nMajQZarbbV7RxAm5bX3P7Q1Lxae7+a4+7ujg4dOphcgtKQp6dnk/PS6/U4c+YMPD09leea+xxt\nqOH+EhgYCL1eb/J+N9xWLly40OS8wsLC4OPjA41Gg+joaDz11FP497//rQz//PPPMXnyZABAx44d\nMWnSpFZP7TfcPxu2JfXb5PrrXqPRICAgoMn9vqV9sqCgoE37fWt27dqFUaNGoVu3bnBzc8OyZcsa\nfca1tO8+++yzCA4Oxm233YZevXph0aJFANCmNriOs7Mz7rjjDqSkpAAA1qxZg/vuu0+Zz65du0zm\n89VXXynv+9dff420tDQEBQUhJiYGmZmZLb7ev9zPqZeXF+zs7JCfn688V///dTvoxYsXleeKi4tN\n5lH/5hJPT0907twZOTk5StgqLS1tFCLbSkSQmJiI06dP4+uvv0bHjh2VYREREdi3b5/y+MKFCzh6\n9Gird/1d6ZthAgMDsXz5cpPAfeHCBQwdOrRd82lYZ2BgINLT003me/HiReUuzfrvkcFgwOnTp9u0\n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\nJVXQ6/XSq1cvOXbsmOh0OomMjJScnByL1bNt2zbZs2ePSTh99tlnZdGiRSIi8uabb8pzzz0nIiIH\nDv1jr2cAAAUVSURBVByQyMhI0el0cuzYMenVq5cYDIYrXuPJkyclOztbRETKy8uld+/ekpOTY3V1\niohcuHBBRERqampkyJAhsn37dqusU0Rk8eLFcu+998qECRNExPredxGRoKAgKSkpMXnOGut84IEH\n5NNPPxUR43tfWlpqlXWKiBgMBvHx8ZETJ05YXY3Hjh2THj16SFVVlYiITJkyRVauXGl1dRK1FcMp\nqcKOHTtkzJgxyuOFCxfKwoULLViR8QOhfjjt06ePFBcXi4gxGPbp00dEjEco6h/pHTNmjOzcufPq\nFisiEydOlO+//96q67xw4YJERUXJb7/9ZpV15ufny8033yxbt25VjpxaY51BQUFy5swZk+esrc7S\n0lLp0aNHo+etrc463333ndx4441WWWNJSYn07t1bzp49KzU1NTJ+/HjZvHmz1dVJ1Fa8IYpUoS19\nqFraqVOn4O3tDQDw9vbGqVOnAABFRUUmPQ9Yova8vDxkZ2djyJAhVllnbW0t+vfvD29vb4waNQoR\nERFWWeecOXPw9ttvo0OHS02nNdap0Whwyy23ICoqCp988olV1nns2DF4eXnhwQcfxMCBA/Hwww/j\nwoULVldnnTVr1iAhIQGA9a1LDw8PzJ07F4GBgfDz84ObmxtuvfVWq6uTqK0YTkkV1NK3aR2NRtNi\nzVfz9VRUVCAuLg5LliyBs7Nzozqsoc4OHTpg7969KCgowLZt2/Djjz82qsPSdW7cuBHdunXDgAED\nmu3SzBrqBIBffvkF2dnZ2LRpEz766CNs3769UR2WrlOv12PPnj147LHHsGfPHjg6OuLNN99sVIel\n6wQAnU6Hb775BnfffXeTNVi6xqNHj+L9999HXl4eioqKUFFRgdWrVzeqw9J1ErUVwympQlv6ULU0\nb29vFBcXAwBOnjyJbt26AWi6b1d/f/+rUlNNTQ3i4uIwdepUTJo0yWrrrOPq6oo77rgDu3fvtro6\nd+zYgdTUVPTo0QMJCQnYunUrpk6danV1AoCvry8AwMvLC3feeSeysrKsrk6tVgutVotBgwYBAO66\n6y7s2bMHPj4+VlUnAGzatAk33HADvLy8AFjfPvTrr79i2LBh6Nq1K+zs7DB58mTs3LnTKtclUVsw\nnJIqqKEf1NjYWHz++ecAgM8//1wJg7GxsVizZg10Oh2OHTuG3NxcDB48+IrXIyJITExEeHg4Zs+e\nbbV1njlzBqWlpQCAyspKfP/99xgwYIDV1blgwQLk5+fj2LFjWLNmDUaPHo0vvvjC6uq8ePEiysvL\nAQAXLlzA5s2b0bdvX6ur08fHBwEBATh8+DAAYMuWLYiIiMCECROsqk4ASElJUU7p19ViTTWGhoYi\nMzMTlZWVEBFs2bIF4eHhVrkuidrEwte8ErVZWlqa9O7dW3r16iULFiywaC3x8fHi6+sr9vb2otVq\n5bPPPpOSkhK5+eabm+y25Y033pBevXpJnz59JD09/arUuH37dtFoNBIZGal0hbNp0yarq3P//v0y\nYMAAiYyMlL59+8pbb70lImJ1ddaXkZGh3K1vbXX+8ccfEhkZKZGRkRIREaHsK9ZWp4jI3r17JSoq\nSvr16yd33nmnlJaWWl2dFRUV0rVrVykrK1Oes7YaRUQWLVqkdCX1wAMPiE6ns8o6idpCI8LfgyQi\nIiIi68DT+kRERERkNRhOiYiIiMhqMJwSERERkdVgOCUiIiIiq8FwSkRERERWg+GUiIiIiKzG/w8p\nc1U4iFUHtQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x1c0f410>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 20.2 page no. 596\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Seperation of Biochemicals by Solvent Extraction\n",
+ "\n",
+ "# Variables\n",
+ "G = 1000.0 ;\t\t\t# Volume of solution - [L]\n",
+ "S_ad = 1.56 ;\t\t\t# amount of Steptomycin adsorbed per gram resin-[g strep./g resin]\n",
+ "cn_S = 6. ;\t\t\t# Concentration of streptomycin solution-[g/L]\n",
+ "\n",
+ "# Calculations\n",
+ "# Assume equilibrium occurs so that total(max) amount of streptomycin is adsorbed \n",
+ "max_S = cn_S*G ;\t\t\t# Maximum streptomycin adsorbed-[g]\n",
+ "#Use streptomycin balance to get amount of resin required \n",
+ "R = max_S/S_ad ;\t\t\t#Amount of resin required to adsorb required amount of streptomycin\n",
+ "\n",
+ "# Results\n",
+ "print 'Amount of resin required to adsorb required amount of streptomycin is %.0f g . '%R\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of resin required to adsorb required amount of streptomycin is 3846 g . \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 20.3 page no. 596\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Combination of an Adsorption Isotherm with a Meterial Balance\n",
+ "\n",
+ "# Variables\n",
+ "G = 1000. ;\t\t\t# Volume of solution - [L]\n",
+ "x = [19.2,17.2,12.6,8.6,3.4,1.4] ;\t\t\t# concentration of solute- [g/L] \n",
+ "ac = [0,0.01,0.04,0.08,0.20,0.40] ;\t\t\t# Activated charcoal added-[g/1000g sol] \n",
+ "# Assume all concentration can be treated as g solute/1000 g sol.\n",
+ "\n",
+ "# Calculations\n",
+ "y2 = (x[0]-x[1])/ac[1] ;\t\t\t# -[ g solute/g carbon]\n",
+ "y3 = (x[0]-x[2])/ac[2] ;\t\t\t# -[ g solute/g carbon]\n",
+ "y4 = (x[0]-x[3])/ac[3] ;\t\t\t# -[ g solute/g carbon]\n",
+ "y5 = (x[0]-x[4])/ac[4] ;\t\t\t# -[ g solute/g carbon]\n",
+ "y6 = (x[0]-x[5])/ac[5] ;\t\t\t# -[ g solute/g carbon]\n",
+ "\n",
+ "# Use polymath to get Freundlich isotherm to bo y= 37.919*x**(0.583)\n",
+ "y = 37.919*x[5]**(0.583) ;\t\t\t#From Freundlich isotherm\n",
+ "A_by_G = (x[0]-x[5])/y ;\t\t\t#Minimum mss of activated carbon required- [g carbon/1000 g sol.]\n",
+ "\n",
+ "# Results\n",
+ "print 'Minimum mass of activated carbon required is %.2f g carbon/1000 g sol. '%A_by_G\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum mass of activated carbon required is 0.39 g carbon/1000 g sol. \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb
new file mode 100644
index 00000000..741dcc7d
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb
@@ -0,0 +1,246 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 : Energy Terminology Concepts and Units"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 21.1 Page no : 616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Mechanical work by a gas on a piston showing how the path affects the value of the work\n",
+ "\n",
+ "from scipy.integrate import quad\n",
+ "\n",
+ "# Variables\n",
+ "V1 = 0.1 ;\t\t\t# Volume of gas initially -[cubic metres]\n",
+ "V2 = 0.2 ;\t\t\t# Volume of gas finally -[cubic metres]\n",
+ "T1 = 300 ;\t\t\t# Temperature of gas initially -[K]\n",
+ "P1 = 200 ;\t\t\t# Pressure of gas finally -[kPa]\n",
+ "R = 8.314 ;\t\t\t# Universal gas constant \n",
+ "n = (P1*V1)/(T1*R) ;\t\t\t# Moles of gas taken-[kg mol]\n",
+ "#You are asked to calculate work by eqn. 21.1 , but you do not know the F(force) exerted by gas , so write F = P.A, multiply divide A and eqn 21.1 reduces to W= integate(P.dv)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "# Isobaric process see fig E21.1b to see the path followed\n",
+ "def f(V):\n",
+ " return -(P1)\n",
+ "W= quad(f,V1,V2)[0] ;\t\t\t# Work done by gas on piston -[kJ]\n",
+ "print ' (a)Work done by gas on piston for isobaric process is %.0f kJ . ',W\n",
+ "\n",
+ "def f1(V):\n",
+ " return -(T1*R*n/V)\n",
+ "W= quad(f1,V1,V2)[0] ;\t\t\t# Work done by gas on piston -[kJ]\n",
+ "print '(b)Work done by gas on piston for isothermal process is %.2f kJ . ',W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a)Work done by gas on piston for isobaric process is %.0f kJ . -20.0\n",
+ "(b)Work done by gas on piston for isothermal process is %.2f kJ . -13.8629436112\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 21.2 page no. 624\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Specific Kinetic energy for a Flowing fluid\n",
+ "\n",
+ "# Variables\n",
+ "id_ = 3. ;\t\t\t# Internal diameter of tube-[cm]\n",
+ "Vf = 0.001 ;\t\t\t# Volume flow rate of water in tube-[cubic meter/s]\n",
+ "rho = 1000. ;\t\t\t# Assumed density of water-[kg/cubic meter] \n",
+ "\n",
+ "# Calculations\n",
+ "rad = id_/2. ;\t\t\t# Radius of tube -[ cm]\n",
+ "a = 3.14*rad**2 ;\t\t\t# Area of flow of tube -[squqre centimeter]\n",
+ "v = Vf*(100)**2/a ;\t\t\t# Velocity of water in tube - [m/s]\n",
+ "KE = v**2/2. ;\t\t\t# Specific(mass=1kg) kinetic energy of water in tube -[J/kg]\n",
+ "\n",
+ "# Results\n",
+ "print 'Specific kinetic energy of water in tube is %.2f J/kg . '%KE\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific kinetic energy of water in tube is 1.00 J/kg . \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 21.3 page no. 626\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of potential Energy change of water\n",
+ "\n",
+ "# Variables\n",
+ "# Let water level in first reservoir be the reference plane\n",
+ "h = 40. ;\t\t\t# Difference of water-[ft]\n",
+ "g = 32.2 ;\t\t\t# acceleration due to gravity-[ft/square second]\n",
+ "\n",
+ "# Calculations\n",
+ "PE=g*h/(32.2*778.2) ;\t\t\t#\t\t\t# Specific(mass=1kg) potential energy of water -[Btu/lbm]\n",
+ "\n",
+ "# Results\n",
+ "print 'Specific potential energy of water is %.4f Btu/lbm . '%PE\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific potential energy of water is 0.0514 Btu/lbm . \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 21.4 page no : 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [
+ "# Calculation of an internal energy change using the heat capacity\n",
+ "\n",
+ "# Variables\n",
+ "#Constant volume process \n",
+ "mol_air = 10. ;\t\t\t# Moles of air-[kg mol]\n",
+ "T1 = 60.+273 ;\t\t\t# Initial temperature of air-[K]\n",
+ "T2 = 30.+273 ;\t\t\t# final temperature of air-[K]\n",
+ "# Additional data needed\n",
+ "Cv = 2.1*10.**4 ; \t\t\t# Specific heat capacity of air at constant volume-[J/(kg mol*C)]\n",
+ "\n",
+ "# Calculations\n",
+ "def f(T):\n",
+ " return mol_air*Cv\n",
+ "del_U = quad(f,T1,T2)[0] ;\t\t\t#Change in internal energy-[J]\n",
+ "\n",
+ "# Results\n",
+ "print 'Change in internal energy is %.1e J . '%del_U\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in internal energy is -6.3e+06 J . \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 21.7 page no : 633"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Enthalpy change\n",
+ "\n",
+ "# Variables\n",
+ "#Constant pressure process \n",
+ "mol_air = 10. ;\t\t\t# Moles of air-[kg mol]\n",
+ "T1 = 60+273 ;\t\t\t# Initial temperature of air-[K]\n",
+ "T2 = 30+273 ;\t\t\t# final temperature of air-[K]\n",
+ "\n",
+ "# Calculations\n",
+ "# Additional data needed\n",
+ "Cp = 2.9*10**4 ;\t\t\t# Specific heat capacity of air at constant pressure-[J/(kg mol*C)]\n",
+ "# Use eqn. 21.11 for del_H\n",
+ "def f(T):\n",
+ " return mol_air*Cp\n",
+ "\n",
+ "del_H = quad(f,T1,T2)[0] ;\t\t\t#Change in enthalpy-[J]\n",
+ "print 'Change in enthalpy is %.1e J . '%del_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in enthalpy is -8.7e+06 J . \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb
new file mode 100644
index 00000000..01acfa93
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb
@@ -0,0 +1,292 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 : Introduction to Energy Balances for Process without Reaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 22.1 page no. 651\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of the energy balance to a closed system\n",
+ "\n",
+ "# Variables\n",
+ "#Assume that properties of water can be used to substitute properties of solution\n",
+ "# Given\n",
+ "V = 1.673 ;\t\t\t# Volume of closed vessel-[cubic metre]\n",
+ "m = 1. ;\t\t\t# mass of saturated liquid vaporized-[kg]\n",
+ "Pi = 1. ;\t\t\t# Initial pressure -[atm]\n",
+ "Ti = 10. ;\t\t\t# Initial temperature -[degree C]\n",
+ "Pf = 1. ;\t\t\t# final pressure -[atm]\n",
+ "Tf = 100. ;\t\t\t# final temperature -[degree C]\n",
+ "\n",
+ "# Use steam table to obtain additional information at given condition\n",
+ "Ui = 35. ;\t\t\t# Initial enthalpy-[kJ/kg]\n",
+ "Uf = 2506.0 ;\t\t\t# Final enthalpy -[kJ/kg]\n",
+ "\n",
+ "# Calculations\n",
+ "# Use eqn. 22.2 after modifiying it using given conditions(W = 0,del_KE = 0 and del_PE = 0 )\n",
+ "Q = m*(Uf - Ui) ;\t\t\t# Heat transferred to the vessel - [kJ]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat transferred to the vessel is %.1f kJ . '%Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred to the vessel is 2471.0 kJ . \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 22.2 page no. 652\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of U using American engineering units\n",
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "T1 = 80. ;\t\t\t# Initial temperature -[degree F]\n",
+ "T1 = 40. ;\t\t\t# final temperature -[degree F]\n",
+ "\n",
+ "# Additional data obtained from steam table at given temperatures and corresponding vapour pressures\n",
+ "p1 = 0.5067 ;\t\t\t# Initial saturation pressure-[psia]\n",
+ "p2 = 0.1217 ;\t\t\t# Final saturation pressure-[psia]\n",
+ "V1 = 0.01607 ;\t\t\t# Initial specific volume - [cubic feet/lb]\n",
+ "V2 = 0.01602 ;\t\t\t# Final specific volume - [cubic feet/lb]\n",
+ "H1 = 48.02 ;\t\t\t#Initial specific enthalpy -[Btu/lb]\n",
+ "H2 = 8.05 ;\t\t\t# Final specific enthalpy -[Btu/lb]\n",
+ "\n",
+ "# Calculations\n",
+ "del_P = p2 - p1 ;\t\t\t# Change in pressure -[psia]\n",
+ "del_V = V2 - V1 ;\t\t\t# Change in specific volume -[cubic feet/lb]\n",
+ "del_H = H2 - H1 ;\t\t\t# Change in specific enthalpy -[Btu/lb]\n",
+ "del_pV = p2*144*V2/778. - p1*144*V1/778. ;\t\t\t# Change in pv-[Btu]\n",
+ "del_U = del_H - del_pV ;\t\t\t# Change in specific internal energy - [Btu/lb]\n",
+ "del_E = del_U ;\t\t\t# Change in specific total energy(since KE=0,PE=0 and W=0) -[Btu/lb]\n",
+ "\n",
+ "# Results\n",
+ "print 'Change in pressure is %.3f psia . '%del_P\n",
+ "print 'Change in specific volume is %.5f cubic feet/lb (negligible value) . '%del_V\n",
+ "print 'Change in specific enthalpy is %.2f Btu/lb . '%del_H\n",
+ "print 'Change in specific internal energy is %.2f Btu/lb . '%del_U\n",
+ "print 'Change in specific total energy is %.2f Btu/lb . '%del_E\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in pressure is -0.385 psia . \n",
+ "Change in specific volume is -0.00005 cubic feet/lb (negligible value) . \n",
+ "Change in specific enthalpy is -39.97 Btu/lb . \n",
+ "Change in specific internal energy is -39.97 Btu/lb . \n",
+ "Change in specific total energy is -39.97 Btu/lb . \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 22.3 page no. 662\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# use of the general energy balance to analyze an open , unsteady-state system\n",
+ "\n",
+ "# Variables\n",
+ "#Lets take tank to be system\n",
+ "# Given\n",
+ "T = 600. ; \t\t\t# Temperature of steam -[K]\n",
+ "P = 1000. ;\t\t\t# Pressure of steam -[kPa]\n",
+ "\n",
+ "# Calculations\n",
+ "# Additional data for steam obtained from CD database at T and P\n",
+ "U = 2837.73 ;\t\t\t# Specific internal energy-[kJ/kg]\n",
+ "H = 3109.44 ;\t\t\t# Specific enthalpy -[kJ/kg]\n",
+ "V = 0.271 ;\t\t\t# Specific volume -[cubic metre/kg]\n",
+ "# By the reduced equation \n",
+ "Ut2 = H ;\t\t\t# Internal energy at final temperature-[kJ/kg]\n",
+ "\n",
+ "# Results\n",
+ "print 'The specific internal energy at final temperature is %.2f kJ/kg. Now use two properties\\\n",
+ "of the steam (P = %i kPa and Ut2 = %.2f kJ/kg) to find final temperature (T) from steam table. \\\n",
+ "From steam table we get T = 764 K.'%(Ut2,P,Ut2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The specific internal energy at final temperature is 3109.44 kJ/kg. Now use two propertiesof the steam (P = 1000 kPa and Ut2 = 3109.44 kJ/kg) to find final temperature (T) from steam table. From steam table we get T = 764 K.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 22.4 page no. 669\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# application of the energy balance to a open, steady-state system, a heat exchanger\n",
+ "\n",
+ "# Variables\n",
+ "# Take milk plus water in tank to be system\n",
+ "# Given\n",
+ "T1_water = 70. ;\t\t\t# Temperature of entering water -[degree C]\n",
+ "T2_water = 35. ;\t\t\t# Temperature of exiting water -[degree C]\n",
+ "T1_milk = 15. ;\t\t\t#Temperature of entering milk -[degree C]\n",
+ "T2_milk = 25. ;\t\t\t#Temperature of exiting milk -[degree C]\n",
+ "\n",
+ "# Get additional data from steam table for water and milk,assuming milk to have same properties as that of water.\n",
+ "H_15 = 62.01 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n",
+ "H_25 = 103.86 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n",
+ "H_35 = 146.69 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n",
+ "H_70 = 293.10 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n",
+ "\n",
+ "# Assumptions to simplify Equation 22.8 are:\n",
+ "print 'Assumptions to simplify Equation 22.8 are:'\n",
+ "print '1. Change in KE and PE of system = 0.'\n",
+ "print '2. Q = 0 ,because of way we picked the system,it is is well insulated.'\n",
+ "print '3. W = 0,work done by or on the system.'\n",
+ "\n",
+ "# Calculations\n",
+ "#Basis m_milk = 1 kg/min , to directly get the answer .\n",
+ "m_milk = 1 ;\t\t\t# Mass flow rate of milk-[kg/min]\n",
+ "# By applying above assumtions eqn. 22.8 reduces to del_H = 0 .Using it get m_water-\n",
+ "m_water = (m_milk*(H_15 - H_25))/(H_35 - H_70) ; \t\t\t# Mass flow rate of water-[kg/min]\n",
+ "m_ratio = m_water/m_milk ;\t\t\t# Mass flow rate of water per kg/min of milk-[kg/min]\n",
+ "\n",
+ "# Results\n",
+ "print 'Mass flow rate of water per kg/min of milk is %.2f (kg water/min )/(kg milk/min).'%m_ratio\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assumptions to simplify Equation 22.8 are:\n",
+ "1. Change in KE and PE of system = 0.\n",
+ "2. Q = 0 ,because of way we picked the system,it is is well insulated.\n",
+ "3. W = 0,work done by or on the system.\n",
+ "Mass flow rate of water per kg/min of milk is 0.29 (kg water/min )/(kg milk/min).\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 22.5 page no. 670\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of power needed to pump water in an open, steady state system\n",
+ "\n",
+ "# Variables\n",
+ "# Take pipe between initial and final level of water\n",
+ "# Given\n",
+ "h_in = -20. ;\t\t\t# Depth of water below ground-[ft]\n",
+ "h_out = 5. ;\t\t\t# Height of water level above ground-[ft]\n",
+ "h = h_out - h_in ;\t\t\t# Total height to which water is pumped-[ft]\n",
+ "V = 0.50 ;\t\t\t# Volume flow rate of water - [cubic feet/s]\n",
+ "ef = 100.; \t\t\t# Efficiency of pump - [%] \n",
+ "g = 32.2; \t\t\t# Acceleration due to gravity -[ft/square second] \n",
+ "gc = 32.2 ;\t\t\t#[(ft*lbm)/(second square*lbf)]\n",
+ "\n",
+ "M = V * 62.4 ;\t\t\t# mass flow rate - [lbm/s]\n",
+ "PE_in = 0 ;\t\t\t# Treating initial water level to be reference level\n",
+ "\n",
+ "# Calculations\n",
+ "PE_out = (M*g*h*1.055)/(gc*778.2) ;\t\t\t# PE of discharged water -[lbm*(square feet/square second)]\n",
+ "W = PE_out - PE_in ;\t\t\t#Work done on system = power delivered by pump, (since we are using mass flow rate and pump efficiency is 100 % , so W = Power) -[kW]\n",
+ "\n",
+ "# Results\n",
+ "print 'The electric power required by the pump is %.2f kW. '%W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electric power required by the pump is 1.06 kW. \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb
new file mode 100644
index 00000000..6773ceb9
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb
@@ -0,0 +1,538 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Chapter 23 : Calculation of Enthalpy Changes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 23.1 Page no. 686\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Graph that showing the heat of vaporization of water\n",
+ "\n",
+ "%pylab inline\n",
+ "from matplotlib.pyplot import *\n",
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "x_Tl = [90,92,97,100] ;\t\t\t# Temperature of saturated liquid- [degree C]\n",
+ "x_Tg = [100,102,107,110] ;\t\t\t# Temperature of saturated vapour- [degree C]\n",
+ "y_Hl = [376.9,385.3,406.3,418.6] ;\t\t\t# Enthalpy change of saturated liquid -[kJ/kg]\n",
+ "y_Hg = [2256.44,2251.2,2237.9,2229.86] ;\t\t\t# Enthalpy change of saturated vapour -[kJ/kg]\n",
+ "\n",
+ "# Results\n",
+ "plot(x_Tl,y_Hl,x_Tg,y_Hg);\n",
+ "show()\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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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x33aa350>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 23.2 page no. 687\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# comparison of various sources to estimate the heat of vaporization\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "# Basis : 1 g mol\n",
+ "R = 8.314 * 10**-3 ;\t\t\t# Ideal gas constant -[kJ/(g mol * K)]\n",
+ "Hv = 30.20 ;\t\t\t# Experimental value of heat of vaporization of acetone -[kJ/g] \n",
+ "\n",
+ "# additional needed data for acetone from Appendix D\n",
+ "T = 329.2 ;\t\t\t# Normal boiling point of acetone - [K]\n",
+ "Tc = 508.0 ;\t\t\t# Critical temperature of acetone - [K]\n",
+ "Pc = 47.0 ;\t\t\t# Critical presure of acetone -[atm]\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Tbc = T/Tc ;\t\t\t# variable required in etimation equations\n",
+ "lnPc = math.log(Pc) ;\t\t\t# variable required in etimation equations\n",
+ "\n",
+ "B = 2940.46 ;\n",
+ "C = -35.93 ;\n",
+ "\n",
+ "del_Hv1 = (R*B*T**2)/((C+T)**2) ;\t\t\t#Heat of vapourization -[kJ/g]\n",
+ "d1 = (abs(Hv - del_Hv1)*100)/Hv ;\t\t\t# differece of experimental and calculated value -[%]\n",
+ "print '(a) Heat of vapourization of acetone is %.2f kJ/g mol. And differece of experimental and calculated value is %.1f %% . '%(del_Hv1,d1);\n",
+ "\n",
+ "del_Hv2 = R*T*((3.978*Tbc - 3.938 +1.555*lnPc)/(1.07 - Tbc)) ;\t\t\t#Heat of vapourization -[kJ/g]\n",
+ "d2 = (abs(Hv - del_Hv2)*100)/Hv ;\t\t\t# differece of experimental and calculated value -[%]\n",
+ "print ' (b) Heat of vapourization of acetone is %.2f kJ/g mol. And differece of experimental and calculated value is %.1f %% . '%(del_Hv2,d2);\n",
+ "\n",
+ "\n",
+ "del_Hv3 = 1.093*R*Tc*((Tbc*(lnPc-1))/(0.93-Tbc)) ;\t\t\t#Heat of vapourization -[kJ/g]\n",
+ "d3 = (abs(Hv - del_Hv3)*100)/Hv ;\t\t\t# differece of experimental and calculated value -[%]\n",
+ "print ' (c) Heat of vapourization of acetone is %.2f kJ/g mol. And differece of experimental and calculated value is %.1f %% . '%(del_Hv3,d3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Heat of vapourization of acetone is 30.80 kJ/g mol. And differece of experimental and calculated value is 2.0 % . \n",
+ " (b) Heat of vapourization of acetone is 30.01 kJ/g mol. And differece of experimental and calculated value is 0.6 % . \n",
+ " (c) Heat of vapourization of acetone is 30.24 kJ/g mol. And differece of experimental and calculated value is 0.1 % . \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 23.3 Page no. 693\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Conversion of units in a heat capacity equation\n",
+ "\n",
+ "# Variables\n",
+ "c = 2.675*10**4 #*.4536)/(1055*1.8) ;\n",
+ "d = 42.27#*.4536)/(1055*1.8) ;\n",
+ "e = 1.425*10**-2#*.4536)/(1055*1.8) ;\n",
+ "# Calculations\n",
+ "#Now convert Tk (Temperature in K) to TF (temperature in F) to get answer of form x + yT - zT**2,where\n",
+ "x = c + d*460/1.8 - e*((460/1.8)**2) ;\n",
+ "y = d/1.8;\n",
+ "z = e/(1.8*1.8) ;\n",
+ "\n",
+ "# Results\n",
+ "print 'The required answer is %.2e + (%.2e)T - (%.3e) T**2 Btu/(lb mol*F) , where T is in degree F . '%(x,y,z)\n",
+ "\n",
+ "print \"Note answer in textbook seems wrong by order of 10^-3\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required answer is 3.66e+04 + (2.35e+01)T - (4.398e-03) T**2 Btu/(lb mol*F) , where T is in degree F . \n",
+ "Note answer in textbook seems wrong by order of 10^-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 23.4 page no. 694\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fitting Heat Capacity Equation to Heat Capacity Data\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "# Take all 18 experimenta data in an array Cp\n",
+ "Cpi = [39.87,39.85,39.90,45.16,45.23,45.17,50.72,51.03,50.90,56.85,56.80,57.02,63.01,63.09,63.14,69.52,69.68,69.63] ;\t\t\t# Array of Cpi(Heat capacity) values\n",
+ "# Take corresponding temperatures in array T\n",
+ "Ti = [300,300,300,400,400,400,500,500,500,600,600,600,700,700,700,800,800,800] ;\t\t\t# array of Ti\n",
+ "Ti_sqr = [300**2,300**2,300**2,400**2,400**2,400**2,500**2,500**2,500**2,600**2,600**2,600**2,700**2,700**2,700**2,800**2,800**2,800**2] ;\t\t\t# array of Ti**2\n",
+ "Ti_cub = [300**3,300**3,300**3,400**3,400**3,400**3,500**3,500**3,500**3,600**3,600**3,600**3,700**3,700**3,700**3,800**3,800**3,800**3];\t\t\t# array of Ti**3\n",
+ "Ti_qd = [300**4,300**4,300**4,400**4,400**4,400**4,500**4,500**4,500**4,600**4,600**4,600**4,700**4,700**4,700**4,800**4,800**4,800**4];\t\t\t# array of Ti**4\n",
+ "Cpi_Ti = [39.87*300,39.85*300,39.90*300,45.16*400,45.23*400,45.17*400,50.72*500,51.03*500,50.90*500,56.85*600,56.80*600,57.02*600,63.01*700,63.09*700,63.14*700,69.52*800,69.68*800,69.63*800] ;\t\t\t# Array of Cpi(Heat capacity)*Ti values\n",
+ "Cpi_Ti_sqr = [39.87*300**2,39.85*300**2,39.90*300**2,45.16*400**2,45.23*400**2,45.17*400**2,50.72*500**2,51.03*500**2,50.90*500**2,56.85*600**2,56.80*600**2,57.02*600**2,63.01*700**2,63.09*700**2,63.14*700**2,69.52*800**2,69.68*800**2,69.63*800**2] ;\t\t\t# Array of Cpi(Heat capacity)*Ti**2 values\n",
+ "\n",
+ "n = 18. ;\t\t\t# Number of data\n",
+ "# Calculations\n",
+ "\n",
+ "from numpy import matrix\n",
+ "# Solve equations (a),(b) & (c) simultaneously using matrix\n",
+ "a = matrix([[n,sum(Ti),sum(Ti_sqr)],[sum(Ti),sum(Ti_sqr),sum(Ti_cub)],[sum(Ti_sqr),sum(Ti_cub),sum(Ti_qd)]]) ;\t\t\t# Matrix of coefficients of unknown\n",
+ "b = matrix([[sum(Cpi)],[sum(Cpi_Ti)],[sum(Cpi_Ti_sqr)]]) ;\t\t\t# Matrix of constants\n",
+ "x = (a)**-1 * b ;\t\t\t# Matrix of solutions a = x(1), b = x(2) , c = x(3) \n",
+ "\n",
+ "# Results\n",
+ "print 'The solution is Cp = %.2f + %.3e T + %.2e T**2 .Therefore coefficients are as follows :'%(x[0],x[1],x[2])\n",
+ "print ' a = %.2f. b = %.3e . c = %.2e .'%(x[0],x[1],x[2])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The solution is Cp = 25.44 + 4.371e-02 T + 1.44e-05 T**2 .Therefore coefficients are as follows :\n",
+ " a = 25.44. b = 4.371e-02 . c = 1.44e-05 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 23.5 page no : 695"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of H for a gas mixture using heat capacity equation for each component\n",
+ "\n",
+ "from scipy.integrate import quad\n",
+ "# Variables\n",
+ "# Basis : 1 g mol of gas\n",
+ "#Given\n",
+ "T1 = 550. ;\t\t\t# Initial temperature - [degree F]\n",
+ "T2 = 200. ;\t\t\t# Final temperature - [degree F]\n",
+ "CO2 = 9.2/100 ;\t\t\t# Mole fraction \n",
+ "CO = 1.5/100 ;\t\t\t# Mole fraction \n",
+ "O2 = 7.3/100 ;\t\t\t# Mole fraction \n",
+ "N2 = 82.0/100 ;\t\t\t#Mole fraction \n",
+ "\n",
+ "# Calculations\n",
+ "# Additional data needed :\n",
+ "a_N2 = 6.895;\t\t\t# constant\n",
+ "b_N2 = 0.7624*10**-3;\t\t\t# coefficient of T\n",
+ "c_N2 = -0.7009*10**-7;\t\t\t# coefficient of square T\n",
+ "a_O2 = 7.104 ;\t\t\t# constant\n",
+ "b_O2 = (0.7851*10**-3);\t\t\t# coefficient of T\n",
+ "c_O2 = (-0.5528*10**-7); \t\t\t# coefficient of square T\n",
+ "a_CO2 = 8.448;\t\t\t# constant\n",
+ "b_CO2 = 5.757*10**-3;\t\t\t# coefficient of T\n",
+ "c_CO2 = -21.59*10**-7;\t\t\t# coefficient of square T\n",
+ "d_CO2 = 3.059*10**-10;\t\t\t# coefficient of cubic T\n",
+ "a_CO = 6.865 ;\t\t\t# constant\n",
+ "b_CO = 0.8024*10**-3;\t\t\t# coefficient of T\n",
+ "c_CO = -0.7367*10**-7; \t\t\t# coefficient of square T\n",
+ "\n",
+ "# New coefficients after multiplying mole fraction of each component\n",
+ "a1_N2 = 6.895*N2 ;\t\t\t# constant\n",
+ "b1_N2 = N2*0.7624*10**-3; \t\t\t# coefficient of T\n",
+ "c1_N2 = (-0.7009*10**-7)*N2; \t\t\t# coefficient of square T \n",
+ "a1_O2 = 7.104*O2 ;\t\t\t# constant\n",
+ "b1_O2 = (0.7851*10**-3)*O2;\t\t\t# coefficient of T\n",
+ "c1_O2 = (-0.5528*10**-7)*O2; \t\t\t# coefficient of square T\n",
+ "a1_CO2 = 8.448*CO2;\t\t\t# constant\n",
+ "b1_CO2 = (5.757*10**-3)*CO2;\t\t\t# coefficient of T\n",
+ "c1_CO2 = (-21.59*10**-7)*CO2; \t\t\t# coefficient of square T\n",
+ "d1_CO2 = (3.059*10**-10)*CO2; \t\t\t# coefficient of cubic T\n",
+ "a1_CO = 6.865*CO;\t\t\t# constant\n",
+ "b1_CO = (0.8024*10**-3)*CO;\t\t\t# coefficient of T\n",
+ "c1_CO = (-0.7367*10**-7)*CO; \t\t\t# coefficient of square T\n",
+ "\n",
+ "# Get net coefficients of T , square T and cubic T by adding them\n",
+ "a_net = a1_N2+a1_CO2+a1_CO+a1_O2; \t\t\t#Net constant\n",
+ "b_net = b1_N2+b1_CO2+b1_CO+b1_O2; \t\t\t#Net coefficient of T\n",
+ "c_net = c1_N2+c1_CO2+c1_CO+c1_O2 ;\t\t\t#Net coefficient of square T\n",
+ "d_net = d1_CO2;\t\t\t#Net coefficient of cubic T\n",
+ "\n",
+ "def f(T):\n",
+ " return (a_net )+( b_net*T) + (c_net*(T**2)) + (d_net*(T**3))\n",
+ " \n",
+ "del_H = quad(f,T1,T2)[0] \t\t\t# Change in enthalpy of gas over given range-[Btu/lb mol gas]\n",
+ "\n",
+ "# Results\n",
+ "print ' Change in enthalpy of gas over given range is %.0f Btu/lb mol gas . '%del_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in enthalpy of gas over given range is -2616 Btu/lb mol gas . \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 23.6 page no. 700 \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the Change in Enthalpy for a Gas using Tabulated Enthalpy Values\n",
+ "\n",
+ "\n",
+ "# Solution \n",
+ "#Given\n",
+ "N2 = 1. ;\t\t\t# Moles of N2 - [kg mol]\n",
+ "P = 100. ;\t\t\t# Pressure of gas - [kPa] \n",
+ "T1 = 18. ;\t\t\t# Initial temperature - [degree C]\n",
+ "T2 = 1100. ;\t\t\t# Final temperature - [degree C]\n",
+ "\n",
+ "# Calculations\n",
+ "# In the book it is mentioned to use tables in Appendix D6 to calculate enthalpy change, we get \n",
+ "H_T1 = 0.524;\t\t\t# Initial enthalpy -[kJ/kg mol]\n",
+ "H_T2 = 34.715 ;\t\t\t# Final enthalpy - [kJ/kg mol]\n",
+ "del_H = H_T2 - H_T1 ;\t\t\t# Change in enthalpy - [kJ/kg]\n",
+ "\n",
+ "# Results\n",
+ "print ' Change in enthalpy of N2 over given range is %.3f kJ/kg mol N2 . '%del_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in enthalpy of N2 over given range is 34.191 kJ/kg mol N2 . \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 23.7 page no. 701\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use of Steam Tables to Calculate Change in Enthalpy\n",
+ "\n",
+ "# Solution Fig.E23.7\n",
+ "\n",
+ "# Variables\n",
+ "#Given\n",
+ "T1 = 640. ;\t\t\t# Initial temperature -[degree F]\n",
+ "T2 = 480. ;\t\t\t# Final temperature -[degree F]\n",
+ "P1 = 92. ;\t\t\t# Initial pressure -[psia]\n",
+ "P2 = 52. ;\t\t\t# Final pressure - [psia]\n",
+ "\n",
+ "\n",
+ "#From steam table\n",
+ "#At 90 psia\n",
+ "H1_600 = 1328.7 ;\t\t\t#H at 90 psia and 600 F-[Btu/lb]\n",
+ "H1_700 = 1378.1 ;\t\t\t#H at 90 psia and 700 F-[Btu/lb]\n",
+ "H2_600 = 1328.4 ;\t\t\t#H at 95 psia and 600 F-[Btu/lb]\n",
+ "H2_700 = 1377.8 ;\t\t\t#H at 95 psia and 700 F-[Btu/lb]\n",
+ "\n",
+ "# Calculations\n",
+ "H3_600 = H1_600+ ((H2_600-H1_600)/(95.-90))*(92-90);\t\t\t#H at 92 psia and 600 F-[Btu/lb]\n",
+ "H3_700 = H1_700+ ((H2_700-H1_700)/(95.-90))*(92-90);\t\t\t#H at 92 psia and 700 F-[Btu/lb]\n",
+ "H3_640 = H3_600+((H3_700-H3_600)/(700.-600))*(640-600);\t\t\t#H at 92 psia and 640 F-[Btu/lb]\n",
+ "\n",
+ "H1_450 = 1258.7 ;\t\t\t#H at 50 psia and 450 F-[Btu/lb]\n",
+ "H1_500 = 1282.6 ;\t\t\t#H at 50 psia and 500 F-[Btu/lb]\n",
+ "H2_450 = 1258.2 ;\t\t\t#H at 55 psia and 450 F-[Btu/lb]\n",
+ "H2_500 = 1282.2 ;\t\t\t#H at 55 psia and 500 F-[Btu/lb]\n",
+ "H3_450 = H1_450+ ((H2_450-H1_450)/(55.-50))*(52-50) ;\t\t\t#H at 52 psia and 450 F-[Btu/lb]\n",
+ "H3_500 = H1_500+ ((H2_500-H1_500)/(55.-50))*(52-50);\t\t\t#H at 52 psia and 500 F-[Btu/lb]\n",
+ "H3_480 = H3_450+((H3_500-H3_450)/(500.-450))*(480-450);\t\t\t# H at 52 psia and 480 F-[Btu/lb]\n",
+ "del_H = H3_480 - H3_640;\t\t\t# Change in enthalpy - [Btu/lb]\n",
+ "\n",
+ "# Results\n",
+ "print 'Change in enthalpy is %.1f Btu/lb .'%del_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in enthalpy is -75.5 Btu/lb .\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 23.8 page no. 702\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Use of Steam Table when a Phase Change is involved to Calculate the final State of Water\n",
+ "\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "W = 4. ;\t\t\t# Mass of water -[kg]\n",
+ "Ti= 27.+273 ;\t\t\t# Initial temperature -[K]\n",
+ "Pi = 200. ;\t\t\t# Initial pressure -[kPa]\n",
+ "Pf = Pi ;\t\t\t# Final pressure -[kPa]\n",
+ "V1 = 0.001004 ;\t\t\t# Specific volume at Ti -[cubic metre/kg]\n",
+ "V2 = 1000. * V1 ;\t\t\t#Specific volume at final temperature(Tf) from given condition in problem - [cubic metre/kg]\n",
+ "va = 0.9024 ;\t\t\t# Specific volume -[cubic metre/kg]\n",
+ "Ta = 400. ;\t\t\t# [K]\n",
+ "vb = 1.025 ;\t\t\t# Specific volume -[cubic metre/kg]\n",
+ "Tb = 450. ;\t\t\t#[K]\n",
+ "vf = V2 ;\t\t\t# Final specific volume -[cubic metre/kg]\n",
+ " \n",
+ "# Calculations\n",
+ "m=(Tb - Ta)/(vb - va);\t\t\t# slope \n",
+ "Tf=Ta + m*(vf - va) ;\t\t\t# Final temperature - [K]\n",
+ "\n",
+ "# Results\n",
+ "print ' Final temperature is %.0f K.'%Tf\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Final temperature is 441 K.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 23.9 page no. 704\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculate Enthalpy Difference betwee two States by Pressure Enthalpy Chart for Butane\n",
+ "\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "mv = 1. ;\t\t\t# Mass of saturated vapour - [lb]\n",
+ "P1 = 2. ;\t\t\t# Initial pressure -[atm]\n",
+ "P2 = 20. ;\t\t\t# Final pressure -[atm]\n",
+ "H_2 = 179. ;\t\t\t# Specific enthalpy at 2 atm - [Btu/lb]\n",
+ "H_20 = 233. ;\t\t\t# Specific enthalpy at 20 atm - [Btu/lb]\n",
+ "V_2 = 3.00 ;\t\t\t# Specific volume at 2 atm - [cubic feet/lb]\n",
+ "V_20 = 0.30 ;\t\t\t# Specific volume at 20 atm - [cubic feet/lb]\n",
+ "T_2 = 72. ;\t\t\t# Temperature at 2 atm -[degree F]\n",
+ "T_20 = 239. ;\t\t\t# Temperature at 20 atm -[degree F]\n",
+ "\n",
+ "# Calculations\n",
+ "del_H = H_20 - H_2 ;\t\t\t# Change in specific enthalpy -[Btu/lb] \n",
+ "del_V = V_20 - V_2 ;\t\t\t# Change in specific volume -[cubic feet/lb] \n",
+ "del_T = T_20 - T_2 ;\t\t\t# Change in temperature -[degree F]\n",
+ "\n",
+ "# Results\n",
+ "print '(a) Change in specific enthalpy is %.0f Btu/lb.'%del_H\n",
+ "print ' (b) Change in specific volume is %.2f cubic feet/lb.'%del_V\n",
+ "print ' (c) Change in temperature is %.1f degree F.'%del_T\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Change in specific enthalpy is 54 Btu/lb.\n",
+ " (b) Change in specific volume is -2.70 cubic feet/lb.\n",
+ " (c) Change in temperature is 167.0 degree F.\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb
new file mode 100644
index 00000000..00a323af
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb
@@ -0,0 +1,557 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 24 : Applications of Energy Balances in the Absence of Chemical Reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 24.1 page no. 720\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# simplification of the general energy balance\n",
+ "\n",
+ "# Solution Fig. E24.1\n",
+ "\n",
+ "# Assumptions to be made in eqn. 24.1 in following segment \n",
+ "print 'Assumptions to be made in eqn. 24.1 in following segments are:'\n",
+ "#(a)- 1 to 5\n",
+ "print '(a)- 1 to 5.'\n",
+ "print ' 1. Change in potential energy(del_PE) = 0(no change in level) .'\n",
+ "print ' 2. Probably change in kinetic energy(del_KE)=0 .'\n",
+ "print ' 3. Change in energy = 0 (process appears to be steady).'\n",
+ "print ' Result : Q + W = del_H.'\n",
+ "\n",
+ "#(b) 4 to 5\n",
+ "print '(b) 4 to 5.'\n",
+ "print ' 1. Q = W = 0 '\n",
+ "print ' 2. Probably change in kinetic energy(del_KE)=0.'\n",
+ "print ' 3. Change in energy = 0 (process appears to be steady).'\n",
+ "print ' Result : del_H = -del_PE . '\n",
+ "\n",
+ "#(c) 3 to 4\n",
+ "print '(c) 3 to 4.'\n",
+ "print ' 1. Q = W = 0 '\n",
+ "print ' 2. Probably change in kinetic energy(del_KE)=0.'\n",
+ "print ' 3. Change in energy = 0 (process appears to be steady).'\n",
+ "print ' Result : del_H = -del_PE . '\n",
+ "\n",
+ "#(d) 3 to 5\n",
+ "print '(d) 3 to 5.'\n",
+ "print ' 1. Q = W = 0 '\n",
+ "print ' 2. Probably change in kinetic energy(del_KE)=0.'\n",
+ "print ' 3. Change in energy = 0 (process appears to be steady).'\n",
+ "print ' 4. Change in potential energy(del_PE) = 0(no change in level) .'\n",
+ "print ' Result : del_H = 0 . '\n",
+ "\n",
+ "#(e)- 1 to 3\n",
+ "print '(e) 1 to 3.'\n",
+ "print ' 1. Change in potential energy(del_PE) = 0(no change in level) .'\n",
+ "print ' 2. Probably change in kinetic energy(del_KE)=0 .'\n",
+ "print ' 3. Change in energy = 0 (process appears to be steady).'\n",
+ "print ' Result : Q + W = del_H.'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assumptions to be made in eqn. 24.1 in following segments are:\n",
+ "(a)- 1 to 5.\n",
+ " 1. Change in potential energy(del_PE) = 0(no change in level) .\n",
+ " 2. Probably change in kinetic energy(del_KE)=0 .\n",
+ " 3. Change in energy = 0 (process appears to be steady).\n",
+ " Result : Q + W = del_H.\n",
+ "(b) 4 to 5.\n",
+ " 1. Q = W = 0 \n",
+ " 2. Probably change in kinetic energy(del_KE)=0.\n",
+ " 3. Change in energy = 0 (process appears to be steady).\n",
+ " Result : del_H = -del_PE . \n",
+ "(c) 3 to 4.\n",
+ " 1. Q = W = 0 \n",
+ " 2. Probably change in kinetic energy(del_KE)=0.\n",
+ " 3. Change in energy = 0 (process appears to be steady).\n",
+ " Result : del_H = -del_PE . \n",
+ "(d) 3 to 5.\n",
+ " 1. Q = W = 0 \n",
+ " 2. Probably change in kinetic energy(del_KE)=0.\n",
+ " 3. Change in energy = 0 (process appears to be steady).\n",
+ " 4. Change in potential energy(del_PE) = 0(no change in level) .\n",
+ " Result : del_H = 0 . \n",
+ "(e) 1 to 3.\n",
+ " 1. Change in potential energy(del_PE) = 0(no change in level) .\n",
+ " 2. Probably change in kinetic energy(del_KE)=0 .\n",
+ " 3. Change in energy = 0 (process appears to be steady).\n",
+ " Result : Q + W = del_H.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 24.3 page no. 728\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of the energy balance.\n",
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "m_CO2 = 10. ;\t\t\t# mass of CO2 - [lb]\n",
+ "Ti_CO2 = 80. ;\t\t\t# Initial temperature of CO2 - [degree F]\n",
+ "Vi = 4.0 ;\t\t\t# Initial volume of CO2-[cubic feet]\n",
+ "f_CO2 = 40./100 ;\t\t\t# Fraction of CO2 that convert to liquid finally \n",
+ "s_Vi = Vi /m_CO2 ;\t\t\t# Initial specific volume of CO2 - [cubic feet/lb]\n",
+ "s_Vf = s_Vi ;\t\t\t# Constant volume -[cubic feet/lb]\n",
+ "Pi = 300. ;\t\t\t# Intial pressure - [psia]\n",
+ "del_Hi = 160. ;\t\t\t# Intial change in specific enthalpy - [Btu/lb]\n",
+ "# Now again use chart to get fnal condition fixed by constant volume line and quality 0.6 , according to book it is \n",
+ "del_Hf = 81. ;\t\t\t# Final change in specific enthalpy - [Btu/lb]\n",
+ "Pf = 140. ;\t\t\t#Final pressure - [psia]\n",
+ "\n",
+ "# Calculations\n",
+ "Q = ((del_Hf - del_Hi) - (Pf * s_Vf * 144/778.2 - Pi * s_Vi * 144/778.2))*m_CO2 ;\t\t\t# Heat removed from the extinguisher -[Btu]\n",
+ "\n",
+ "# Results\n",
+ "print ' Heat removed from the extinguisher is %i Btu .'%Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat removed from the extinguisher is -671 Btu .\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 24.4 page no. 730"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of the energy balance to plasma etching.\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "# Pick the system as gas plus heater \n",
+ "# Given\n",
+ "Pi = 1.5 ;\t\t\t# Intial pressure - [Pa]\n",
+ "Vi = 2*10**-3 ;\t\t\t# Initial volume of gas - [cubic metre]\n",
+ "Ti = 300 ;\t\t\t# Initial temperature - [K]\n",
+ "W = 480 ;\t\t\t# Work done by heater on system\n",
+ "t = 5 ;\t\t\t# Time for which current is supplied -[ min]\n",
+ "m_ht = 12 ;\t\t\t# Mass of the heater - [g]\n",
+ "C_ht = 0.35 ;\t\t\t# Heat capacity of heater - [ J/gK]\n",
+ "R = 8.314 ;\t\t\t# Ideal gas constant - [(Pa*cubic metre)/(g mol* K)]\n",
+ "\n",
+ "# It is assumed that heat transfer across system boundary for this short time is negligible , therefore Q = 0\n",
+ "# Using the above assumption the equation reduces to del_U = W, therefore \n",
+ "del_U = W ;\t\t\t# Change in nternal energy - [J]\n",
+ "\n",
+ "# Calculations\n",
+ "# Gas is assumed to be ideal, therefore get n by using pv = nRT\n",
+ "n = (Pi*Vi)/(R*Ti) ;\t\t\t# Number of moles of argon gas -[g mol]\n",
+ "Cp = (5./2)* R ;\t\t\t# Specific heat capacity of argon gas at constant pressure - [ J/gK]\n",
+ "Cv = Cp - R ;\t\t\t# Specific heat capacity of argon gas at constant volume - [ J/gK]\n",
+ "\n",
+ "def f(Tf):\n",
+ " return m_ht*C_ht*(Tf - Ti) + n*Cv*(Tf - Ti) - del_U\n",
+ " \n",
+ "Tf=fsolve(f,400) ;\t\t\t# Final temperature -[K] \n",
+ "\n",
+ "# Results\n",
+ "print ' Final temperature of gas is %.0f K .'%Tf\n",
+ " \n",
+ "Pf = (Tf/Ti)*Pi ;\t\t\t# Final pressure - [Pa]\n",
+ "print ' Final pressure in chamber is %.2f Pa .'%Pf\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Final temperature of gas is 414 K .\n",
+ " Final pressure in chamber is 2.07 Pa .\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 24.5 page no. 732\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Energy balance applied to a batch process\n",
+ "\n",
+ "# Variables\n",
+ "# Pick the system as shown in above figure of book\n",
+ "# Given\n",
+ "m_water = 10. ;\t\t\t# Mass of water - [lb]\n",
+ "T_water = 35. ;\t\t\t# Temperature of water - [degree F]\n",
+ "m_ice = 4. ;\t\t\t# Mass of ice - [lb]\n",
+ "T_ice = 32. ;\t\t\t# Temperature of ice - [degree F]\n",
+ "m_stm = 6. ;\t\t\t# Initial mass of steam -[lb]\n",
+ "T_stm = 250. ;\t\t\t# Temperature of stm - [degree F]\n",
+ "p = 20. ;\t\t\t# Pressure of system -[psia]\n",
+ "\n",
+ "m_total = m_water + m_ice + m_stm ;\t\t\t# Mass of H2O in three phases initially -[lb]\n",
+ "\n",
+ "U_ice = -143.6 ;\t\t\t# Specific internal energy of ice -[Btu/lb]\n",
+ "U_water = 3.025 ;\t\t\t# Specific internal energy of water -[Btu/lb]\n",
+ "U_stm = 1092.25 ;\t\t\t# Specific internal energy of steam -[Btu/lb]\n",
+ "V_water = 0.0162 ;\t\t\t# Specific volume of water -[cubic feet/lb]\n",
+ "V_stm = 20.80 ;\t\t\t# Specific volume of steam -[cubic feet/lb]\n",
+ "V_total = m_stm*V_stm ;\t\t\t#Total volume of container ignoring volume of water and ice as they are neglgible\n",
+ "\n",
+ "# Calculations\n",
+ "V_sys = V_total/m_total ;\t\t\t# Specific volume of system -[cubic feet/lb]\n",
+ "U_sys =(m_water*U_water + m_ice*U_ice + m_stm*U_stm)/m_total ;\t\t\t# Final specific internal energy of system -[Btu/lb]\n",
+ "\n",
+ "T1 = 190 ;\t\t\t# assumed temperature\n",
+ "U1 = [157.17,1071.83] ;\t\t\t#specific internal energy of liquid and vapour respetively -[Btu/lb]\n",
+ "V1 = [0.0165,41.01] ;\t\t\t# Specific volume of liquid and vapour respetively -[cubic feet/lb]\n",
+ "x1 = V_sys/V1[1] ;\t\t\t# Quality of vapour\n",
+ "U1_sys = (1-x1)*U1[0] + x1*U1[1] \t\t\t# Specific internal energy of system at T1-[Btu/lb] \n",
+ "\n",
+ "T2 = 200. ;\t\t\t# assumed temperature\n",
+ "U2 = [168.11, 1073.96];\t\t\t# specific internal energy of liquid and vapour respetively -[Btu/lb]\n",
+ "V2 = [0.017, 33.601] ;\t\t\t# Specific volume of liquid and vapour respetively -[cubic feet/lb]\n",
+ "x2 = V_sys/V2[1] ; \t\t\t# Quality of vapour\n",
+ "U2_sys = (1-x2)*U2[0] + x2*U2[1] ;\t\t\t# Specific internal energy of system at T2-[Btu/lb] \n",
+ "\n",
+ "# Results\n",
+ "# Check whether assumption is right\n",
+ "if (U_sys > U1_sys ):\n",
+ " if ( U_sys <U2_sys):\n",
+ " print 'Assumption is right, now find exact temperature by interpolation between 2 assumed temperatures.'\n",
+ " else:\n",
+ " print 'Assumption is wrong, assume different T2.'\n",
+ "else:\n",
+ " print 'Assumption is wrong,assume different T1.'\n",
+ "\n",
+ "# Interpolation, to get final temperature corresponding to U_sys\n",
+ "T_sys = T1 + ((T2 - T1)*(U_sys - U1_sys))/(U2_sys - U1_sys)\n",
+ "\n",
+ "print ' The final temperature obtained by interpolation between 2 assumed temperatures is %.2f degree F.'%T_sys\n",
+ " \n",
+ "# Now obtain specific volume of vapour data at final temperature from steam table and use it to calculate x(quality) , according to book it is\n",
+ "V_vap = 39.35 ;\t\t\t#specific volume of vapour data at final temperature -[cubic feet/lb]\n",
+ "x = V_sys /V_vap ;\t\t\t# Quality of gas at final temperature\n",
+ " \n",
+ " \t\t\t#Final state\n",
+ "Vap = m_total*x ;\t\t\t# Mass of vapour at final state - [lb]\n",
+ "stm_con = m_stm - Vap ;\t\t\t# Mass of steam condenses - [lb]\n",
+ "\n",
+ "print 'Therefore, mass of steam condenses is %.2f lb.'%stm_con\n",
+ "\n",
+ "print \"Answer is wrong in book.\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assumption is right, now find exact temperature by interpolation between 2 assumed temperatures.\n",
+ " The final temperature obtained by interpolation between 2 assumed temperatures is 191.03 degree F.\n",
+ "Therefore, mass of steam condenses is 2.83 lb.\n",
+ "Answer is wrong in book.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 24.6 page no : 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# application of the energy balance to pumping water\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "# Variables\n",
+ "# Pick the system as shown in above figure of book\n",
+ "# Given\n",
+ "h1 = -15 ;\t\t\t# Initial level of water from ground level -[ft]\n",
+ "h2 = 165 ;\t\t\t#Final level of water from ground level -[ft]\n",
+ "V_rate = 200 ;\t\t\t# Volume flow rate of water - [gal/hr]\n",
+ "Q1 = 30000 ;\t\t\t# Heat input by heater - [Btu/hr]\n",
+ "Q2 = 25000 ;\t\t\t# Heat lost by system -[Btu/hr]\n",
+ "T1 = 35 ;\t\t\t# Initial temperature of water - [degree F]\n",
+ "g = 32.2 ;\t\t\t# Acceleration due to gravity - [ft/ square second]\n",
+ "p_pump = 2 ;\t\t\t# Power of pump -[hp]\n",
+ "f_w = 55./100 ;\t\t\t# Fraction of rated horsepower that i used in pumping water \n",
+ "Cp = 1 ;\t\t\t# Specific heat capacity of water - [Btu/lb*F]\n",
+ "\n",
+ "# Calculations\n",
+ "m = V_rate * 8.33 ;\t\t\t# Total mass of water pumped -[lb]\n",
+ "del_PE = (m* g *(h2 - h1))/(32.2*778) ;\t\t\t# Change in PE - [Btu/hr]\n",
+ "Q = Q1 - Q2 ;\t\t\t# Net heat exchange -[Btu/hr]\n",
+ "W = 2* f_w * 60 * 33000/778 ;\t\t\t# Work on system - [Btu/hr]\n",
+ "del_H = Q + W - del_PE ;\t\t\t# By using reduced energy balance - [Btu/hr]\n",
+ "\t\t\t# Also del_H = m* Cp * (T2 - T1), all is known except T2 , solve for T2\n",
+ "def f(T2):\n",
+ " return m*Cp*(T2-T1) - del_H\n",
+ " \n",
+ "T2 = fsolve(f,40)[0] ;\t\t\t# Boiling point temperature \n",
+ "\n",
+ "# Results\n",
+ "print ' Final temperature of water that enters storage tank is %.1f degree F .'%T2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Final temperature of water that enters storage tank is 39.5 degree F .\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py:227: RuntimeWarning: The iteration is not making good progress, as measured by the \n",
+ " improvement from the last ten iterations.\n",
+ " warnings.warn(msg, RuntimeWarning)\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 24.7 page no. 738\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# application of the energy balance, to heat a biomass.\n",
+ "\n",
+ "# Variables\n",
+ "# Pick the system as shown in above figure of book\n",
+ "# Given\n",
+ "T_stm = 250 + 273 ;\t\t\t# Temperature of entering steam - [K ]\n",
+ "Q_loss = -1.5 ;\t\t\t# Rate of heat loss from system - [kJ/s ]\n",
+ "T_mi = 20 + 273 ;\t\t\t#Temperature of entering material -[K ]\n",
+ "T_mf = 100 + 273 ;\t\t\t# Temperature of material after heating - [K]\n",
+ "m_m = 150 ;\t\t\t# Mass of charged material - [kg]\n",
+ "Cp_m = 3.26 ;\t\t\t# Average heat capacity of material - [ J/(g*K)]\n",
+ "\n",
+ "# Calculations\n",
+ "del_U = m_m*Cp_m*(T_mf - T_mi) ;\t\t\t# Change in enthalpy of system , because del_(pV) = 0 for liquid and solid charge -[kJ]\n",
+ "Q_loss_total = Q_loss * 3600; \t\t\t# Total heat loss by system n 1 hour - [kJ]\n",
+ "# We need the value of specific change in enthalpy value of saturated steam(del_H_steam), according to book we can obtain this value from steam table, it's value is -1701 kJ/kg\n",
+ "del_H_steam = -1701 ;\t\t\t# Specific change in enthalpy value of saturated steam -[kJ/kg]\n",
+ "# Get mass of steam per kg charge from reduced energy balance(eqn. (b))\n",
+ "m_stm_total = (del_U - Q_loss_total)/(-del_H_steam) ;\t\t\t# Total mass of stea used - [kg]\n",
+ "m_stm = m_stm_total/m_m ;\t\t\t# Mass of steam used per kg of charge - [kg]\n",
+ "\n",
+ "# Results\n",
+ "print ' Mass of steam used per kg of charge is %.3f kg .'%m_stm\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass of steam used per kg of charge is 0.174 kg .\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 24.8 page no. 741\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Sterilization of a Fermentation Medium\n",
+ "\n",
+ "# Pick the system of whole process as shown in above figure of book\n",
+ "# Given\n",
+ "Q = 1.63 ;\t\t\t# Heat loss from the process - [ kW ]\n",
+ "m_bm = 150 ;\t\t\t# Mass flow rate of biological media into the sterlizer -[kg/min]\n",
+ "T_bm = 50 +273 ;\t\t\t# Temperature of biological media into the sterlizer - [K]\n",
+ "T_sm = 75 + 273 ;\t\t\t# Temperature of sterlize media out of the sterlizer - [K]\n",
+ "P_ss = 300 ;\t\t\t# Pressure of satureted steam entering the steam heater - [kPa]\n",
+ "P_sc = 300 ;\t\t\t# Pressure of satureted condensate exiting the steam heater - [kPa]\n",
+ "\n",
+ "H_w1 = 207.5 ;\t\t\t# Change in specific enthalpy of water at 50 degree C - [kJ/kg]\n",
+ "H_w2 = 310.3 ;\t\t\t# Change in specific enthalpy of water at 75 degree C - [kJ/kg]\n",
+ "H_ss = 2724.9 ;\t\t\t#Change in specific enthalpy of satureted steam entering the steam heater at 300 kPa - [kJ/kg]\n",
+ "H_sc = 561.2 ;\t\t\t#Change in specific enthalpy of satureted condensate exiting the steam heater at 300 kPa - [kJ/kg]\n",
+ "\n",
+ "# Calculations\n",
+ "m_sm = m_bm ;\t\t\t# By material balance -[kg/min]\n",
+ "m_stm = (Q*60 - m_sm*H_w2 + m_bm * H_w1 )/(H_sc - H_ss ) ;\t\t\t# Mass flow rate of steam entering the steam heater - [kg/min]\n",
+ "\n",
+ "# Results\n",
+ "print ' Mass flow rate of steam entering the steam heater is %.2f kg steam/min .'%m_stm\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass flow rate of steam entering the steam heater is 7.08 kg steam/min .\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 24.9 page no. 742\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Use of combined meterial and energy balances to solve a distillation problem.\n",
+ "\n",
+ "# Variables\n",
+ "F = 20000 ;\t\t\t# Feed rate of saturated liquid - [kg/h]\n",
+ "F_Bz = 0.5 ;\t\t\t# Fraction of benzene in feed\n",
+ "F_Tol = 0.5 ;\t\t\t# Fraction of toluene in feed\n",
+ "D_Bz = 0.98 ;\t\t\t# Fraction of benzene in distillate\n",
+ "D_Tol = 0.02 ;\t\t\t# Fraction of toluene in distillate\n",
+ "B_Bz = 0.04 ;\t\t\t# Fraction of benzene in bottoms\n",
+ "B_Tol = 0.96 ;\t\t\t# Fraction of toluene in bottoms\n",
+ "R_by_D = 4.0 ;\t\t\t# Recycle ratio \n",
+ "\n",
+ "# Calculations\n",
+ "from numpy import matrix\n",
+ "a = matrix([[1,1],[B_Bz,D_Bz]]) ;\t\t\t# Matrix formed by coefficients of unknown\n",
+ "b = matrix([[F],[F_Bz*F]]) ;\t\t\t# Matrix formed by contants\n",
+ "a = a.I\n",
+ "x = a*b ;\t\t\t# Matrix of solutions \n",
+ "B = x[0] ;\t\t\t# Bottoms - [kg/h]\n",
+ "D = x[1] ;\t\t\t#Distillate - [kg/h]\n",
+ "R = D * R_by_D ;\t\t\t# Recycle - [kg/h]\n",
+ "V = R + D ;\t\t\t# Overhead vapour - [kg/h]\n",
+ "\n",
+ "# For energy balance\n",
+ "# According to book additional data obtained from the fig.E24.9b are\n",
+ "H_F = 165 ;\t\t\t# Change in enthalpy of F - [kJ/kg]\n",
+ "H_B = 205 ;\t\t\t# Change in enthalpy of B - [kJ/kg]\n",
+ "H_D = 100 ;\t\t\t# Change in enthalpy of D - [kJ/kg]\n",
+ "H_R = 100 ;\t\t\t# Change in enthalpy of R - [kJ/kg]\n",
+ "H_V = 540 ;\t\t\t# Change in enthalpy of V - [kJ/kg]\n",
+ "\n",
+ "Qc = R*H_R + D*H_D - V*H_V ;\t\t\t# The heat duty in the condenser - [kJ]\n",
+ "Qr = D*H_D + B*H_B - F*H_F - Qc;\t\t\t# The heat duty to the reboiler - [kJ]\n",
+ "\n",
+ "# Results\n",
+ "print ' Ditillate (D) %.2e kg/h.'%D\n",
+ "print ' Bottoms (B) %.2e kg/h.'%B\n",
+ "print ' The heat duty in the condenser (Qc) %.2e kJ/h.'%Qc\n",
+ "print ' The heat duty to the reboiler (Qr) %.2e kJ/h.'%Qr\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ditillate (D) 9.79e+03 kg/h.\n",
+ " Bottoms (B) 1.02e+04 kg/h.\n",
+ " The heat duty in the condenser (Qc) -2.15e+07 kJ/h.\n",
+ " The heat duty to the reboiler (Qr) 2.13e+07 kJ/h.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb
new file mode 100644
index 00000000..66cbaa91
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb
@@ -0,0 +1,610 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25 : Energy Balances How to Account for Chemical Reaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.1 page no. 766\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determination of a heat of formation from heat transfer measurements\n",
+ "\n",
+ "# Variables\n",
+ "Qa = -393.51 ;\t\t\t# Heat of reaction of reaction (a) - [kJ/g mol C] \n",
+ "Qb = -282.99 ;\t\t\t# Heat of reaction of reaction (b) - [kJ/g mol CO] \n",
+ "del_Ha = Qa ;\t\t\t# Change in enthalpy of reaction A - [kJ/g mol C]\n",
+ "del_Hb = Qb ;\t\t\t# Change in enthalpy of reaction B - [kJ/g mol CO]\n",
+ "\n",
+ "# Calculations\t\n",
+ "del_Hfc = del_Ha - del_Hb ;\t\t\t# Standard heat of formation of CO - [kJ/g mol C]\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard heat of formation of CO is %.2f kJ/g mol C.'%del_Hfc\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard heat of formation of CO is -110.52 kJ/g mol C.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 25.2 page no. 767\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Retrival of heats of formation from reference data.\n",
+ "\n",
+ "# Variables\n",
+ "H_H2 = 0 ;\t\t\t# Standard heat of formation of H2 -[kJ/ g mol H2]\n",
+ "H_Cl2 = 0 ;\t\t\t# Standard heat of formation of Cl2 -[kJ/ g mol Cl2]\n",
+ "H_HCl = -92.311 ;\t\t\t# Standard heat of formation of HCl -[kJ/ g mol HCl]\n",
+ "\n",
+ "# Calculations\n",
+ "H_f = 1*H_HCl - (1./2)*(H_H2 + H_Cl2) ; \t\t\t# Standard heat of formation of HCl by reaction - [kJ/ g mol HCl]\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard heat of formation of HCl(g) is %.3f kJ/g mol HCl.'%H_f\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard heat of formation of HCl(g) is -92.311 kJ/g mol HCl.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 25.3 page no. 771\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the standard heat of reaction from the standard heats of formation.\n",
+ "\n",
+ "# Variables\n",
+ "H_fNH3 = -46.191 ;\t\t\t# Standard heat of formation of NH3 -[kJ/ g mol]\n",
+ "H_fO2 = 0 ;\t\t\t#Standard heat of formation of O2 -[kJ/ g mol]\n",
+ "H_fNO = 90.374 ;\t\t\t# Standard heat of formation of NO -[kJ/ g mol]\n",
+ "H_fH2O = -241.826 ;\t\t\t# Standard heat of formation of H2O -[kJ/ g mol]\n",
+ "\n",
+ "# Calculations\n",
+ "H_rxn = ((4*H_fNO + 6*H_fH2O) - (4*H_fNH3 + 5*H_fO2))/4. ;\t\t\t# Heat of above reaction-[kJ/ g mol NH3]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of above reaction is %.3f kJ/g mol NH3.'%H_rxn\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of above reaction is -226.174 kJ/g mol NH3.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 25.4 page no. 773\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculation of the heat of reaction at a temparature different from the standard conditions.\n",
+ "\n",
+ "# Variables\n",
+ "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n",
+ "P2 = 1. ;\t\t\t# Final pressure - [atm]\n",
+ "T1 = 500. ;\t\t\t# Initial temperature -[degree C]\n",
+ "T2 = 500. ;\t\t\t# Final temperature -[degree C]\n",
+ "\n",
+ "m_CO2 = 1. ;\t\t\t# Moles of CO2 - [ g mol]\n",
+ "m_H2 = 4. ;\t\t\t# Moles of H2 - [ g mol]\n",
+ "m_H2O = 2. ;\t\t\t# Moles of H2O - [ g mol]\n",
+ "m_CH4 = 1. ;\t\t\t# Moles of CH4 - [ g mol]\n",
+ "\n",
+ "H_fCO2 = -393.250 ;\t\t\t# Heat of formation of CO2 - [kJ/g mol] \n",
+ "H_fH2 = 0. ;\t\t\t# Heat of formation of H2 - [kJ/g mol] \n",
+ "H_fH2O = -241.835 ;\t\t\t# Heat of formation of H2O - [kJ/g mol] \n",
+ "H_fCH4 = -74.848 ;\t\t\t# Heat of formation of CH4 - [kJ/g mol] \n",
+ "\n",
+ "H_CO2 = 21.425 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CO2 - [kJ/g mol] \n",
+ "H_H2 = 13.834 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2 - [kJ/g mol] \n",
+ "H_H2O = 17.010 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2O - [kJ/g mol] \n",
+ "H_CH4 = 23.126 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CH4 - [kJ/g mol] \n",
+ "\n",
+ "# Calculations\n",
+ "H_rxn_25 = (m_CH4*H_fCH4 + m_H2O*H_fH2O) - (m_CO2*H_fCO2 + m_H2*H_fH2) ;\t\t\t# Heat of reaction at 25 C\n",
+ "sum_H_rct = m_CO2*H_CO2 + m_H2*H_H2 ;\t\t\t# sum of heat of formation of reactant - [kJ]\n",
+ "sum_H_pdt = m_CH4*H_CH4 + m_H2O*H_H2O ;\t\t\t#sum of heat of formation of product - [kJ]\n",
+ "# Heat of above reaction is calculated by eqn. 25.4\n",
+ "H_rxn_500 = sum_H_pdt - sum_H_rct + H_rxn_25 ;\t\t\t# Heat of reaction at 500 C\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of above reaction at 500 degree C and 1 atm is %.1f kJ.'%H_rxn_500\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of above reaction at 500 degree C and 1 atm is -184.9 kJ.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.5 page no. 775\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the Heat Transfer using Heat of Reaction in a Process in\n",
+ "\n",
+ "# Variables\n",
+ "m_CO2 = 1. ;\t\t\t# Moles of CO2 - [ g mol]\n",
+ "m_H2 = 4. ;\t\t\t# Moles of H2 - [ g mol]\n",
+ "m_H2O = 2. ;\t\t\t# Moles of H2O - [ g mol]\n",
+ "m_CH4 = 1. ;\t\t\t# Moles of CH4 - [ g mol]\n",
+ "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n",
+ "P2 = 1. ;\t\t\t# Final pressure - [atm] \n",
+ "\n",
+ "T1_CO2 = 800. ;\t\t\t# Initial temperature of entering CO2 -[K]\n",
+ "T1_H2 = 298. ;\t\t\t# Initial temperature of entering H2 -[K]\n",
+ "T2 = 1000. ;\t\t\t# Temperature of exiting product - [K]\n",
+ "\n",
+ "m1_CO2 = 1. ;\t\t\t# Moles of entering CO2 - [ g mol]\n",
+ "m1_H2 = 4. ;\t\t\t# Moles of entering H2 - [ g mol]\n",
+ "f_con = 70./100 ;\t\t\t# Fractional conversion of CO2 \n",
+ "m2_H2O = 2*f_con ;\t\t\t# Moles of H2O in product - [ g mol]\n",
+ "m2_CH4 = 1*f_con ;\t\t\t# Moles of CH4 in product - [ g mol]\n",
+ "m2_CO2 = m1_CO2*(1-f_con) ;\t\t\t# Moles of CO2 in product - [ g mol]\n",
+ "m2_H2 = m1_H2*(1-f_con) ;\t\t\t# Moles of CO2 in product - [ g mol]\n",
+ "\n",
+ "H_fCO2 = -393.250 ;\t\t\t# Heat of formation of CO2 - [kJ/g mol] \n",
+ "H_fH2 = 0 ;\t\t\t# Heat of formation of H2 - [kJ/g mol] \n",
+ "H_fH2O = -241.835 ;\t\t\t# Heat of formation of H2O - [kJ/g mol] \n",
+ "H_fCH4 = -74.848 ;\t\t\t# Heat of formation of CH4 - [kJ/g mol] \n",
+ "\n",
+ "H1_CO2 = 22.798 ;\t\t\t# Change in enthalpy during temperature change from 298K to 800 K of CO2 - [kJ/g mol] \n",
+ "H1_H2 = 0 ;\t\t\t# Change in enthalpy during temperature change from 298K to 298 K of H2 - [kJ/g mol] \n",
+ "H2_H2O = 25.986 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of H2O - [kJ/g mol] \n",
+ "H2_CH4 = 38.325 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of CH4 - [kJ/g mol] \n",
+ "H2_CO2 = 33.396; \t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of CO2 - [kJ/g mol] \n",
+ "H2_H2 = 20.620; \t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of H2 - [kJ/g mol] \n",
+ "\n",
+ "# Calculations\n",
+ "H_rxn_25 = (m_CH4*H_fCH4 + m_H2O*H_fH2O) - (m_CO2*H_fCO2 + m_H2*H_fH2) ;\t\t\t# Standard heat of reaction at 25 C-[kJ]\n",
+ "H_rxn_ac = f_con*H_rxn_25 ;\t\t\t# Heat of reaction actual - [kJ]\n",
+ "sum_H_rct = m1_CO2*H1_CO2 + m1_H2*H1_H2 ;\t\t\t# sum of heat of formation of reactant - [kJ]\n",
+ "sum_H_pdt = m2_CH4*H2_CH4 + m2_H2O*H2_H2O + m2_CO2*H2_CO2 + m2_H2*H2_H2 ;\t\t\t#sum of heat of formation of product - [kJ]\n",
+ "H_rxn = sum_H_pdt - sum_H_rct + H_rxn_ac ;\t\t\t# Heat of reaction -[kJ/ g mol CO2]\n",
+ "\n",
+ "Q = H_rxn ;\t\t\t# Heat transfer to/from the reactor - [kJ]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat transfer to/from the reactor is %.3f kJ.Since Q is negative , the reactor losses heat.'%Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer to/from the reactor is -40.515 kJ.Since Q is negative , the reactor losses heat.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.6 page no. 776\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the enthalpy change in anerobic culture.\n",
+ "\n",
+ "# Variables\n",
+ "H_EtOH =-1330.51 ;\t\t\t# Change in enthalpy of ethanol -[kJ/g mol]\n",
+ "H_Ac = -887.01 ;\t\t\t# Change in enthalpy of acetate -[kJ/g mol]\n",
+ "H_Fr = -221.75 ;\t\t\t# Change in enthalpy of formate -[kJ/g mol]\n",
+ "H_Lc = -1330.51 ;\t\t\t# Change in enthalpy of lactate -[kJ/g mol]\n",
+ "H_Mn = -2882.78 ;\t\t\t# Change in enthalpy of mannitol -[kJ/g mol]\n",
+ "mol_EtOH =1.29 ;\t\t\t#ethanol produced / g mol mannitol -[g mol]\n",
+ "mol_Ac = 0.22 ; \t\t\t#acetate produced / g mol mannitol -[g mol]\n",
+ "mol_Fr = 1.6 ; \t\t\t#formate produced / g mol mannitol-[g mol]\n",
+ "mol_Lc = 0.4 ;\t\t\t#lactate produced / g mol mannitol-[g mol]\n",
+ "mol_Mn = 1.0 ;\t\t\t#mannitol produced / g mol mannitol-[g mol]\n",
+ "B_growth = 40.5 ;\t\t\t# Biomass growth -[g cells/g mol mannitol]\n",
+ "\n",
+ "# Calculations and Results\n",
+ "del_H1 = H_EtOH*mol_EtOH +H_Ac*mol_Ac + H_Fr*mol_Fr + H_Lc*mol_Lc - H_Mn*mol_Mn ;\t\t\t# Net enthalpy change for several products (metabolites) per g mol mannitol consumed -[kJ]\n",
+ "printnt ' (a) Net enthalpy change for several products (metabolites) per g mol mannitol consumed is %.2f kJ.'%del_H1\n",
+ "\n",
+ "\t\t\t#(b)\n",
+ "del_H2 = del_H1 / B_growth ;\t\t\t#Net enthalpy change for several products (metabolites) per g cells produced-[kJ]\n",
+ "print ' (b) Net enthalpy change for several products (metabolites) per g cells produced is %.2f kJ.'%del_H2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a) Net enthalpy change for several products (metabolites) per g mol mannitol consumed is 84.28 kJ.\n",
+ " (b) Net enthalpy change for several products (metabolites) per g cells produced is 2.08 kJ.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.7 page no. 777\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Green Chemistry Examining Alternate Processes\n",
+ "\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "H_Cb = -26. ;\t\t\t#Standard heat of formation of carbaryl(C12H11O2N) -[kJ/ g mol]\n",
+ "H_HCl = -92.311 ;\t\t\t#Standard heat of formation of HCl -[kJ/ g mol]\n",
+ "H_Ma = -20.0 ;\t\t\t#Standard heat of formation of methyl amine(CH3NH2) -[kJ/ g mol]\n",
+ "H_Mi = -9*10**4 ;\t\t\t#Standard heat of formation of methyl isocynate(C2H3NO) -[kJ/ g mol]\n",
+ "H_Nc = -17.9 ;\t\t\t#Standard heat of formation of 1-Napthalenyl chloroformate(C11H7O2Cl) -[kJ/ g mol]\n",
+ "H_N = 30.9 ;\t\t\t#Standard heat of formation of napthol(C10H8O) -[kJ/ g mol]\n",
+ "H_P = -221.85 ;\t\t\t#Standard heat of formation of phosgene(COCl2) -[kJ/ g mol]\n",
+ "\n",
+ "# Calculations\n",
+ "H_rxn_a = (2*H_HCl + 1*H_Mi) - (1*(H_Ma) + 1*H_P ) ;\t\t\t# Heat of reaction (A)-[kJ]\n",
+ "H_rxn_b = (1*H_Cb ) - (1*(H_Mi) + 1*H_N ) ;\t\t\t# Heat of reaction (B)-[kJ]\n",
+ "H_rxn_c = (1*H_Nc) - (1*(H_N) + 1*H_P ) ;\t\t\t# Heat of reaction (C)-[kJ]\n",
+ "H_rxn_d = (1*H_Cb + 1*H_HCl) - (1*(H_Nc) + 1*H_Ma ) ;\t\t\t# Heat of reaction (D)-[kJ]\n",
+ "\n",
+ "# Results\n",
+ "#Bhopal Process\n",
+ "print ' Bhopal process .'\n",
+ "print ' (a) Heat of reaction (A) is %.1e kJ.'%H_rxn_a\n",
+ "print ' (b) Heat of reaction (B) is %.1e kJ.'%H_rxn_b\n",
+ "\n",
+ "#Alternate process\n",
+ "print ' Alternate process .'\n",
+ "print ' (c) Heat of reaction (C) is %.2f kJ.'%H_rxn_c\n",
+ "print ' (d) Heat of reaction (D) is %.2f kJ.'%H_rxn_d\n",
+ "print ' The above data show that capital cost of Bhopal process could be higher than alternate process.'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Bhopal process .\n",
+ " (a) Heat of reaction (A) is -9.0e+04 kJ.\n",
+ " (b) Heat of reaction (B) is 9.0e+04 kJ.\n",
+ " Alternate process .\n",
+ " (c) Heat of reaction (C) is 173.05 kJ.\n",
+ " (d) Heat of reaction (D) is -80.41 kJ.\n",
+ " The above data show that capital cost of Bhopal process could be higher than alternate process.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.8 page no. 782\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the Heat of Reaction at a Tempera-\n",
+ "\n",
+ "#ture different from the Standard Conditions with Heat of Formation Merged\n",
+ "#with Sensible Heat\n",
+ "# Variables\n",
+ "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n",
+ "P2 = 1. ;\t\t\t# Final pressure - [atm]\n",
+ "T1 = 500. ;\t\t\t# Initial temperature -[degree C]\n",
+ "T2 = 500. ;\t\t\t# Final temperature -[degree C]\n",
+ "\n",
+ "m_CO2 = 1. ;\t\t\t# Moles of CO2 - [ g mol]\n",
+ "m_H2 = 4. ;\t\t\t# Moles of H2 - [ g mol]\n",
+ "m_H2O = 2. ;\t\t\t# Moles of H2O - [ g mol]\n",
+ "m_CH4 = 1. ;\t\t\t# Moles of CH4 - [ g mol]\n",
+ "\n",
+ "H_fCO2 = -393.250; \t\t\t# Heat of formation of CO2 - [kJ/g mol] \n",
+ "H_fH2 = 0 ;\t\t\t# Heat of formation of H2 - [kJ/g mol] \n",
+ "H_fH2O = -241.835 ;\t\t\t# Heat of formation of H2O - [kJ/g mol] \n",
+ "H_fCH4 = -74.848 ;\t\t\t# Heat of formation of CH4 - [kJ/g mol] \n",
+ "\n",
+ "H_CO2 = 21.425 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CO2 - [kJ/g mol] \n",
+ "H_H2 = 13.834 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2 - [kJ/g mol] \n",
+ "H_H2O = 17.010 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2O - [kJ/g mol] \n",
+ "H_CH4 = 23.126 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CH4 - [kJ/g mol] \n",
+ "\n",
+ "# Calculations\n",
+ "H_in = (H_fCO2 + H_CO2)*m_CO2 + (H_fH2 + H_H2)*m_H2 ;\t\t\t# Enthalpy change for inputs -[kJ]\n",
+ "H_out = (H_fH2O + H_H2O)*m_H2O + (H_fCH4 + H_CH4)*m_CH4 ; \t\t\t# Enthalpy change for outputs -[kJ]\n",
+ "del_H = H_out - H_in ;\t\t\t# Net enthalpy change of process -[kJ]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of above reaction at 500 degree C and 1 atm is %.1f kJ.'%del_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of above reaction at 500 degree C and 1 atm is -184.9 kJ.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.9 page no. 783\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the Heat Transfer when Reactants enter and Products leave at Different Temperatures\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "m_CO = 1. ;\t\t\t# Moles of CO input- [g mol]\n",
+ "m1_O2 = 1.5 ;\t\t\t# Moles of O2 input - [g mol]\n",
+ "m_CO2 = 1. ;\t\t\t# Moles of CO2 output - [g mol]\n",
+ "m2_O2 = 1. ;\t\t\t# Moles of O2 output - [g mol]\n",
+ "T_in_CO = 298. ;\t\t\t# Temperature of entering CO -[K]\n",
+ "T_in_O2 = 400. ;\t\t\t#Temperature of entering O2 -[K]\n",
+ "T_out_CO2 = 300. ;\t\t\t# Temperature of exiting CO2 -[K]\n",
+ "T_out_O2 = 300. ;\t\t\t# Temperature of exiting O2 -[K]\n",
+ "\n",
+ "H_fCO = -110.520 ;\t\t\t# Heat of formation of CO - [kJ/g mol] \n",
+ "H_fO2 = 0 ;\t\t\t# Heat of formation of O2 - [kJ/g mol] \n",
+ "H_fCO2 = -393.250 ;\t\t\t# Heat of formation of CO2 - [kJ/g mol] \n",
+ "\n",
+ "H_CO = 0 ;\t\t\t# Change in enthalpy during temperature change from 298K to 298 K of CO - [kJ/g mol] \n",
+ "H1_O2 = 11.619 ;\t\t\t# Change in enthalpy during temperature change from 298K to 400 K of input O2 - [kJ/g mol] \n",
+ "H_CO2 = 11.644 ;\t\t\t# Change in enthalpy during temperature change from 298K to 300 K of CO2 - [kJ/g mol] \n",
+ "H2_O2 = 8.389 ;\t\t\t# Change in enthalpy during temperature change from 298K to 300 K of output O2 - [kJ/g mol] \n",
+ "\n",
+ "# Calculations\n",
+ "H_in = (H_fCO + H_CO)*m_CO + (H_fO2 + H1_O2)*m1_O2 ;\t\t\t# Enthalpy change for inputs -[kJ]\n",
+ "H_out = (H_fCO2 + H_CO2)*m_CO2 + (H_fO2 + H2_O2)*m2_O2 ;\t\t\t# Enthalpy change for inputs -[kJ]\n",
+ "del_H = H_out - H_in ;\t\t\t# Net enthalpy change of process -[kJ]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of above reaction is %.1f kJ.'%del_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of above reaction is -280.1 kJ.\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.10 page no. 788\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Heating Value of Coal\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Given \n",
+ "Ex_hv = 29770.0 ;\t\t\t# Experimental heating value of given coal - [kJ/kg]\n",
+ "\n",
+ "C = 71.0/100 ;\t\t\t#Fraction of C in coal \n",
+ "H2 = 5.6/100 ;\t\t\t# Fraction of H2 in coal \n",
+ "N2 = 1.6/100 ;\t\t\t# Fraction of N2 in coal \n",
+ "S = 2.7/100 ;\t\t\t# Fraction of S in coal \n",
+ "ash = 6.1/100 ;\t\t\t# Fraction of ash in coal \n",
+ "O2 = 13.0/100 ;\t\t\t#Fraction of O2 in coal \n",
+ "\n",
+ "# Calculations\n",
+ "HHV = 14544*C + 62028*(H2 - O2/8) + 4050*S ;\t\t\t# Higher heating value (HHV) by Dulong formula -[Btu/lb]\n",
+ "HHV_SI = HHV *1.055/0.454 ;\t\t\t# HHV in SI unt - [kJ/kg]\n",
+ "\n",
+ "# Results\n",
+ "print 'The experimental heating value - %.0f kJ.'%Ex_hv\n",
+ "print ' Higher heating value (HHV) by Dulong formula - %.0f kJ.'%HHV_SI\n",
+ "print ' The two values are quite close.' \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The experimental heating value - 29770 kJ.\n",
+ " Higher heating value (HHV) by Dulong formula - 29980 kJ.\n",
+ " The two values are quite close.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 25.11 page no. 789\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Selecting a Fuel to reduce SO2 emissions\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "H_req = 10**6 ;\t\t\t# Heat requirement - [Btu]\n",
+ "\n",
+ "d_N6 = 60.2 ;\t\t\t# Density of fuel no. 6-[lb/ft**3]\n",
+ "d_N2 = 58.7 ;\t\t\t# Density of fuel no. 2-[lb/ft**3]\n",
+ "S_N6 = 0.72/100 ;\t\t\t# Sulphur content in fuel no. 6\n",
+ "S_N2 = 0.62/100; \t\t\t#Sulphur content in fuel no. 2\n",
+ "lhv_N6 = 155000 ;\t\t\t#Lower heating value of No.6 -[Btu/gal]\n",
+ "lhv_N2 = 120000 ;\t\t\t#Lower heating value of No.2 -[Btu/gal]\n",
+ "\n",
+ "# Calculations\n",
+ "S1 = H_req*d_N6*S_N6/lhv_N6 ;\t\t\t# Sulphur emmited when we use fuel NO. 6-[lb]\n",
+ "S2 = H_req*d_N2*S_N2/lhv_N2 ;\t\t\t# Sulphur emmited when we use fuel NO. 2-[lb]\n",
+ "\n",
+ "# Results\n",
+ "print ' Sulphur emmited when we use fuel NO. 6 is %.2f lb.'%S1 \n",
+ "print ' Sulphur emmited when we use fuel NO. 2 is %.2f lb.'%S2 \n",
+ "print 'Clearly fuel no. 6 should be selected because of its low SO2 emmission.'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Sulphur emmited when we use fuel NO. 6 is 2.80 lb.\n",
+ " Sulphur emmited when we use fuel NO. 2 is 3.03 lb.\n",
+ "Clearly fuel no. 6 should be selected because of its low SO2 emmission.\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb
new file mode 100644
index 00000000..5268900c
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb
@@ -0,0 +1,328 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 26 : Energy Balances that include the Effects of Chemical Reaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 26.2 page no. 808\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of an adiabetic reaction temperature.\n",
+ "\n",
+ "# Variables\n",
+ "m1_CO = 1.; \t\t\t# Moles of CO input- [g mol]\n",
+ "m1_O2 = 1. ;\t\t\t# Moles of O2 input - [g mol]\n",
+ "m1_N2 = 3.76 ;\t\t\t# Moles of N2 input - [g mol]\n",
+ "#Output compounds\n",
+ "m2_CO2 = 1. ;\t\t\t# Moles of CO2 output - [g mol]\n",
+ "m2_O2 = .50 ;\t\t\t# Moles of O2 output - [g mol]\n",
+ "m2_N2 = 3.76 ;\t\t\t# Moles of N2 output - [g mol]\n",
+ "\n",
+ "H1_fCO = -110520 ;\t\t\t# Heat of formation of CO - [J/g mol] \n",
+ "H1_fO2 = 0 ;\t\t\t# Heat of formation of O2 - [J/g mol] \n",
+ "H1_fN2 = 0 ;\t\t\t# Heat of formation of N2 - [J/g mol] \n",
+ "H1_CO = 2917. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 373 K of CO - [J/g mol] \n",
+ "H1_O2 = 2953. - 732 ;\t\t\t# Change in enthalpy during temperature change from 298K to 373 K of input O2 - [J/g mol]\n",
+ "H1_N2 = 2914. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 373 K of input N2 - [J/g mol]\n",
+ "\n",
+ "# Calculations\n",
+ "H_in = (H1_fCO + H1_CO)*m1_CO + (H1_fO2 + H1_O2)*m1_O2 + (H1_fN2 + H1_N2)*m1_N2;\t\t\t# Enthalpy change for inputs -[J]\n",
+ "\n",
+ "H2_fCO2 = -393510 ;\t\t\t# Heat of formation of CO2 - [J/g mol] \n",
+ "H2_fO2 = 0 ;\t\t\t# Heat of formation of O2 - [J/g mol] \n",
+ "H2_fN2 = 0 ;\t\t\t# Heat of formation of N2 - [J/g mol] \n",
+ "H2_CO2 = 92466. - 912 ;\t\t\t# Change in enthalpy during temperature change from 298K to 2000 K of CO2 - [J/g mol] \n",
+ "H2_O2 = 59914.-732 ;\t\t\t# Change in enthalpy during temperature change from 298K to 2000 K of output O2 - [J/g mol] \n",
+ "H2_N2 = 56902. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 2000 K of output O2 - [J/g mol] \n",
+ "\n",
+ "H1_out = (H2_fCO2 + H2_CO2)*m2_CO2 + (H2_fO2 + H2_O2)*m2_O2 + (H2_fN2 + H2_N2)*m2_N2 ;\t\t\t# Enthalpy change for outputs at 2000 K -[J]\n",
+ "\n",
+ "del_H1 = H1_out - H_in ;\t\t\t# Net enthalpy change of process -[J]\n",
+ "\n",
+ "H2_fCO2 = -393510. ;\t\t\t# Heat of formation of CO2 - [J/g mol] \n",
+ "H3_CO2 = 77455. - 912 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1750 K of CO2 - [J/g mol] \n",
+ "H3_O2 = 50555. -732 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1750 K of output O2 - [J/g mol] \n",
+ "H3_N2 = 47940. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1750 K of output O2 - [J/g mol] \n",
+ "\n",
+ "H2_out = (H2_fCO2 + H3_CO2)*m2_CO2 + (H2_fO2 + H3_O2)*m2_O2 + (H2_fN2 + H3_N2)*m2_N2 ;\t\t\t# Enthalpy change for outputs at 1750 K -[J]\n",
+ "\n",
+ "del_H2 = H2_out - H_in ;\t\t\t# Net enthalpy change of process -[J]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of above reaction when output is assumed to be at 2000 K is %.0f J.'%del_H1\n",
+ "print ' Heat of above reaction when output is assumed to be at 1750 K is %.0f J.'%del_H2\n",
+ "\t\t\t# Energy balance here reduce to del_H = 0 \n",
+ "print ' So we can see that our desired result del_H = 0 is bracketed between 2000 K and 1750 K , hence we will use interpolation to get the theoretical flame temperature.'\n",
+ "\t\t\t# Use interpolation to get the theoretical flame temperature\n",
+ "del_H = 0. ;\t\t\t# Requred condition\n",
+ "Ft = 1750 + ((del_H - del_H2)/(del_H1 - del_H2))*(2000 - 1750) ;\t\t\t# Interpolation to get Flame temperature(Ft)-[K]\n",
+ "print ' Theoretical flame temperature by interpolation is %.0f K.'%Ft\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of above reaction when output is assumed to be at 2000 K is 36740 J.\n",
+ " Heat of above reaction when output is assumed to be at 1750 K is -16648 J.\n",
+ " So we can see that our desired result del_H = 0 is bracketed between 2000 K and 1750 K , hence we will use interpolation to get the theoretical flame temperature.\n",
+ " Theoretical flame temperature by interpolation is 1828 K.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 26.3 page no. 811\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of general Energy Balance in a Process in which More than one Reaction Occurs\n",
+ "\n",
+ "# Solution Fig E26.3b\n",
+ "\n",
+ "# Variables\n",
+ "v_CH4 = 1000. ;\t\t\t# Volume of CH4 taken - [ cubic feet]\n",
+ "CH4 = 1. ;\t\t\t# assumed for convenience- [ g mol] \n",
+ "ex_air = .5 ;\t\t\t# Fraction of excess O2 required \n",
+ "hp_CaCO3 = 0.130 ;\t\t\t# Heat capacity of CaCO3 -[kJ/g mol]\n",
+ "hp_CaO = 0.062 ;\t\t\t# Heat capacity of CaO -[kJ/g mol]\n",
+ "w_CaCO3 = 100.09 ;\t\t\t# Mol. wt. of CaCO3 -[g]\n",
+ "w_CaO = 56.08 ;\t\t\t# Mol. wt. ofCaO - [g]\n",
+ "\n",
+ "# Calculations\n",
+ "req_O2 = 2. ;\t\t\t# By eqn. (b), O2 required by CH4 - [g mol]\n",
+ "ex_O2 = ex_air*req_O2 ;\t\t\t# Excess O2 required - [ g mol]\n",
+ "O2 = req_O2 + ex_O2 ;\t\t\t# Total O2 entering - [ g mol]\n",
+ "N2 = O2 *(.79/.21) ;\t\t\t# Total N2 entering - [ g mol]\n",
+ "\n",
+ "nG_N2 = N2 ;\t\t\t# N2 balance - [ g mol]\n",
+ "nG_H2O = 4*CH4/2. ;\t\t\t# H2O balance - [ g mol]\n",
+ "nG_O2 = ex_O2 ;\t\t\t# [g mol]\n",
+ "\n",
+ "del_Hi_out = [ -393.250,0,0,-241.835,-635.6] ;\t\t\t# \t\t\t# Heat of formation - [kJ/g mol] \n",
+ "del_Hf_out = [21.425,15.043,14.241,17.010,54.25] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n",
+ "del_H_out =del_Hi_out + del_Hf_out ;\t\t\t# Change in enthalpy final - [kJ/g mol]\n",
+ "\n",
+ "del_Hi_in = [ -49.963,-1206.9,0,0] ;\t\t\t# \t\t\t# Heat of formation - [kJ/g mol] \n",
+ "del_Hf_in = [0,0,0,0] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n",
+ "del_H_in = del_Hi_in + del_Hf_in ;\t\t\t# Change in enthalpy final - [kJ/g mol]\n",
+ "\n",
+ "from numpy import matrix\n",
+ "a = matrix([[1,-1],[(del_H_in[1]-del_H_out[4]),-del_H_out[0]]]) ;\t\t\t# Matrix of coefficients\n",
+ "b = matrix([[-1],[(del_H_out[1]*nG_O2 + del_H_out[2]*nG_N2 +del_H_out[3]*nG_H2O-del_H_in[0]*CH4)]]) ;\t\t\t# Matrix of constants\n",
+ "a = a.I\n",
+ "x = a*b ;\t\t\t# Matrix of solutions, L = x(1), nG_CO2 = x(2)\n",
+ "g_CaCO3 = x[0]*w_CaCO3 ;\t\t\t#CaCO3 processed for each g mol of CH4 - [g]\n",
+ "\n",
+ "# Results\n",
+ "print ' CaCO3 processed for each g mol of CH4 is %.0f g.'%g_CaCO3\n",
+ "m_CaCO3 = (v_CH4*g_CaCO3)/359.05 ;\n",
+ "print ' Therefore, CaCO3 processed per 1000 ft**3 of CH4 is %.0f lb.'%m_CaCO3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CaCO3 processed for each g mol of CH4 is 465 g.\n",
+ " Therefore, CaCO3 processed per 1000 ft**3 of CH4 is 1295 lb.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 26.4 page no. 815\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of general Energy Balance in a Process Composed of Multiple Units\n",
+ "\n",
+ "# Solution Fig E26.4b\n",
+ "\n",
+ "# Variables\n",
+ "SO2_in = 2200. ;\t\t\t# Amount of SO2 entering reactor 2-[lb mol/hr]\n",
+ "\n",
+ "R1_CO_in = 1. ;\t\t\t#CO entering reactor 1-[lb mol]\n",
+ "air = .80 ;\t\t\t# Fraction of air used in burning \n",
+ "\n",
+ "R2_fSO2_in = 0.667 ;\t\t\t# Fraction of SO2 entering reactor 2\n",
+ "R2_fO2_in = 0.333 ;\t\t\t# Fraction of O2 entering reactor 2\n",
+ "R2_fSO3_out = 0.586 ;\t\t\t# Fraction of SO3 exiting reactor 2\n",
+ "R2_fSO2_out = 0.276 ;\t\t\t# Fraction of SO2 exiting reactor 2\n",
+ "R2_fO2_out = 0.138 ;\t\t\t# Fraction of O2 exiting reactor 2\n",
+ "# Main Reaction: CO , (1/2)*O2 ---> CO2 \n",
+ "R1_O2_in = (1.0/2)*air ;\t\t\t# O2 entering reactor 1-[g mol]\n",
+ "R1_N2_in = R1_O2_in*(79./21) ;\t\t\t# N2 entering reactor 1-[g mol]\n",
+ "\n",
+ "# Calculations\n",
+ "#Output of reactor 1\n",
+ "R1_CO_out = R1_CO_in*(1 - air) ;\t\t\t# [g mol]\n",
+ "R1_CO2_out = 1*( air) ;\t\t\t# [g mol]\n",
+ "R1_N2_out = R1_N2_in ;\t\t\t#[g mol]\n",
+ "\n",
+ "del_Hi_out = [ -109.054,-393.250,0.,-296.855,-395.263,0.] ; \t\t\t# Heat of formation - [kJ/g mol] \n",
+ "del_Hf_out = [35.332,35.178,22.540,20.845,34.302,16.313] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n",
+ "del_H_out =del_Hi_out + del_Hf_out ;\t\t\t#[-371.825,15.043,160.781,-449.650,-581.35]\t\t\t# Change in enthalpy final - [kJ/g mol]\n",
+ "\n",
+ "del_Hi_in = [ -109.054,-393.250,0.,-296.855,0.] ;\t\t\t# \t\t\t# Heat of formation - [kJ/g mol] \n",
+ "del_Hf_in = [17.177,17.753,11.981,0.,0.] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n",
+ "del_H_in = del_Hi_in+ del_Hf_in ;\t\t\t# Change in enthalpy final - [kJ/g mol]\n",
+ "\n",
+ "from numpy import matrix\n",
+ "# Solve eqn. (a), (b) and (c) to get F ,P , ex \n",
+ "a = matrix([[(R2_fSO3_out),0,-1],\n",
+ " [(R2_fSO2_out),-(R2_fSO2_in),1],\n",
+ " [- 285.50, -(del_H_in[3]*R2_fSO2_in), 0]]) ;\t\t\t# Matrix of coefficients\n",
+ "\n",
+ "b = matrix([[0],[0],[- 33.459781 ]]) ;\t\t\t# Matrix of constants\n",
+ "#a = a.I\n",
+ "#x = a*b ;\t\t\t# Matrix of solutions, P = x(1), F = x(2) ,ex = x(3)\n",
+ "\n",
+ "from numpy import *\n",
+ "x = linalg.solve(a,b)\n",
+ "\n",
+ "F = x[1] ;\t\t\t#exit stream of reactor 2 - [lb mol]\n",
+ "R2_SO2_in = R2_fSO2_in*F ;\t\t\t# Moles of SO2 required per lb mol of CO - [lb mol]\n",
+ "\n",
+ "CO = (R1_CO_in*SO2_in)/R2_SO2_in ;\t\t\t#Mole of CO burned in reactor 1 - [lb mol] \n",
+ "\n",
+ "# Results\n",
+ "print 'Mole of CO burned in reactor 1 is %.0f lb mol.'%CO\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mole of CO burned in reactor 1 is 2259 lb mol.\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 26.5 page no. 819\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Production of Citric Acid by Fungus\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "CA = 10000. ;\t\t\t# Produced citric acid - [kg]\n",
+ "f_glucose = .30 ;\t\t\t# Fraction of glucose in solution \n",
+ "con_glucose = .60 ;\t\t\t# Fraction of glucose consumed\n",
+ "w_glucose = 180.16 ;\t\t\t# Mol. wt. of d,alpha glucose -[g]\n",
+ "H_glucose = -1266 ;\t\t\t# Specific enthalpy change of glucose - [kJ/g mol]\n",
+ "w_CA = 192.12; \t\t\t# Mol. wt. of citric acid -[g]\n",
+ "H_CA = -1544.8 ;\t\t\t# Specific enthalpy change of citric acid - [kJ/g mol]\n",
+ "w_BM = 28.6 ;\t\t\t# Mol. wt. of biomass -[g]\n",
+ "H_BM = -91.4 ;\t\t\t# Specific enthalpy change of biomass - [kJ/g mol]\n",
+ "H_CO2 = -393.51 ;\t\t\t# Specific enthalpy change of CO2 - [kJ/g mol]\n",
+ "\n",
+ "# Calculations\n",
+ "mol_CA = CA/w_CA ;\t\t\t# Mole of citric acid produced - [kg mol]\n",
+ "g_soln = (mol_CA*(3/2.22)*w_glucose*1)/(con_glucose*f_glucose) ;\t\t\t#Mass of 30 % glucose solution introduced -[kg]\n",
+ "i_glucose = g_soln* f_glucose / w_glucose ;\t\t\t# Initial moles of glucose - [kg mol]\n",
+ "f_glucose = (1 - con_glucose)*i_glucose ;\t\t\t# Final moles of glucose - [kg mol]\n",
+ "f_CA = mol_CA ;\t\t\t# Final moles of citric acid - [kg mol]\n",
+ "f_BM = f_CA*(5.35/2.22) ;\t\t\t# Using the reaction (a)- Final moles of biomass - [kg mol]\n",
+ "i_O2 = i_glucose*(7.8/3) ;\t\t\t# Using the reaction (a)- Initial moles of O2 - [kg mol]\n",
+ "f_CO2 = i_glucose*(4.5/3)*con_glucose ;\t\t\t# Using the reaction (a) - Final moles of CO2 - [kg mol]\n",
+ "\n",
+ "power = 100 ;\t\t\t# Power of aerator -[hp]\n",
+ "time = 220 ;\t\t\t# Time taken for reaction - [ hr ]\n",
+ "W = (power*745.7*time*3600)/1000 ;\t\t\t# Work done by aerator - [kJ]\n",
+ "\n",
+ "Hi_glucose = i_glucose*H_glucose*1000 ;\t\t\t# Enthalpy change of glucose input - [kJ]\n",
+ "Hi_O2 = i_O2*0*1000 ;\t\t\t# Enthalpy change of O2 input - [kJ]\n",
+ "H_in = Hi_glucose + Hi_O2 ;\t\t\t# Enthalpy change of input - [kJ]\n",
+ "\n",
+ "Hf_glucose = f_glucose*H_glucose*1000 ;\t\t\t# Enthalpy change of glucose output - [kJ]\n",
+ "Hf_BM = f_BM * H_BM*1000 ;\t\t\t#Enthalpy change of biomass output - [kJ]\n",
+ "Hf_CA = f_CA *H_CA*1000 ;\t\t\t#Enthalpy change of citric acid output - [kJ]\n",
+ "Hf_CO2 = f_CO2 *H_CO2*1000 ;\t\t\t#Enthalpy change of CO2 output - [kJ]\n",
+ "H_out = Hf_glucose + Hf_BM +Hf_CA + Hf_CO2 ;\t\t\t# Enthalpy change of output - [kJ]\n",
+ "del_H = H_out - H_in ;\t\t\t# Total enthalpy change in process - [kJ]\n",
+ "Q = del_H - W ;\t\t\t# Heat removed - [kJ]\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat exchange from the fermentor during production of 10,000 kg citric acid is %.2e kJ(minus sign indicates heat is removed).'%Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat exchange from the fermentor during production of 10,000 kg citric acid is -1.03e+08 kJ(minus sign indicates heat is removed).\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb
new file mode 100644
index 00000000..0515e5c2
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb
@@ -0,0 +1,339 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 27 : Ideal Processes Efficiency and the Mechanical Energy Balance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 27.1 page no. 838\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of the Work done during Evaporation of a Liquid\n",
+ "# Solution E27.1\n",
+ "\n",
+ "# Variables\n",
+ "V_w = 1. ;\t\t\t# Volume of given water -[L]\n",
+ "P_atm = 100. ;\t\t\t# Atmospheric pressure - [kPa]\n",
+ "\n",
+ "#W = -p*del_V\n",
+ "V_H2O = 0.001043 ;\t\t\t# Specific volume of water from steam table according to book- [cubic metre] \n",
+ "V_vap = 1.694 ;\t\t\t# Specific volume of vapour from steam table according to book- [cubic metre] \n",
+ "V1 = 0 ;\t\t\t# Initial volume of H2O in bag-[cubic metre]\n",
+ "\n",
+ "# Calculations\n",
+ "V2 = (V_w*V_vap)/(1000*V_H2O) ;\t\t\t# Final volume of water vapour -[cubic metre] \n",
+ "W = -P_atm*(V2 -V1)* 1000 ;\t\t\t# Work done by saturated liquid water -[J]\n",
+ " \n",
+ "# Results \n",
+ "print ' Work done by saturated liquid water is %.3e J.'%W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Work done by saturated liquid water is -1.624e+05 J.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 27.2 page no. 840\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Work in a Batch Process\n",
+ "# Solution E27.2\n",
+ "\n",
+ "# Variables\n",
+ "m_N2 = 1. ;\t\t\t# Moles of N2 taken -[kg mol]\n",
+ "p = 1000.;\t\t\t# Pressure of cylinder-[kPa]\n",
+ "T = 20. + 273. ;\t\t\t# Temperature of cylinder -[K]\n",
+ "a_pis = 6. ;\t\t\t# Area of piston - [square centimetre]\n",
+ "m_pis = 2. ;\t\t\t# Mass of pston - [kg]\n",
+ "R = 8.31 ;\t\t\t# Ideal gas constant - [(kPa*cubic metre)/(K * kgmol)]\n",
+ "\n",
+ "# Calculations\n",
+ "V = (R*T)/p ;\t\t\t# Specific volue of gas at initial stage -[cubic metre/kg mol]\n",
+ "V1 = V * m_N2 ;\t\t\t# Initial volume of gas - [cubic metre]\n",
+ "V2 = 2.*V1 ;\t\t\t# Final volume of gas according to given condition -[cubic metre]\n",
+ "\n",
+ "# Assumed surrounding pressure constant = 1 atm\n",
+ "p_atm = 101.3 ;\t\t\t# Atmospheric pressure-[kPa]\n",
+ "del_Vsys = V2 -V1 ;\t\t\t# Change in volume of system -[cubic metre]\n",
+ "del_Vsurr = - del_Vsys ;\t\t\t# Change in volume of surrounding -[cubic metre]\n",
+ "W_surr = -p_atm*del_Vsurr ;\t\t\t# Work done by surrounding - [kJ]\n",
+ "W_sys = -W_surr ;\t\t\t# Work done by system - [kJ]\n",
+ "\n",
+ "# Results\n",
+ "print ' Work done by gas(actually gas + piston system) is %.0f kJ.'%W_sys\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Work done by gas(actually gas + piston system) is -247 kJ.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 27.3 page no. 845\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Efficiency of Power Generation by a Hydroelectric Plant\n",
+ "# Solution \n",
+ "\n",
+ "# Variables\n",
+ "p_plant = 20. ;\t\t\t# Power generated by plant-[MW]\n",
+ "h = 25. ;\t\t\t# Height of water level - [m]\n",
+ "V = 100. ;\t\t\t# Flow rate of water -[cubic metre/s]\n",
+ "d_water = 1000. ;\t\t\t# Density of water - [ 1000 kg / cubic metre]\n",
+ "g = 9.807 ;\t\t\t# Acceleration due to gravity-[m/square second]\n",
+ "\n",
+ "# Calculations\n",
+ "M_flow = V*d_water ;\t\t\t# Mass flow rate of water -[kg/s]\n",
+ "del_PE = M_flow*g*h ;\t\t\t# Potential energy change of water per second -[W]\n",
+ "eff = (p_plant*10**6) /(del_PE) ;\t\t\t# Efficiency of plant \n",
+ "\n",
+ "# Results\n",
+ "print ' Efficiency of plant is %.2f .'%eff\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Efficiency of plant is 0.82 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 27.4 page no. 845\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Plant Efficiency\n",
+ "# Solution Fig.E27.4\n",
+ "\n",
+ "# Variables\n",
+ "LHV = 36654. ;\t\t\t# LHV value of fuel - [kJ/ cubic metre]\n",
+ "Q1 = 16. ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q2 = 0 ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q3 = 2432. ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q4 = 32114. ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q41 = 6988. ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q8 = 1948. ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q9 = 2643. ;\t\t\t#- [kJ/ cubic metre]\n",
+ "Q81 = 2352. - Q8 ;\t\t\t# - [kJ/ cubic metre]\n",
+ "Q567 = 9092. ;\t\t\t# Sum of Q5, Q6 and Q7- [kJ/ cubic metre]\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#(a)\n",
+ "G_ef = (LHV+ Q1 +Q2 + Q3 - Q9)/(LHV) ;\t\t\t# Gross efficiency\n",
+ "print '(a) Gross efficiency is %.3f .'%G_ef\n",
+ "\n",
+ "#(b)\n",
+ "T_ef = (Q567+Q8)/(LHV+ Q1 +Q2 + Q3) ;\t\t\t#Thermal efficiency \n",
+ "print ' (b) Thermal efficiency is %.3f .'%T_ef\n",
+ "\n",
+ "#(c)\n",
+ "C_ef = Q4/(Q4 + Q41) ;\t\t\t# Combustion efficiency\n",
+ "print ' (c) Combustion efficiency is %.3f .'%C_ef\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Gross efficiency is 0.995 .\n",
+ " (b) Thermal efficiency is 0.282 .\n",
+ " (c) Combustion efficiency is 0.821 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 27.5 page no. 850"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [
+ "# Comparison of the reversible work for a batch process with that of a flow process operating under the same conditions.\n",
+ "\n",
+ "from scipy.integrate import quad\n",
+ "\n",
+ "# Variables\n",
+ "V1 = 5. ;\t\t\t# Volume of gas initially - [cubic feet]\n",
+ "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n",
+ "P2 = 10. ;\t\t\t# Final pressure - [atm]\n",
+ "T1 = 100. + 460 ;\t\t\t# initial temperature - [degree Rankine]\n",
+ "R = 0.7302 ;\t\t\t# Ideal gas constant -[(cubic feet*atm)/(lb mol)*(R)]\n",
+ "\t\t\t#Equation of state pV**1.4 = constant\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "V2 = V1*(P1/P2)**(1/1.4) ;\t\t\t# Final volume - [cubic feet] \n",
+ "\n",
+ "def f(V):\n",
+ " return -(P1)*(V1/V)**(1.4)\n",
+ " \n",
+ "W1_rev = quad(f,V1,V2)[0] ;\t\t\t# Reversible work done in compresion in a horizontal cylinder with piston -[cubic feet *atm]\n",
+ "W1 = W1_rev *1.987/.7302 ;\t\t\t# Conversion to Btu -[Btu]\n",
+ "print '(a)Reversible work done in compression in a horizontal cylinder with piston is %.1f Btu . '%W1\n",
+ "\n",
+ "#(b)\n",
+ "n1 = (P1*V1)/(R*T1) ;\t\t\t# Number of moles of gas\n",
+ "\n",
+ "def f1(P):\n",
+ " return (V1)*(P1/P)**(1/1.4)\n",
+ "W2_rev = quad(f1,P1,P2)[0]\t\t# Reversible work done in compresion in a rotary compressor -[cubic feet *atm]\n",
+ "W2 = W2_rev *1.987/.7302 ;\t\t\t# Conversion to Btu -[Btu]\n",
+ "\n",
+ "print '(b)Reversible work done in a rotary compressor is %.1f Btu . '%W2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Reversible work done in compression in a horizontal cylinder with piston is 31.7 Btu . \n",
+ "(b)Reversible work done in a rotary compressor is 44.3 Btu . \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 27.6 page no. 853"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of the mechanical energy balance to the pumping water\n",
+ "\n",
+ "from scipy.integrate import quad\n",
+ "# Variables\n",
+ "m_water = 1. ;\t\t\t# Mass flow rate of water -[lb/min]\n",
+ "P1 = 100. ;\t\t\t# Initial pressure - [psia]\n",
+ "P2 = 1000. ;\t\t\t# Final pressure - [psia]\n",
+ "T1 = 80. + 460 ;\t\t\t# initial temperature - [degree Rankine]\n",
+ "T2 = 100. + 460 ;\t\t\t# final temperature - [degree Rankine]\n",
+ "h = 10. ;\t\t\t# Difference in water level between entry and exit of stream-[ft]\n",
+ "g = 32.2 ;\t\t\t# Accleration due to gravity - [ft/ square second]\n",
+ "gc = 32.2 ;\t\t\t#[(ft*lbm)/(lbf*square second)]\n",
+ "\n",
+ "v1 = .01607 ;\t\t\t# specific volume of liquid water at 80 degree F -[cubic feet/lbm]\n",
+ "v2 = .01613 ;\t\t\t# specific volume of liquid water at 100 degree F -[cubic feet/lbm] \n",
+ "v= 0.0161 ;\t\t\t# -[cubic feet/lbm]\n",
+ "\n",
+ "# Calculations\n",
+ "del_PE = (h*g)/(gc*778) ;\t\t\t# Change in potential energy - [Btu/lbm]\n",
+ "\n",
+ "def f(P):\n",
+ " return (v)*(12**2/778.)\n",
+ " \n",
+ "PV_work = quad(f,P1,P2)[0]\t\t\t# PV work done -[Btu/lbm]\n",
+ "#From eqn. (A)\n",
+ "W = PV_work + del_PE ;\t\t\t# Work per minute required to pump 1 lb water per minute - [Btu/lbm]\n",
+ "\n",
+ "# Results\n",
+ "print ' Work per minute required to pump 1 lb water per minute is %.2f Btu/lbm . '%W\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Work per minute required to pump 1 lb water per minute is 2.69 Btu/lbm . \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb
new file mode 100644
index 00000000..6a34dc72
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb
@@ -0,0 +1,223 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 28 : Heats of Solution and Mixing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 28.1 page no. 869\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of Heats of Solution data\n",
+ "\n",
+ "# Solution \n",
+ "# Variables\n",
+ "Ref_T = 77. ;\t\t\t#Reference temperature-[degree F]\n",
+ "\n",
+ "#(a)\n",
+ "mol_NH3 = 1. ;\t\t\t# Moles of NH3 - [lb mol]\n",
+ "mw_NH3 = 17. ;\t\t\t#Molecular t. of NH3 -[lb]\n",
+ "mw_H2O = 18. ;\t\t\t#Molecular t. of H2O -[lb]\n",
+ "\n",
+ "# Calculations and Results\n",
+ "f1_NH3 = 3./100 ;\t\t\t# Fraction of NH3 in solution \n",
+ "m_H2O = (mw_NH3/f1_NH3) - mw_NH3 ;\t\t\t# Mass of water in solution -[lb]\n",
+ "mol_H2O = m_H2O/mw_H2O ;\t\t\t# Moles of H2O in solution -[lb mol]\n",
+ "\n",
+ "print '(a) Moles of H2O in solution is %.1f lb mol . '%mol_H2O\n",
+ "print ' As we can see that moles of water is 30 lb mol(approx), hence we will see H_soln from table corresponding to 30 lb mol water . '\n",
+ "H_soln = -14800. ;\t\t\t# From table given in question in book -[Btu/lb mol NH3]\n",
+ "print ' The amount of cooling needed is, %.0f Btu heat removed. '%(abs(H_soln))\n",
+ "\n",
+ "#(b)\n",
+ "V = 100. ;\t\t\t# Volume of solution produced -[gal]\n",
+ "f2_NH3 = 32./100 ;\t\t\t# Fraction of NH3 in solution \n",
+ "sg_NH3 = .889 ;\t\t\t# Specific gravity of NH3 \n",
+ "sg_H2O = 1.003 ;\t\t\t# Specific gravity of H2O\n",
+ "d_soln = sg_NH3*62.4*sg_H2O*100/7.48 ;\t\t\t# Density of solution - [lb / 100 gal]\n",
+ "NH3 = d_soln*f2_NH3/mw_NH3 ;\t\t\t# Mass of NH3 - [ lb mol/ 100 gal]\n",
+ "m1_H2O = (mw_NH3/f2_NH3) - mw_NH3 ;\t\t\t# Mass of water in solution -[lb]\n",
+ "mol1_H2O = m1_H2O/mw_H2O ;\t\t\t# Moles of H2O in solution -[lb mol]\n",
+ "\n",
+ "print ' (b) Moles of H2O in solution is %.1f lb mol . '%mol1_H2O\n",
+ "print ' As we can see that moles of water is 2 lb mol , hence we will see H_soln from table corresponding to 2 lb mol water . '\n",
+ "H_soln = -13700 ;\t\t\t# From table given in question in book -[Btu/lb mol NH3]\n",
+ "total_H = abs(NH3*H_soln) ;\t\t\t# Total heat removed from solution -[Btu]\n",
+ "print ' The amount of cooling needed is, %.0f Btu heat removed. '%total_H\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Moles of H2O in solution is 30.5 lb mol . \n",
+ " As we can see that moles of water is 30 lb mol(approx), hence we will see H_soln from table corresponding to 30 lb mol water . \n",
+ " The amount of cooling needed is, 14800 Btu heat removed. \n",
+ " (b) Moles of H2O in solution is 2.0 lb mol . \n",
+ " As we can see that moles of water is 2 lb mol , hence we will see H_soln from table corresponding to 2 lb mol water . \n",
+ " The amount of cooling needed is, 191826 Btu heat removed. \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 28.2 page no. 872"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of the heat of solution data\n",
+ "\n",
+ "from scipy.integrate import quad\n",
+ "# Variables\n",
+ "p = 100. ;\t\t\t# Mass of product - [kg]\n",
+ "f_HCl = 25./100 ;\t\t\t#Fraction of HCl in product \n",
+ "HCl = f_HCl*p ;\t\t\t# Mass of HCl in product - [kg]\n",
+ "H2O = (1.-f_HCl)*p ;\t\t\t# Mass of H2O in product -[kg]\n",
+ "mw_HCl = 36.37 ;\t\t\t# Molecular weight of HCl -[kg]\n",
+ "mw_H2O = 18.02 ;\t\t\t# Molecular weight of H2O -[kg]\n",
+ "\n",
+ "# Calculations\n",
+ "mol_HCl = HCl /mw_HCl ;\t\t\t# Moles of HCl - [kg mol]\n",
+ "mol_H2O = H2O /mw_H2O; \t\t\t# Moles of H2O - [kg mol]\n",
+ "total_mol = mol_HCl + mol_H2O ;\t\t\t# Total no. of moles -[kg mol]\n",
+ "mf_HCl = mol_HCl / total_mol ;\t\t\t# mole fraction of HCl \n",
+ "mf_H2O = mol_H2O / total_mol ; \t\t\t# mole fraction of H2O\n",
+ "mr = mol_H2O/mol_HCl ;\t\t\t# Mole ratio of H2O to HCl \n",
+ "MW = mf_HCl*mw_HCl + mf_H2O*mw_H2O ;\t\t\t# Molecular t. of solution-[kg]\n",
+ "Ref_T = 25. ;\t\t\t#Reference temperature-[degree C]\n",
+ "\n",
+ "mol1_HCl = total_mol ;\t\t\t# Moles of HCl \t\t\t# Moles of HCl output -[g mol]\n",
+ "Hf1_HCl = -157753. ;\t\t\t# Heat of formation of HCl output-[J/ g mol HCl ]\n",
+ "Hf_HCl = -92311. ;\t\t\t# Heat of formation of HCl input-[J/ g mol HCl ]\n",
+ "Hf_H2O = 0 ;\t\t\t# Heat of formation of H2O input-[J/ g mol HCl ]\n",
+ "H1_HCl = 556. ;\t\t\t# Change in enthalpy during temperature change from 25 C to 35 C of HCl - [J/g mol] \n",
+ "\n",
+ "def f(T):\n",
+ " return (29.13 - 0.134*.01*T)\n",
+ "\n",
+ "H_HCl = quad(f,298,393)[0]\t# Change in enthalpy during temperature change from 25 C to 120 C of HCl - [J/g mol] \n",
+ "\n",
+ "H_H2O = 0 ;\t\t\t# Change in enthalpy during temperature change from 25 C to 25 C of H2O - [J/g mol] \n",
+ "\n",
+ "H_in = (Hf_HCl + H_HCl)*mol_HCl + (Hf_H2O + H_H2O)*mol_H2O ;\t\t\t# Enthalpy change of input -[J]\n",
+ "H_out = Hf1_HCl*mol_HCl +H1_HCl*mol1_HCl ;\t\t\t# Enthalpy change of output -[J]\n",
+ "\n",
+ "del_H = H_out - H_in ;\t\t\t# Net enthalpy change n process - [J]\n",
+ "Q = del_H; \t\t\t# By energy balance - [J]\n",
+ "\n",
+ "# Results\n",
+ "print 'The amount of heat removed from the absorber by cooling water is, %.0f J. '%Q\n",
+ "print 'It Seems answer is wrong in book'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of heat removed from the absorber by cooling water is, -44159 J. \n",
+ "It Seems answer is wrong in book\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 28.3 page no. 875\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of an Enthalpy Concentration Chart\n",
+ "\n",
+ "# Solution fig. 28.3\n",
+ "\n",
+ "# Variables\n",
+ "soln1 = 600. ; \t\t\t# Mass flow rate of entering solution 1 -[lb/hr]\n",
+ "c1_NaOH = 10./100 ;\t\t\t# Fraction of NaOH in entering solution 1\n",
+ "T1 = 200. ;\t\t\t# Temperature at entry \n",
+ "soln2 = 400. ;\t\t\t# Mass flow rate of another solution 2 entering -[lb/hr]\n",
+ "c2_NaOH = 50./100 ;\t\t\t# Fraction of NaOH in another entering solution 2\n",
+ "\n",
+ "# Calculations\n",
+ "F = soln1 + soln2; \t\t\t# Mass flow rate of final solution - [lb/hr]\n",
+ "F_NaOH = c1_NaOH * soln1 + c2_NaOH * soln2 ;\t\t\t# Mass of NaOH in final solution-[lb]\n",
+ "F_H2O = F - F_NaOH ;\t\t\t# Mass of H2O in final solution-[lb]\n",
+ "H_soln1 = 152. ;\t\t\t# Specific enthalpy change for solution 1-[Btu/lb]\n",
+ "H_soln2 = 290. ;\t\t\t# Specific enthalpy change for solution 2-[Btu/lb]\n",
+ "H_F = (soln1*H_soln1 + soln2*H_soln2)/F ;\t\t\t# Specific enthalpy change for final solution -[Btu/lb]\n",
+ "\n",
+ "# Results\n",
+ "print ' (a) The final temperature of the exit solution from figure E28.3 using the obtained condition of final solution is 232 degree F '\n",
+ "\n",
+ "cF = F_NaOH*100/F; \t\t\t# Concentration of final solution -[wt % NaOH ]\n",
+ "print ' (b) The concentration of final solution is %.0f wt.%% NaOH . '%cF\n",
+ "\n",
+ "x = (F*H_F - F*175)/(1158.0 - 175) ;\t\t\t# H2O evaporated per hour -[lb]\n",
+ "print ' (c) H2O evaporated per hour is %.1f lb . '%x\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a) The final temperature of the exit solution from figure E28.3 using the obtained condition of final solution is 232 degree F \n",
+ " (b) The concentration of final solution is 26 wt.% NaOH . \n",
+ " (c) H2O evaporated per hour is 32.8 lb . \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb
new file mode 100644
index 00000000..db601ca5
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb
@@ -0,0 +1,290 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 29 : Humidity Charts and their Uses"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 29.1 page no. 895\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# determining properties of moist air from the humidity chart\n",
+ "\n",
+ "# Variables\n",
+ "DBT = 90. ;\t\t\t# Dry bulb temperature - [degree F]\n",
+ "WBT = 70. ;\t\t\t# Wet bulb temperature - [degree F]\n",
+ "\n",
+ "#Get point A using DBT & WBT. Following information is obtained from humidity chart, fig. E29.1\n",
+ "# Results\n",
+ "print '(a) The Dew point is located at point B or about 60 degree F, using constant humidity line.'\n",
+ "print ' (b) By interpolation between 40%% and 30%% RH , you can find point A is at 37%% relative humidity .'\n",
+ "print ' (c) You can read humidity from the righthand ordinate as 0.0112 lb H2O/lb dry air .'\n",
+ "print ' (d) By interpolation again between 14.0 cubic feet/lb and 14.5 cubic feet/lb lines , you can find humid volume to be 14.1 cubic feet/lb dry air.'\n",
+ "print ' (e) The enthalpy value of saturated air with WBT 70 degree F is 34.1 Btu/lb dry air .'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) The Dew point is located at point B or about 60 degree F, using constant humidity line.\n",
+ " (b) By interpolation between 40%% and 30%% RH , you can find point A is at 37%% relative humidity .\n",
+ " (c) You can read humidity from the righthand ordinate as 0.0112 lb H2O/lb dry air .\n",
+ " (d) By interpolation again between 14.0 cubic feet/lb and 14.5 cubic feet/lb lines , you can find humid volume to be 14.1 cubic feet/lb dry air.\n",
+ " (e) The enthalpy value of saturated air with WBT 70 degree F is 34.1 Btu/lb dry air .\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 29.2 page no. 897\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Heating at constant Humidity\n",
+ "\n",
+ "# Solution fig. E29.2\n",
+ "\n",
+ "# Variables\n",
+ "DBT1 = 38 ;\t\t\t# Initial dry bulb temperature - [degree C]\n",
+ "DBT2 = 86 ;\t\t\t# Final dry bulb temperature - [degree C]\n",
+ "RH1 = 49 ;\t\t\t# Relative humidity - [%]\n",
+ "\n",
+ "#A is initial and B is final point , see fig. E29.2 . Dew point is obtained graphically and it is 24.8 degree C,therefore\n",
+ "print 'The Dew point is unchanged in the process because humidity is unchanged, and it is located at 24.8 degree C.'\n",
+ "\n",
+ "# Calculations\n",
+ "# Additional data is obtained from humidity chart , according to book data is as follows\n",
+ "A_Hsat = 90.0 ;\t\t\t# Enthalpy of saturation at point A- [kJ/kg]\n",
+ "A_dH = -0.5 ;\t\t\t#Enthalpy deviation-[kJ/kg]\n",
+ "A_Hact = A_Hsat + A_dH ;\t\t\t# Actual enthalpy at point A -[kJ/kg]\n",
+ "B_Hsat = 143.3 ;\t\t\t# Enthalpy of saturation at point B- [kJ/kg]\n",
+ "B_dH = -3.3 ;\t\t\t#Enthalpy deviation -[kJ/kg]\n",
+ "B_Hact = B_Hsat + B_dH ;\t\t\t# Actual enthalpy at point B -[kJ/kg]\n",
+ "\n",
+ "\t\t\t# Energy balance reduces to Q = del_H \n",
+ "del_H = B_Hact - A_Hact ;\t\t\t# Total change in enthalpy - [kJ/kg]\n",
+ "v = 0.91 ;\t\t\t# Specific volume of moist air at point A -[cubic metre / kg]\n",
+ "Q = del_H/v ;\t\t\t# Heat added per cubic metre of inital moist air -[kJ]\n",
+ "\n",
+ "# Results\n",
+ "print ' Heat added per cubic metre of inital moist air is %.1f kJ.'%Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Dew point is unchanged in the process because humidity is unchanged, and it is located at 24.8 degree C.\n",
+ " Heat added per cubic metre of inital moist air is 55.5 kJ.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 29.3 page no. 898\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Cooling and Humidification using a Water Spray\n",
+ "\n",
+ "# Solution fig. E29.3b\n",
+ "\n",
+ "# Variables\n",
+ "DBT1 = 40 ;\t\t\t# Initial dry bulb temperature - [degree C]\n",
+ "DBT2 = 27 ;\t\t\t# Final dry bulb temperature - [degree C]\n",
+ "\n",
+ "# Process is assumed to be adiabatic, therefore wet bulb temperature is constant\n",
+ "WBT1 = 22 ;\t\t\t# Initial wet bulb temperature - [degree C]\n",
+ "WBT2 = WBT1 ;\t\t\t# Final wet bulb temperature - [degree C]\n",
+ "\n",
+ "# Calculations\n",
+ "#A is initial and B is final point , see fig. E29.3b . Humidity is obtained from humidity chart, according to book the respective humidities are as follows\n",
+ "H_B = 0.0145 ;\t\t\t# Humidity at point B -[kg H2O/kg dry air]\n",
+ "H_A = 0.0093 ;\t\t\t# Humidity at point A -[kg H2O/kg dry air]\n",
+ "Diff = H_B - H_A ;\t\t\t# Moisture added in kg per kilogram of dry air going through humidifier -[kg H2O/kg dry air] \n",
+ "\n",
+ "# Results\n",
+ "print 'Moisture added per kilogram of dry air going through humidifier is %.4f kg H2O.'%Diff\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moisture added per kilogram of dry air going through humidifier is 0.0052 kg H2O.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 29.4 page no. 900\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Combined Material and Energy Balance for a Cooling Tower\n",
+ "\n",
+ "# Solution fig. E29.4\n",
+ "\n",
+ "# Variables\n",
+ "c_bl = 8.30 * 10**6 ;\t\t\t# Capacity of blower - [cubic feet/hr]\n",
+ "DBT_A = 80 ;\t\t\t# Initial dry bulb temperature of moist air - [degree F]\n",
+ "DBT_B = 95 ;\t\t\t# Final dry bulb temperature of exit air - [degree F]\n",
+ "WBT_A = 65 ;\t\t\t# Initial wet bulb temperature of moist air - [degree F]\n",
+ "WBT_B = 90 ;\t\t\t# Final wet bulb temperature of exit air - [degree F]\n",
+ "T1_H2O = 120 ;\t\t\t# Initial temperature of water - [degree F]\n",
+ "T2_H2O = 90 ;\t\t\t# Final temperature of water - [degree F]\n",
+ "\n",
+ "#A is initial and B is final point , see fig. E29.4 . Humidity is obtained from humidity chart, according to book the respective humidities are as follows\n",
+ "H_A = 0.0098; \t\t\t# Humidity of air at A - [lb H2O / lb dry air]\n",
+ "H1_A = 69 ;\t\t\t# Humidity of air at A - [grains H2O / lb dry air]\n",
+ "\n",
+ "# Calculations\n",
+ "delH_A = 30.05 - 0.12; \t\t\t# Enthalpy of entering air -[Btu/lb dry air]\n",
+ "v_A = 13.82 ;\t\t\t# Specific volume of entering air -[cubic feet/lb dry air]\n",
+ "H_B = 0.0297;\t\t\t# Humidity of air at B - [lb H2O / lb dry air]\n",
+ "H1_B = 208 ;\t\t\t# Humidity of air at B - [grains H2O / lb dry air]\n",
+ "delH_B = 55.93 - 0.10 ;\t\t\t# Enthalpy of exit air -[Btu/lb dry air]\n",
+ "v_B = 14.65 ;\t\t\t# Specific volume of exit air -[cubic feet/lb dry air]\n",
+ "Eq_A = c_bl /v_A ;\t\t\t# Entering dry air equivalent of capacity of blower -[lb dry air]\n",
+ "\n",
+ "# Reference temperature for water stream is 32 degree F \n",
+ "del_H1_H2O = 1*(T1_H2O - 32) ;\t\t\t#Enthalpy of entering water -[Btu/lb H2O]\n",
+ "del_H2_H2O = 1*(T2_H2O - 32) ;\t\t\t#Enthalpy of exit water -[Btu/lb H2O]\n",
+ "tr_H2O = H_B - H_A ;\t\t\t# Transfer of water to air -[lb H2O / lb dry air] \n",
+ "\n",
+ "# Energy balance around the entire process yields W -\n",
+ "W = (delH_B - del_H2_H2O*tr_H2O - delH_A)/(del_H1_H2O - del_H2_H2O) ;\t\t\t# Water entering tower - [lb H2O/lb dry air]\n",
+ "W1 = W - tr_H2O ;\t\t\t# Water leaving tower -[lb H2O/lb dry air]\n",
+ "Total_W1 = W1* Eq_A ;\t\t\t# Total water leaving tower -[lb/hr]\n",
+ "\n",
+ "# Results\n",
+ "print 'Amount of water cooled per hour is %.2e lb/hr .'%Total_W1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of water cooled per hour is 4.83e+05 lb/hr .\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 29.5 page no. 902\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Drying of Chlorella\n",
+ "\n",
+ "# Solution fig. E29.5\n",
+ "\n",
+ "# Variables\n",
+ "W = 100 ;\t\t\t# Amount of entering water -[lb/hr]\n",
+ "H1 = .020 ;\t\t\t# Humidity of entering air -[lb H2O / lb dry air]\n",
+ "T1 = 155 ;\t\t\t#Temperature of entering air -[degree F]\n",
+ "DTB = 110 ;\t\t\t# Dry bulb temperature of exit air -[degree F]\n",
+ "WTB = 100 ;\t\t\t# Wet bulb temperature of exit air -[degree F]\n",
+ "\n",
+ "# Additional data is obtained from humidity chart, it is as follows\n",
+ "H2 = .0405 ;\t\t\t#Humidity of exit air -[lb H2O / lb dry air]\n",
+ "\n",
+ "# Calculations\n",
+ "del_H = H2 - H1 ;\t\t\t# Change in humidity betwween two states -[lb H2O / lb dry air]\n",
+ "air_in = (W*1.02)/(del_H * 1) ;\t\t\t# Amount of wet air entering -[lb]\n",
+ "\n",
+ "mol_air = 29. ;\t\t\t# Molecular wt. of air -[lb]\n",
+ "Ref_T = 32 + 460. ;\t\t\t# Reference temperature - [ degree R]\n",
+ "gi_T = 90 + 460.; \t\t\t# Given temperature on which calculation is based - [degree R] \n",
+ "air = (air_in *359*gi_T)/( mol_air*Ref_T) ;\t\t\t# Air consumption of dryer at 90 degree F and 1 atm -[cubic feet]\n",
+ "\n",
+ "# Results\n",
+ "print 'Air consumption of dryer at 90 degree F and 1 atm is %.2e cubic feet .'%air\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air consumption of dryer at 90 degree F and 1 atm is 6.89e+04 cubic feet .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb
new file mode 100644
index 00000000..af8703d1
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb
@@ -0,0 +1,334 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : The balance equation and mass balance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 3.4 page no : 88\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate vol. flow rate, mass flow rate and average vel of gasoline through pipe\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "V=15.; #gal volume of gasoline\n",
+ "t=2.; #min\n",
+ "rho_water=62.3; #lbm/ft^3\n",
+ "sg=0.72; #specific gravity\n",
+ "\n",
+ "# calculation and Result\n",
+ "q=(15/2.0)*(0.1336/60) #ft^3/s vol. flow rate\n",
+ "print \"volumetric flow rate is %f ft^3/s\"%q\n",
+ "m=q*sg*rho_water #lbm/s\n",
+ "print \"Mass flow rate is %f lbm/s\"%m\n",
+ "d=1.; #in diameter of pipe\n",
+ "a=((math.pi)*d**2/4.0)/144.0; #ft^2 area of pipe\n",
+ "v_avg=q/a #ft/s\n",
+ "print \"The average velocity is %f ft/s\"%v_avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volumetric flow rate is 0.016700 ft^3/s\n",
+ "Mass flow rate is 0.749095 lbm/s\n",
+ "The average velocity is 3.061886 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.5 page no : 90\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate velocity and mass flow rate of natural in a pipe\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "d1=2.; #ft diameter of pipe at position 1\n",
+ "a1=(math.pi)/4*d1**2; #ft^2\n",
+ "v1=50.; #ft/s vel of gas at position 1\n",
+ "rho1=2.58; #lbm/ft^3 density of gas at position 1\n",
+ "d2=3.; #ft diameter of pipe at position 2\n",
+ "\n",
+ "# calculation\n",
+ "a2=(math.pi)/4*d2**2;\n",
+ "rho2=1.54; #lbm/ft^3 density at position 2\n",
+ "v2=(rho1/rho2)*(a1/a2)*v1 #ft/s\n",
+ "\n",
+ "# result\n",
+ "print \"Velocity is %f ft/s\"%v2\n",
+ "m=rho1*v1*a1 #lbm/s mass flow rate\n",
+ "print \"The mass flow rate is %f lbm/s\"%m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity is 37.229437 ft/s\n",
+ "The mass flow rate is 405.265452 lbm/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.6 page no : 91\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mass flow rate, volumetric flow rate and velocity of waterin a pipe\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "d1=0.25; #m diameter of pipe at position 1\n",
+ "v1=2.; #m/s velocity\n",
+ "rho=998.2; #kg/m^3 density of water\n",
+ "a1=(math.pi)/4*d1**2; #m^2\n",
+ "d2=0.125 #m diameter of pipe at position 2\n",
+ "\n",
+ "# calculation\n",
+ "a2=(math.pi)/4*d2**2; #m^2\n",
+ "m=rho*a1*v1 #kg/s mass flow rate\n",
+ "\n",
+ "# result\n",
+ "print \"Mass flow rate is %f kg/s\"%m\n",
+ "q=m/rho #m^3/s volumetric flow rate\n",
+ "print \"The volumetric flow rate is %f m^3/s\"%q\n",
+ "v2=(a1/a2)*v1 #m/s velocity\n",
+ "print \"Velocity of water is %f m/s\"%v2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate is 97.998056 kg/s\n",
+ "The volumetric flow rate is 0.098175 m^3/s\n",
+ "Velocity of water is 8.000000 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.7 page no : 92\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calulate the time required\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "p_initial=1.; #atm pressure initially\n",
+ "p_final=0.0001; #atm pressure finally\n",
+ "V=10.; #ft^3 volume of system\n",
+ "q=1.; #ft^3/min vol. flow rate\n",
+ "\n",
+ "# calculation\n",
+ "t=(V/q)*math.log(p_initial/p_final) #min\n",
+ "\n",
+ "# result\n",
+ "print \"The time required is %f min\"%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The time required is 92.103404 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.8 page no : 93\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final or steady state pressure in tank\n",
+ "\n",
+ "# variables\n",
+ "m_in=0.0001; #lbm/min\n",
+ "q_out=1.; #ft^3/min\n",
+ "rho_sys=m_in/q_out #lbm/ft^3\n",
+ "rho_air=0.075; #lbm/ft^3\n",
+ "p_initial=1.; #atm\n",
+ "\n",
+ "# calculation\n",
+ "p_steady=p_initial*(rho_sys/rho_air) #atm\n",
+ "\n",
+ "# result\n",
+ "print \"The steady state pressure is %f atm\"%p_steady"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The steady state pressure is 0.001333 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.9 page no : 94\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate how fast the level of water is rising or falling in a cylindrical tank\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "d=3.; #m diameter of tank\n",
+ "a=(math.pi)*d**2/4; #m^2\n",
+ "d_in=0.1; #m inner diameter of inflow pipe\n",
+ "d_out=0.2; #m\n",
+ "v_in=2.0; #m/s\n",
+ "v_out=1.0; #m/s\n",
+ "\n",
+ "# calculation\n",
+ "q_in=((math.pi)*d_in**2/4.0)*v_in; #m^3/s\n",
+ "q_out=((math.pi)*d_out**2/4.0)*v_out; #m^3/s\n",
+ "\n",
+ "#let D represent d/dt\n",
+ "DV=q_in-q_out; #m^3/s\n",
+ "\n",
+ "# result\n",
+ "if DV>1:\n",
+ " print \"The water level in tank is rising\"\n",
+ "elif DV<1:\n",
+ " print \"The water level in tank is falling\"\n",
+ "else:\n",
+ " print \"No accumulation\"\n",
+ "#let h be the height of water in tank\n",
+ "Dh=DV/a #m/s \n",
+ "print \"The rate of level of water is rising or falling in a cylindrical tank is %f m/s\"%Dh"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The water level in tank is falling\n",
+ "The rate of level of water is rising or falling in a cylindrical tank is -0.002222 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.11 page no : 97\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate flow rate of ventilation air supply\n",
+ "\n",
+ "# variables\n",
+ "q=5/8.0; #kg/hr mass evaporation rate of benzene\n",
+ "c=1.3*10**(-6); #kg/m^3 concentration of benzene\n",
+ "\n",
+ "# calculation\n",
+ "Q=q/c/3600.0 #m^3/s\n",
+ "\n",
+ "# result\n",
+ "print \"The flow rate of ventilation air supply is %f m^3/s\"%Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The flow rate of ventilation air supply is 133.547009 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb
new file mode 100644
index 00000000..392607c8
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb
@@ -0,0 +1,117 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Temperature"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 4.1 Page no. 92\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Temperature Conversion\n",
+ "# Solution\n",
+ "\n",
+ "# Variable\n",
+ "#(a)\n",
+ "Temp_c=100. ; #[degree Celsius]\n",
+ "\n",
+ "# Calculation and Result\n",
+ "Temp_k=Temp_c+273 ; #[K]\n",
+ "print '(a) Temperature in kelvin is %.2f K'%Temp_k\n",
+ "\n",
+ "#(b)\n",
+ "Temp_f=(100*(1.8/1)) +32 ; #[degree Fahrenheit]\n",
+ "print ' (b) Temperature in degree Fahrenheit is %.2f '%Temp_f\n",
+ "\n",
+ "#(c)\n",
+ "Temp_r= Temp_f + 460 ; #[degree Rankine ]\n",
+ "print ' (c) Temperature in degree Rankine is %.2f '%Temp_r"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Temperature in kelvin is 373.00 K\n",
+ " (b) Temperature in degree Fahrenheit is 212.00 \n",
+ " (c) Temperature in degree Rankine is 672.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page no. 93\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Temperature Conversion\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "c = 139.1 + (1.56*10**-1)*(-460-32)/1.8 ;\n",
+ "d = (1.56*10**-1)/1.8;\n",
+ "\n",
+ "# Calculation\n",
+ "#Now convert c +dTR to (Btu/lb mol*degree R) to get answer of form a + bTR,where\n",
+ "a = c*(454/(1055*1.8)) ;\n",
+ "b = d*(454/(1055*1.8)) ;\n",
+ "\n",
+ "# Result\n",
+ "print 'The required answer is %.2f + (%.2e)T Btu/(lb mol*degree R) , where T is in degree R . '%(a,b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required answer is 23.06 + (2.07e-02)T Btu/(lb mol*degree R) , where T is in degree R . "
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb
new file mode 100644
index 00000000..5023ef53
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb
@@ -0,0 +1,239 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Pressure"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page no.109\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Pressure Conversion\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "P = 60 ; #[Gpa]\n",
+ "\n",
+ "# Calculation and Results\n",
+ "#(a)\n",
+ "p_atm = (P*(10**6))/101.3 ; #[atm]\n",
+ "print '(a) Pressure in atmospheres is %.2e atm'%p_atm\n",
+ "\n",
+ "#(b)\n",
+ "p_s = (P*(10**6)*14.696)/101.3 ; #[psia]\n",
+ "print ' (b) Pressure in psia is %.2e psia'%p_s\n",
+ "\n",
+ "# (c)\n",
+ "p_in = (P*(10**6)*29.92)/101.3 ; #[inches of Hg]\n",
+ "print ' (c) Pressure in inches of Hg is %.2e in. Hg'%p_in\n",
+ "\n",
+ "# (d)\n",
+ "p_mm = (P*(10**6)*760)/101.3 ; #[mm of Hg]\n",
+ "print ' (d) Pressure in mm of Hg is %.2e mm Hg'%p_mm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Pressure in atmospheres is 5.92e+05 atm\n",
+ " (b) Pressure in psia is 8.70e+06 psia\n",
+ " (c) Pressure in inches of Hg is 1.77e+07 in. Hg\n",
+ " (d) Pressure in mm of Hg is 4.50e+08 mm Hg"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 5.2 Page no. 110\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Pressure Conversion\n",
+ "# Solution\n",
+ "\n",
+ "# Variable\n",
+ "b_rd = 28.0 ; #[in. Hg]\n",
+ "p_rd = 51.0 ; #[psia]\n",
+ "\n",
+ "# calculation\n",
+ "p_atm = b_rd*14.7/29.92 ; # [psia]\n",
+ "p_tnk = p_atm+p_rd ; #[psia]\n",
+ "\n",
+ "# Result\n",
+ "print ' Pressure in tank in psia is %.1f psia'%p_tnk"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure in tank in psia is 64.8 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 5.3 Page no. 111\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Vacuum Pressure Reading\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "b_rd = 100.0 ; #[kPa]\n",
+ "gp = 64.5*101.3/76.0 ; #[kPa]\n",
+ "\n",
+ "# Calculations\n",
+ "p_tnk = b_rd-gp ; #[kPa]\n",
+ "\n",
+ "# Results\n",
+ "print ' Absolute Pressure in tank in is %.1f kPa'%p_tnk\n",
+ "print ' Since absolute pressure in tank(%.1f kPa) is less than 20 kPa , the \\\n",
+ " mice probably will not survive. '%p_tnk"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Absolute Pressure in tank in is 14.0 kPa\n",
+ " Since absolute pressure in tank(14.0 kPa) is less than 20 kPa , the mice probably will not survive. \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 5.4 Page no. 115\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Pressure Difference\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "df = 1.10*10**3 ; #[kg/m**3]\n",
+ "d = 1.0*10**3 ; #[kg/m**3]\n",
+ "g = 9.8 ; #[m/s**2]\n",
+ "h = 22.0 ; #[mm]\n",
+ "\n",
+ "# Calculation\n",
+ "dP = (df-d)*g*(h*10**(-3)) ; #[Pa]\n",
+ "\n",
+ "# Result\n",
+ "print 'Pressure difference across the orifice plate is %.1f Pa.'%dP"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure difference across the orifice plate is 21.6 Pa.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 5.5 Page no. 117\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Pressure Conversion\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "p_atm=730.0*29.92/760.0 ; #[in. Hg]\n",
+ "gp= (4.0*29.92)/(2.54*12*33.91) ; #[in. Hg]\n",
+ "\n",
+ "# Calculation\n",
+ "p_air=p_atm-gp ; #[in. Hg]\n",
+ "\n",
+ "# Result\n",
+ "print ' Pressure of the air is %.1f in. Hg.'%p_air"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure of the air is 28.6 in. Hg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb
new file mode 100644
index 00000000..5ffa4f19
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb
@@ -0,0 +1,170 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Introduction to Material Balances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page no. 142\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# A Material Balance for the blending of Gasoline\n",
+ "# Solution\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "P_O = 89 ; # Premium octane -[octane/gal]\n",
+ "S_O = 93 ; # Supereme octane - [octane/gal]\n",
+ "R_O = 87 ; # Regular octane - [octane/gal]\n",
+ "CP = 1.269 ; # Cost of premium octane -[$/gal]\n",
+ "SP = 1.349 ; # Cost of supereme octane -[$/gal]\n",
+ "RP = 1.149 ; # Cost of regular octane -[$/gal]\n",
+ "\n",
+ "# Let x and y fraction of regular octane and supreme octane is blended respectively,therefore: x + y = 1 ...(a)\n",
+ "# and 89 = 87x + 93y ...(b)\n",
+ "# Solve equations (a) and (b) simultaneously\n",
+ "# Calculation\n",
+ "a = matrix([[1,1],[87,93]]) ; # Matrix of coefficients of unknown\n",
+ "b = matrix([[1.0],[89.0]]) ; # Matrix of constant\n",
+ "a = a.I\n",
+ "c = a * b\n",
+ "cost = c[0]*RP + c[1]*SP ; # Cost after blending - [$/gal]\n",
+ "sv = CP - cost ; # Save on blending - [$/gal]\n",
+ "\n",
+ "# Result\n",
+ "# Check whether there is loss or save\n",
+ "if (sv<0):\n",
+ " print 'We will not save money by blending.'\n",
+ "else:\n",
+ " print 'We will save money by blending, and save is %.3f $/gal.'%sv"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "We will save money by blending, and save is 0.053 $/gal.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 6.2 Page no. 147\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Concentration of cells using a Centrifuge\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "fd= 1000.0 ; #feed rate-[L/hr]\n",
+ "cfd= 500.0; #Weight of cells per litre- [mg/L]\n",
+ "dn= 1.0 ; #Density of feed-[g/cm**3]\n",
+ "wp= 50.0 ; # Weight percent of cells in product stream\n",
+ "\n",
+ "# Calculation and Result\n",
+ "Pg=(fd*cfd*dn)/(1000*wp*.01) ; # Mass balance for cells \n",
+ "print ' Product flow(P) per hour is %.1f g'%Pg\n",
+ "Dg= (fd*dn*1000) - Pg*(wp*.01) ; # Mass balance for the fluid\n",
+ "print ' Discharge flow per hour is %.3e g'%Dg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Product flow(P) per hour is 1000.0 g\n",
+ " Discharge flow per hour is 9.995e+05 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page no. 154\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Discharge of Tank Residuals to the Environment\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "dn = 0.80 ; #Density of motor oil-[g/cm**3]\n",
+ "\n",
+ "# Calculation and Result\n",
+ "in_ms = (10000*(0.1337)*62.4*dn) ; # Initial mass of motor oil in the tank -[lb]\n",
+ "print ' Initial mass of motor oil in the tank is %.1f lb'%in_ms\n",
+ "\n",
+ "m_fr = .0015 ; #Mass fractional loss\n",
+ "print ' Mass fractional loss is %.4f '%m_fr\n",
+ "\n",
+ "Dsg = m_fr*in_ms ; # Mass balance for the fluid\n",
+ "print ' Discharge of motor oil on flushing flow for 10000 gal motor oil is %.1f lb'%Dsg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Initial mass of motor oil in the tank is 66743.0 lb\n",
+ " Mass fractional loss is 0.0015 \n",
+ " Discharge of motor oil on flushing flow for 10000 gal motor oil is 100.1 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb
new file mode 100644
index 00000000..759dde83
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb
@@ -0,0 +1,152 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : A General Strategy for Solving Material Balance Problems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 7.1 Page no.169\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Understanding the Problem\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "v_ts = 105.0 ; # velocity of train wrt station-[cm/s]\n",
+ "v_mt = 30.0 ; # velocity of man wrt train-[cm/s]\n",
+ "v_hm = 2.0 ; # velocity of hot dough wrt man-[cm/s]\n",
+ "v_am = 1.0 ; # velocity of ant wrt man- [cm/s]\n",
+ "# By careful reading of problem you can see that ant is moving away from man's mouth at 1 cm/s , so ant's velocity wrt station \n",
+ "#is say v_as\n",
+ "\n",
+ "# Calculation\n",
+ "v_as = v_ts + v_mt + v_am;\n",
+ "\n",
+ "# Results\n",
+ "print ' The ant is moving towards station at the rate of %.1f cm/s.'%v_as"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The ant is moving towards station at the rate of 136.0 cm/s.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 7.4 Page no. 180\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Drawing a Sketch of a Mixing Process\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "n_un= 7 ; # Number of unknowns in the given problem- 3 values of xi and 4 values Fi\n",
+ "n_ie = 5 ; # Number of independent equations\n",
+ "\n",
+ "# Calculations\n",
+ "d_o_f = n_un-n_ie ; # No. of degree of freedom\n",
+ "\n",
+ "# Results\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 2 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 7.5 Page no. 182\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Placing the unknown Information on the Diagram\n",
+ "# Solution\n",
+ "\n",
+ "# variables\n",
+ "n_un=8 ; # Number of unknowns in the given problem- 8 values of mole fractions\n",
+ "n_ie =6 ; # Number of independent equations- six elemental balances \n",
+ "\n",
+ "# Calculation\n",
+ "d_o_f= n_un-n_ie ;# Number of degree of freedom\n",
+ "\n",
+ "# Results\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "#Note: Experiments show that the change in CH1.8O.5N.16S.0045P.0055 and the change in C(alpha)H(beta)O(gamma) prove to be \n",
+ "#related by amount of biomass present and the maintenance coefficient(the moles of substrate per mole of biomass per second) \n",
+ "#so the respective quantities cannot be chosen independently.Consequently with this extra constraint,only one degree of freedom \n",
+ "#remains to be specified, the basis"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 2 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb
new file mode 100644
index 00000000..4d600c4f
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb
@@ -0,0 +1,449 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Solving Material Balance Problems for Single Units without Reaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.1 Page no. 197\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Extraction of Streptomycin from a Fermentation Broth\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "# Basis : 1 min\n",
+ "d_w = 1.0 ; # Density of aqueous solution-[g/cubic metre]\n",
+ "d_sol = 0.6 ; # Density of organic solvent-[g/cubic metre]\n",
+ "n_un = 8 ; # Number of unknowns in the given problem\n",
+ "n_ie = 8 ; # Number of independent equations\n",
+ "\n",
+ "# Calculation and Results\n",
+ "d_o_f = n_un-n_ie ; # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "# Material balance of Strep.\n",
+ "x = (200*10+10*0-200*0.2)/10; #[g]\n",
+ "print 'Strep per litre of solvent is %.1f g .'%x\n",
+ "\n",
+ "cnc = x/(1000*d_sol) ; #[g Strep/g of S]\n",
+ "print 'Strep per gram of solvent is %.4f g Strep/g of S .'%cnc\n",
+ "\n",
+ "m_fr = cnc/(1+cnc) ; #Mass fraction\n",
+ "print 'Mass fraction of Strep is %.3f g .'%m_fr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 .\n",
+ "Strep per litre of solvent is 196.0 g .\n",
+ "Strep per gram of solvent is 0.3267 g Strep/g of S .\n",
+ "Mass fraction of Strep is 0.246 g .\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.2 Page no. 199\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Separation of gases Using a Membrane\n",
+ "# Solution Fig. E8.2b\n",
+ "\n",
+ "# Variables\n",
+ "F_O2 = 0.21 ; # fraction of O2 in feed(F) \n",
+ "F_N2 = 0.79 ; # fraction of N2 in feed(F) \n",
+ "P_O2 = 0.25 ; # fraction of O2 in product(P)\n",
+ "P_N2 = 0.75 ; # fraction of N2 in product(P)\n",
+ "F = 100 ; # Feed - [g mol]\n",
+ "w = 0.80 ; # Fraction of waste\n",
+ "W = w*F ; # Waste -[g mol]\n",
+ "\n",
+ "# Calculation\n",
+ "# By analysis for degree of freedom , DOF comes to be zero \n",
+ "P = F - W ; # By overall balance - [g mol]\n",
+ "W_O2 = (F_O2*F - P*P_O2)/100 # Fraction of O2 in waste stream by O2 balance \n",
+ "W_N2 = (W - W_O2*100)/100 ; #Fraction of N2 in waste stream\n",
+ " \n",
+ "# Results \n",
+ "print 'Composition of Waste Stream' \n",
+ "print ' Component Fraction in waste stream' \n",
+ "print ' O2 %.2f'%W_O2 \n",
+ "print ' N2 %.2f'%W_N2 "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Composition of Waste Stream\n",
+ " Component Fraction in waste stream\n",
+ " O2 0.16\n",
+ " N2 0.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.3 Page no. 202\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Overall analysis for a continuous Distillation Column\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "# Basis : 1 hr so F = 1000 kg\n",
+ "F = 1000 ; # feed rate-[kg/hr]\n",
+ "P = F/10.0 ; # product mass flow rate -[kg/hr]\n",
+ "\n",
+ "n_un = 9 ; # Number of unknowns in the given problem\n",
+ "n_ie = 9 ; # Number of independent equations\n",
+ "\n",
+ "# Calculation and Result\n",
+ "d_o_f = n_un-n_ie ; # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "# Overall mass balance: F = P+B\n",
+ "B = F-P ; # bottom mass flow rate -[kg/hr]\n",
+ "print ' Bottom mass flow rate - %.1f kg '%B\n",
+ "\n",
+ "# Composition of bottoms by material balances\n",
+ "m_EtOH = 0.1*F-0.6*P ; # By EtOH balance-[kg]\n",
+ "m_H2O = 0.9*F - 0.4*P ; # By H2O balance-[kg]\n",
+ "total = m_EtOH+m_H2O ; #[kg]\n",
+ "f_EtOH = m_EtOH/total ; # Mass fraction of EtOH\n",
+ "f_H2O = m_H2O/total ; # Mass fraction of H2O\n",
+ "\n",
+ "print ' Mass of EtOH in bottom - %.1f kg '%m_EtOH\n",
+ "print ' Mass of H2O in bottom - %.1f kg '%m_H2O\n",
+ "print ' Mass fraction of EtOH in bottom - %.3f '%f_EtOH\n",
+ "print ' Mass fraction of H2O in bottom - %.3f '%f_H2O"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 .\n",
+ " Bottom mass flow rate - 900.0 kg \n",
+ " Mass of EtOH in bottom - 40.0 kg \n",
+ " Mass of H2O in bottom - 860.0 kg \n",
+ " Mass fraction of EtOH in bottom - 0.044 \n",
+ " Mass fraction of H2O in bottom - 0.956 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.4 Page no. 205\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Mixing of Battery Acid\n",
+ "# Solution Fig E8.4\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "A = 200 ; # Mass of added solution [kg] \n",
+ "P_H2SO4 = .1863 ; #Fraction of H2SO4 in P(Final solution)\n",
+ "P_H2O = .8137 ; #Fraction of H2O in P(Final solution)\n",
+ "A_H2SO4 = .777 ; #Fraction of H2SO4 in A(Added solution)\n",
+ "A_H2O = .223 ; #Fraction of H2O in A(Added solution)\n",
+ "F_H2SO4 = .1243 ; #Fraction of H2SO4 in F(Original solution)\n",
+ "F_H2O = .8757 ; #Fraction of H2O in F(Original solution)\n",
+ "\n",
+ "# Calculations\n",
+ "# P - F = A - By overall balance\n",
+ "a = matrix([[P_H2O,-F_H2O],[1,-1]]) ; # Matrix of coefficient\n",
+ "b = matrix([[A*A_H2O],[A]]) ; # Matrix of contants\n",
+ "a = a.I\n",
+ "x = a*b ; # Matrix of solutions- P = x(1) and F = x(2)\n",
+ "\n",
+ "#Results\n",
+ "print ' Original solution taken- %.0i kg'%x[1]\n",
+ "print ' Final solution or kilograms of battery acid formed- %.0i kg'%x[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Original solution taken- 1905 kg\n",
+ " Final solution or kilograms of battery acid formed- 2105 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.5 Page no. 207\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Drying\n",
+ "# Solution Fig E8.5\n",
+ "from numpy import matrix\n",
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "W = 100.0 ; # Water removed - [kg]\n",
+ "A_H2O = 0.80 ; # Fraction of water in A(intial fish cake)\n",
+ "A_BDC = 0.20 ; # Fraction of BDC(bone dry cake) in B(final dry fish cake)\n",
+ "B_H2O = 0.40 ; # Fraction of water in A(intial fish cake)\n",
+ "B_BDC = 0.60 ; # Fraction of BDC(bone dry cake) in B(final dry fish cake)\n",
+ "\n",
+ "# Calculations\n",
+ "a = matrix([[A_H2O, -B_H2O],[1, -1]]) ; # Matrix of coefficient\n",
+ "b = matrix([[W],[W]]) ; # Matrix of contants\n",
+ "a = a.I\n",
+ "x = a * b; # Matrix of solutions- A = x(1) and B = x(2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Weight of the fish cake originally put into dryer -%.0i kg'%x[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of the fish cake originally put into dryer -150 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.6 Page no. 209\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Crystallizaton\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "# Composition of initial solution at 30 degree C\n",
+ "s_30 = 38.8 ; # solublity of Na2CO3 at 30 degree C, by using the table for solublity of Na2CO3-[g Na2CO3/100 g H2O]\n",
+ "If_Na2CO3 = s_30/(s_30+100) ; # Initial mass fraction of Na2CO3\n",
+ "If_H2O = 1-If_Na2CO3 ; # Initial mass fraction of H2O\n",
+ "\n",
+ "# Composition of crystals\n",
+ "# Basis : 1g mol Na2CO3.10H2O\n",
+ "n_mol_Na2CO3 = 1 ; # Number of moles of Na2CO3\n",
+ "n_mol_H2O = 10. ; # Number of moles of H2O\n",
+ "mwt_Na2CO3 = 106. ; # mol. wt of Na2CO3\n",
+ "mwt_H2O = 18. ; # mol. wt of H2O\n",
+ "\n",
+ "# Calculation and Results\n",
+ "m_Na2CO3 = mwt_Na2CO3*n_mol_Na2CO3 ; # Mass of Na2CO3\n",
+ "m_H2O = mwt_H2O*n_mol_H2O ; # Mass of H2O\n",
+ "Cf_Na2CO3 = m_Na2CO3/(m_Na2CO3+m_H2O) ; # mass fraction of Na2CO3 \n",
+ "Cf_H2O = 1-Cf_Na2CO3 ; # mass fraction of H2O\n",
+ "\n",
+ "n_un = 9. ; # Number of unknowns in the given problem\n",
+ "n_ie = 9. ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie ; # Number of degree of freedom\n",
+ "\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "# Final composition of tank\n",
+ "#Basis :I = 10000 kg\n",
+ "# Material balance reduces to Accumulation = final -initial = in-out(but in = 0)\n",
+ "I = 10000. ; #initial amount of saturated solution-[kg]\n",
+ "amt_C = 3000. ; # Amount of crystals formed-[kg]\n",
+ "Fm_Na2CO3 = I*If_Na2CO3-amt_C*Cf_Na2CO3 ; # Mass balance of Na2CO3\n",
+ "Fm_H2O = I*If_H2O-amt_C*Cf_H2O ; # Mass balance of H2O\n",
+ "\n",
+ "#To find temperature,T\n",
+ "s_T = (Fm_Na2CO3/Fm_H2O)*100 ; # Solublity of Na2CO3 at temperature T\n",
+ "s_20 = 21.5 ; #Solublity of Na2CO3 at temperature 20 degree C ,from given table-[g Na2CO3/100 g H2O]\n",
+ "\n",
+ "# Find T by interpolation\n",
+ "T = 30-((s_30-s_T)/(s_30-s_20))*(30-20) ; # Temperature -[degree C]\n",
+ "print ' Temperature to which solution has to be cooled to get 3000 kg crystals is %.0f degree C .'%T"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 .\n",
+ " Temperature to which solution has to be cooled to get 3000 kg crystals is 26 degree C .\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 8.7 Page no. 213\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Hemodialysis\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "# Write given data\n",
+ "B_in = 1.1 ; # Flow rate in of blood -[L/min]\n",
+ "B_out = 1.2; # Flow rate out of blood -[L/min]\n",
+ "S_in = 1.7; # Flow rate in of solution -[L/min]\n",
+ "\n",
+ "# Composition of input blood\n",
+ "B_in_CR = 2.72 ; #[g/L]\n",
+ "B_in_UR = 1.16 ; #[g/L]\n",
+ "B_in_U = 18 ; #[g/L]\n",
+ "B_in_P = 0.77 ; #[g/L]\n",
+ "B_in_K = 5.77 ; #[g/L]\n",
+ "B_in_Na = 13.0 ; #[g/L]\n",
+ "B_in_water = 1100 ; #[mL/min]\n",
+ "\n",
+ "# Composition of output blood\n",
+ "B_out_CR = 0.120 ; #[g/L]\n",
+ "B_out_UR = 0.060; #[g/L]\n",
+ "B_out_U = 1.51 ; #[g/L]\n",
+ "B_out_P = 0.040 ; #[g/L]\n",
+ "B_out_K = 0.120 ; #[g/L]\n",
+ "B_out_Na = 3.21 ; #[g/L]\n",
+ "B_out_water = 1200. ; #[mL/min]\n",
+ "\n",
+ "# Calculation and Result\n",
+ "n_un = 7. ; # Number of unknowns in the given problem\n",
+ "n_ie = 7. ; # Number of independent equations\n",
+ "d_o_f = n_un-n_ie ; # Number of degree of freedom\n",
+ "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n",
+ "\n",
+ "# Water balance in grams, assuming 1 ml is equivalent to 1 g\n",
+ "S_in_water = 1700. ; #[ml/min]\n",
+ "S_out_water = B_in_water+ S_in_water - B_out_water;\n",
+ "S_out = S_out_water/1000. ; #[L/min]\n",
+ "print ' Flow rate of water in output solution is %.2f L/min.'%S_out\n",
+ "\n",
+ "# The component balance in grams for CR,UR,U,P,K and Na are\n",
+ "S_out_CR = (B_in*B_in_CR - B_out*B_out_CR)/S_out;\n",
+ "S_out_UR = (B_in*B_in_UR - B_out*B_out_UR)/S_out;\n",
+ "S_out_U = (B_in*B_in_U - B_out*B_out_U)/S_out;\n",
+ "S_out_P = (B_in*B_in_P - B_out*B_out_P)/S_out;\n",
+ "S_out_K = (B_in*B_in_K - B_out*B_out_K)/S_out;\n",
+ "S_out_Na = (B_in*B_in_Na - B_out*B_out_Na)/S_out;\n",
+ "print ' Component Concentration(g/L) in output Dialysis solution '\n",
+ "print ' UR %.2f '%S_out_UR\n",
+ "print ' CR %.2f '%S_out_CR\n",
+ "print ' U %.2f '%S_out_U\n",
+ "print ' P %.2f '%S_out_P\n",
+ "print ' K %.2f '%S_out_K\n",
+ "print ' Na %.2f '%S_out_Na"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of degree of freedom for the given system is 0 .\n",
+ " Flow rate of water in output solution is 1.60 L/min.\n",
+ " Component Concentration(g/L) in output Dialysis solution \n",
+ " UR 0.75 \n",
+ " CR 1.78 \n",
+ " U 11.24 \n",
+ " P 0.50 \n",
+ " K 3.88 \n",
+ " Na 6.53 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb
new file mode 100644
index 00000000..4b127966
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb
@@ -0,0 +1,514 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : The Chemical Reaction Equation and Stoichiometry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page no. 228\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Balancing a reaction for a Biological Reaction\n",
+ "# Solution\n",
+ "\n",
+ "# variables\n",
+ "# Given \n",
+ "#Main eqn. C6H12O6 + aO2 ---> bCO2 + cH2O\n",
+ "# By carbon balance\n",
+ "b = 6 ;\n",
+ "\n",
+ "#By hydrogen balance\n",
+ "c = 6;\n",
+ "\n",
+ "# calculation\n",
+ "#Balancing oxygen in reaction\n",
+ "a = (c*1+b*2-6)/2.0;\n",
+ "\n",
+ "#result\n",
+ "print 'Value of a is %i'%a\n",
+ "print 'Value of b is %i'%b\n",
+ "print 'Value of c is %i'%c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of a is 6\n",
+ "Value of b is 6\n",
+ "Value of c is 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.2 Page no. 229\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Use of Chemical Reaction to Calculate the Mass of Reactants given the Mass of Products\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "m_CO2 = 44.0 ; #molecular wt-[g]\n",
+ "m_C7H16 = 100.1 ; #molecular wt-[g]\n",
+ "p_con = 50. ; # percentage conversion of CO2 to dry ice\n",
+ "amt_di = 500. ; # amount of dry ice to be produce per hour-[kg]\n",
+ "\n",
+ "# Calculation\n",
+ "# By using the given equation \n",
+ "amt_C7H16 = (amt_di*m_C7H16)/((p_con/100.)*m_CO2*7) ;# [kg]\n",
+ "\n",
+ "# Result\n",
+ "print 'Amount of heptane required per hour to produce 500kg dry ice per hour is %.1f kg.'%amt_C7H16"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of heptane required per hour to produce 500kg dry ice per hour is 325.0 kg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.3 Page no. 230\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Application of Stoichiometry when more than one Reaction occurs\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "m_CaCO3 = 100.1 ; #molecular wt-[g]\n",
+ "m_MgCO3 = 84.32 ; #molecular wt-[g]\n",
+ "m_CaO = 56.08 ; #molecular wt-[g]\n",
+ "m_MgO = 40.32 ; #molecular wt-[g]\n",
+ "m_CO2 = 44.0 ; #molecular wt-[g]\n",
+ "\n",
+ "# Limestone analysis\n",
+ "p_CaCO3 = 92.89 ; # percentage of CaCO3\n",
+ "p_MgCO3 = 5.41 ; # percentage of MgCO3 \n",
+ "inrt = 1.7 ; #percentage of inert\n",
+ "\n",
+ "# Calculation and Results\n",
+ "#(a)\n",
+ "amt_CaO = (((p_CaCO3/100)*m_CaO)/m_CaCO3)*2000 ; #Pounds of CaO produced from 1 ton(2000lb) of limestone\n",
+ "print ' Amount of CaO produced from 1 ton(2000lb) of limestone is %.0f lb.'%amt_CaO\n",
+ "\n",
+ "#(b)\n",
+ "mol_CaCO3 = (p_CaCO3/100)/m_CaCO3 ; # lb mol of CaCO3\n",
+ "mol_MgCO3 = (p_MgCO3/100)/m_MgCO3 ; # lb mol of MgCO3\n",
+ "total_mol = mol_CaCO3+mol_MgCO3;\n",
+ "amt_CO2 = total_mol*m_CO2 ; # Amount of CO2 recovered per pound of limestone-[lb]\n",
+ "print ' Amount of CO2 recovered per pound of limestone is %.3f lb.'%amt_CO2\n",
+ "\n",
+ "#(c)\n",
+ "amt_CaO = m_CaO*mol_CaCO3 ; # since lb mol of CaO = CaCO3\n",
+ "amt_MgO = m_MgO*mol_MgCO3 ; # since lb mol of MgO = MgCO3\n",
+ "total_lime = amt_CaO+amt_MgO+(inrt)/100 ; # total amount of lime per pound limestone\n",
+ "amt_lmst = 2000/total_lime ; # Amount of limestone required to make 1 ton(2000lb) of lime \n",
+ "print ' Amount of limestone required to make 1 ton(2000lb) of lime %.1f lb.'%amt_lmst"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Amount of CaO produced from 1 ton(2000lb) of limestone is 1041 lb.\n",
+ " Amount of CO2 recovered per pound of limestone is 0.437 lb.\n",
+ " Amount of limestone required to make 1 ton(2000lb) of lime 3550.7 lb.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.4 Page no. 235\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of extent of Reaction\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "f_NH3 = 5. ; # NH3 in feed-[g]\n",
+ "f_N2 = 100. ; # N2 in feed-[g]\n",
+ "f_H2 = 50. ; # H2 in feed-[g]\n",
+ "p_NH3 = 90. # NH3 in product-[g]\n",
+ "m_NH3 = 17. ; # Molecular wt. of NH3-[g]\n",
+ "m_N2 = 28. ; # Molecular wt. of N2-[g]\n",
+ "m_H2 = 2. ; # Molecular wt. of H2-[g]\n",
+ "\n",
+ "# Calculations \n",
+ "# Extent of reaction can be calculated by using eqn. 9.3 \n",
+ "# For NH3\n",
+ "ni = p_NH3/m_NH3 ; #[g mol NH3]\n",
+ "nio = f_NH3/m_NH3 ; #[g mol NH3]\n",
+ "vi = 2 ; # coefficint of NH3\n",
+ "ex_r = (ni-nio)/vi # Extent of reaction - moles reacting\n",
+ "\n",
+ "#Determine H2 and N2 in product of reaction by Eqn. 9.4\n",
+ "# For N2\n",
+ "nio_N2 = f_N2/m_N2 ; #[g mol N2]\n",
+ "vi_N2 = -1 ; # coefficint of N2\n",
+ "ni_N2 = nio_N2 + vi_N2*ex_r ; #N2 in product of reaction-[g moles ]\n",
+ "m_N2 = ni_N2*m_N2 ; # mass of N2 in product of reaction-[g]\n",
+ "\n",
+ "# Results\n",
+ "print ' N2 in product of reaction is %.2f g moles '%ni_N2\n",
+ "print ' Mass of N2 in product of reaction is %.2f g '%m_N2\n",
+ "# For H2\n",
+ "nio_H2 = f_H2/m_H2 ; #[g mol H2]\n",
+ "vi_H2 = -3 ; # coefficint of H2\n",
+ "ni_H2 = nio_H2 + vi_H2*ex_r ; #H2 in product of reaction-[g moles ]\n",
+ "m_H2 = ni_H2*m_H2 ; # mass of H2 in product of reaction-[g]\n",
+ "print ' H2 in product of reaction is %.2f g moles '%ni_H2\n",
+ "print ' Mass of H2 in product of reaction is %.2f g '%m_H2\n",
+ "\n",
+ "# ARP\n",
+ "m_SO2 = 64. ; # Molecular wt.of SO2-[g]\n",
+ "mol_SO2 = 2. ; # moles of SO2\n",
+ "ARP = (1./m_NH3)/(mol_SO2/m_SO2);\n",
+ "print ' ARP is %.2f '%ARP"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " N2 in product of reaction is 1.07 g moles \n",
+ " Mass of N2 in product of reaction is 30.00 g \n",
+ " H2 in product of reaction is 17.50 g moles \n",
+ " Mass of H2 in product of reaction is 35.00 g \n",
+ " ARP is 1.88 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.5 Page no. 238\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of Limiting and Excess Reactants\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "f_N2 = 10. ; # N2 in feed-[g]\n",
+ "f_H2 = 10. ; # H2 in feed-[g]\n",
+ "m_NH3 = 17.02 # Molecular wt. of NH3-[g]\n",
+ "m_N2 = 28. ; # Molecular wt. of N2-[g]\n",
+ "m_H2 = 2. ; # Molecular wt. of H2-[g]\n",
+ "\n",
+ "# Calculations\n",
+ "# Extent of reaction can be calculated by using eqn. 9.3 \n",
+ "# Based on N2\n",
+ "nio_N2 = f_N2/m_N2 #[g mol N2]\n",
+ "vi_N2 = -1 ; # coefficint of N2\n",
+ "ex_N2 = -(nio_N2)/vi_N2 ; # Max. extent of reaction based on N2\n",
+ "\n",
+ "# Based on H2\n",
+ "nio_H2 = f_H2/m_H2 ; #[g mol H2]\n",
+ "vi_H2 = -3 ; # coefficint of H2\n",
+ "ex_H2 = -(nio_H2)/vi_H2 # Max. extent of reaction based on H2\n",
+ "\n",
+ "#(a)\n",
+ "vi_NH3 = 2 ; # coefficint of NH3\n",
+ "mx_NH3 = ex_N2*vi_NH3*m_NH3 ; # Max. amount of NH3 that can be produced\n",
+ "\n",
+ "# Results\n",
+ "print ' (a) Max. amount of NH3 that can be produced is %.1f g'%mx_NH3\n",
+ "\n",
+ "#(b) and (c)\n",
+ "if (ex_H2 > ex_N2 ):\n",
+ " print ' (b) N2 is limiting reactant '\n",
+ " print ' (c) H2 is excess reactant '\n",
+ " ex_r = ex_N2\n",
+ "else:\n",
+ " print ' (b) H2 is limiting reactant '\n",
+ " print ' (c) N2 is excess reactant '\n",
+ " ex_r = ex_H2 ;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a) Max. amount of NH3 that can be produced is 12.2 g\n",
+ " (b) N2 is limiting reactant \n",
+ " (c) H2 is excess reactant \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.6 Page no. 242\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Yeilds in the Reaction of Glucose to produce Ethanol\n",
+ "# Solution\n",
+ "\n",
+ "# variables\n",
+ "#(a)\n",
+ "mol_bms = 0.59 ; # Biomass produced per g mol of glucose-[g mol biomass/ g mol glucose]\n",
+ "mw_bms = 23.74 ; # molecular wt. of biomass -[g]\n",
+ "mw_gls = 180.0 ; # molecular wt. of glucose -[g]\n",
+ "\n",
+ "# calculations and Results\n",
+ "ms_bms = (mol_bms*mw_bms)/mw_gls ; # Biomass produced per gram of glucose-[g biomass/ g glucose]\n",
+ "print '(a) Biomass produced per gram of glucose is %.4f g biomass/ g glucose.'%ms_bms\n",
+ "\n",
+ "#(b)\n",
+ "mol_etol = 1.3 ; #Ethanol produced per g mol of glucose-[g mol ethanol/ g mol glucose]\n",
+ "mw_etol = 46.0 ; # molecular wt. of ethanol -[g]\n",
+ "ms_etol = (mol_etol*mw_etol)/mw_gls ; # Ethanol produced per gram of glucose-[g ethanol/ g glucose]\n",
+ "print ' (b) Ethanol produced per gram of glucose is %.3f g ethanol/ g glucose.'%ms_etol"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Biomass produced per gram of glucose is 0.0778 g biomass/ g glucose.\n",
+ " (b) Ethanol produced per gram of glucose is 0.332 g ethanol/ g glucose.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.7 Page no. 243\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Selectivity in the Production of Nanotubes\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "# By using reaction (a)\n",
+ "H2_a = 3-0.50 # H2 produced in reaction (a)\n",
+ "\n",
+ "# Calculations\n",
+ "C_a = (2./3)*H2_a ; # Nanotubes(the C) produced by reaction (a)\n",
+ "sel = C_a/0.50 ; # Selectivity of C reletive to C2H4-[g mol C/ g mol C2H4]\n",
+ "\n",
+ "# Results\n",
+ "print 'Selectivity of C reletive to C2H4 is %.2f g mol C/ g mol C2H4.'%sel"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Selectivity of C reletive to C2H4 is 3.33 g mol C/ g mol C2H4.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ " Example 9.8 Page no. 244\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation of various terms Pertaning to Reaction\n",
+ "# Solution\n",
+ "\n",
+ "# Variables\n",
+ "m_C3H6 = 42.08 # molecular wt. of propene-[g]\n",
+ "m_C3H5Cl = 76.53 ; # molecular wt. of C3H5Cl-[g]\n",
+ "m_C3H6Cl2 = 112.99 ; # molecular wt. of C3H6Cl2-[g]\n",
+ "\n",
+ "# Product analysis\n",
+ "pml_Cl2 = 141.0 ; # [g mol]\n",
+ "pml_C3H6 = 651.0 ; #[g mol]\n",
+ "pml_C3H5Cl = 4.6 ; # [g mol]\n",
+ "pml_C3H6Cl2 = 24.5 ; # [g mol]\n",
+ "pml_HCL = 4.6 ; #[g mol]\n",
+ "\n",
+ "# Calculation & Results\n",
+ "#(a)\n",
+ "a_Cl = pml_C3H5Cl; # Chlorine reacted by eqn.(a)\n",
+ "b_Cl = pml_C3H6Cl2 ; # Chlorine reacted by eqn.(b)\n",
+ "fed_Cl = pml_Cl2+a_Cl+b_Cl ; # Total chlorine fed to reactor-[g mol]\n",
+ "\n",
+ "#by analysing reaction (a) and (b)\n",
+ "a_C3H6 = a_Cl+b_Cl ; # C3H6 reacted by reaction (a)\n",
+ "fed_C3H6 = pml_C3H6+a_C3H6 ; #Total C3H6 fed to reactor-[g mol]\n",
+ "\n",
+ "\n",
+ "print '(a) Total chlorine fed to reactor is %.2f g mol '%fed_Cl\n",
+ "print ' Total C3H6 fed to reactor is %.2f g mol '%fed_C3H6\n",
+ "\n",
+ "#(b) and (c)\n",
+ "# Extent of reaction can be calculated by using eqn. 9.3 \n",
+ "# Based on C3H6\n",
+ "nio_C3H6 = fed_C3H6 ; #[g mol C3H6]\n",
+ "vi_C3H6 = -1 ; # coefficint of C3H6\n",
+ "ex_C3H6 = -(nio_C3H6)/vi_C3H6 ; # Max. extent of reaction based on C3H6\n",
+ "\n",
+ "# Based on Cl2\n",
+ "nio_Cl2 = fed_Cl; #[g mol Cl2]\n",
+ "vi_Cl2 = -1 ; # coefficint of Cl2\n",
+ "ex_Cl2 = -(nio_Cl2)/vi_Cl2 ;# Max. extent of reaction based on Cl2\n",
+ "\n",
+ "if (ex_Cl2 > ex_C3H6 ):\n",
+ " print ' (b) C3H6 is limiting reactant '\n",
+ " print ' (c)Cl2 is excess reactant '\n",
+ " ex_r = ex_C3H6;\n",
+ "else:\n",
+ " print ' (b) Cl2 is limiting reactant '\n",
+ " print ' (c) C3H6 is excess reactant '\n",
+ " ex_r = ex_Cl2;\n",
+ "\n",
+ "#(d)\n",
+ "fr_cn = pml_C3H5Cl/fed_C3H6 ; #Fractional conversion of C3H6 to C3H5Cl\n",
+ "print ' (d) Fractional conversion of C3H6 to C3H5Cl is %.2e '%fr_cn\n",
+ "\n",
+ "#(e)\n",
+ "sel = pml_C3H5Cl/pml_C3H6Cl2 ; # Selectivity of C3H5Cl relative to C3H6Cl2\n",
+ "print ' (e) Selectivity of C3H5Cl relative to C3H6Cl2 is %.2f g mol C3H5Cl/g mol C3H6Cl2 '%sel\n",
+ "\n",
+ "#(f)\n",
+ "yld = (m_C3H5Cl*pml_C3H5Cl)/(m_C3H6*fed_C3H6) # Yield of C3H5Cl per g C3H6 fed to reactor\n",
+ "print ' (f) Yield of C3H5Cl per g C3H6 fed to reactor is %.3f g C3H5Cl/g C3H6 '%yld\n",
+ "\n",
+ "#(g)\n",
+ "vi_C3H5Cl = 1 ; # coefficint of C3H5Cl\n",
+ "vi_C3H6Cl2 = 1 ; # coefficint of C3H6Cl2\n",
+ "ex_a = (pml_C3H5Cl-0)/vi_C3H5Cl ; # Extent of reaction a as C3H5Cl is produced only in reaction a\n",
+ "ex_b = (pml_C3H6Cl2-0)/vi_C3H6Cl2 ; # Extent of reaction b as C3H6Cl2 is produced only in reaction b\n",
+ "print ' (g) Extent of reaction a as C3H5Cl is produced only in reaction a is %.1f '%ex_a\n",
+ "print ' Extent of reaction b as C3H6Cl2 is produced only in reaction b %.1f '%ex_b\n",
+ "\n",
+ "#(h)\n",
+ "in_Cl = fed_Cl*2 ; #Entering Cl -[g mol]\n",
+ "out_Cl = pml_HCL ; # Exiting Cl in HCl-[g mol]\n",
+ "ef_w = out_Cl/in_Cl ; # Mole efficiency of waste\n",
+ "ef_pr = 1-ef_w ; # Mole efficiency of product\n",
+ "print ' (h) Mole efficiency of product is %.3f '%ef_pr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Total chlorine fed to reactor is 170.10 g mol \n",
+ " Total C3H6 fed to reactor is 680.10 g mol \n",
+ " (b) Cl2 is limiting reactant \n",
+ " (c) C3H6 is excess reactant \n",
+ " (d) Fractional conversion of C3H6 to C3H5Cl is 6.76e-03 \n",
+ " (e) Selectivity of C3H5Cl relative to C3H6Cl2 is 0.19 g mol C3H5Cl/g mol C3H6Cl2 \n",
+ " (f) Yield of C3H5Cl per g C3H6 fed to reactor is 0.012 g C3H5Cl/g C3H6 \n",
+ " (g) Extent of reaction a as C3H5Cl is produced only in reaction a is 4.6 \n",
+ " Extent of reaction b as C3H6Cl2 is produced only in reaction b 24.5 \n",
+ " (h) Mole efficiency of product is 0.986 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.png
new file mode 100644
index 00000000..a1bab145
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.png
new file mode 100644
index 00000000..a1bab145
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.png
new file mode 100644
index 00000000..a1bab145
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.png
new file mode 100644
index 00000000..a1bab145
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.png
new file mode 100644
index 00000000..81ceba34
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.png
new file mode 100644
index 00000000..017d45cd
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.png
new file mode 100644
index 00000000..6e061e73
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.png
new file mode 100644
index 00000000..6e061e73
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.png
new file mode 100644
index 00000000..6e061e73
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.png
new file mode 100644
index 00000000..6e061e73
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.png
new file mode 100644
index 00000000..852e9c76
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.png
new file mode 100644
index 00000000..852e9c76
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.png
new file mode 100644
index 00000000..852e9c76
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.png
Binary files differ
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.png
new file mode 100644
index 00000000..852e9c76
--- /dev/null
+++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.png
Binary files differ