summaryrefslogtreecommitdiff
path: root/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao
diff options
context:
space:
mode:
authorkinitrupti2017-05-12 18:53:46 +0530
committerkinitrupti2017-05-12 18:53:46 +0530
commit6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d (patch)
tree22789c9dbe468dae6697dcd12d8e97de4bcf94a2 /Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao
parentd36fc3b8f88cc3108ffff6151e376b619b9abb01 (diff)
downloadPython-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.tar.gz
Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.tar.bz2
Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.zip
Removed duplicates
Diffstat (limited to 'Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao')
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/README.txt10
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch1.ipynb145
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch10.ipynb202
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch11.ipynb585
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch12.ipynb716
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch13.ipynb235
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb846
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch2.ipynb117
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch3.ipynb897
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch4.ipynb1291
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch5.ipynb974
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch6.ipynb214
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch7.ipynb255
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch8.ipynb600
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch9.ipynb1125
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_gE-RTx1x2_vs_x1.pngbin0 -> 8932 bytes
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_ln(gamma1-gamma2)_vs_x1.pngbin0 -> 13438 bytes
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/T-x-y_diagram.pngbin0 -> 23932 bytes
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/pressureVSvol3.pngbin0 -> 11626 bytes
19 files changed, 8212 insertions, 0 deletions
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/README.txt b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/README.txt
new file mode 100755
index 00000000..98c63c7c
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Jai Mathur
+Course: mca
+College/Institute/Organization: IIT
+Department/Designation: System Admin
+Book Title: Chemical Engineering Thermodynamics
+Author: Y. V. C. Rao
+Publisher: Universities Press
+Year of publication: 1997
+Isbn: 81-7371-048-1
+Edition: 1 \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch1.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch1.ipynb
new file mode 100755
index 00000000..c7a29075
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch1.ipynb
@@ -0,0 +1,145 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4f7d90cd7b10a2be32d6f9985c84b88b7895b54f53fda509a7ab6972ab90144a"
+ },
+ "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"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "weight = 981. \t\t\t #weight of payload in N\n",
+ "gmoon = 1.62;\t\t\t #acceleration due to gravity on the moon in m/s**2\n",
+ "g = 9.81;\t\t\t #acceleration due to gravity on earth\n",
+ "\n",
+ "# Calculations\n",
+ "mass = weight/g; \t\t\t # Calculations of mass of the payload in kg (calculated as F = m*g)\n",
+ "weightmoon = mass*gmoon;\t\t\t # Calculations of weight of payload on the moon in N\n",
+ "\n",
+ "# Results\n",
+ "print ' The weight of payload on the moon = %d N'%(weightmoon);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The weight of payload on the moon = 162 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.2 Page No : 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "l = 15.;\t\t\t #length of the child's head in cm\n",
+ "b = 12.;\t\t\t #breadth of the child's head in cm\n",
+ "p = 101325.;\t\t\t #atmospheric pressure in Pa\n",
+ "\n",
+ "# Calculations\n",
+ "area = (l*b)/(10**4);\t\t\t # Calculations of area of the child's head in m**2\n",
+ "force = p*area;\t\t\t # Calculations of force exerted on the child's head due to atmospheric air in N\n",
+ "\n",
+ "# Results\n",
+ "print ' The force exerted on the childs head due to atmospheric air = %.2f N'%(force);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The force exerted on the childs head due to atmospheric air = 1823.85 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No : 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "rho_water = 1000.;\t\t\t #density of water flowing through the pipeline in kg/m**3\n",
+ "rho_manomtr = 1595.;\t\t #density of manometric fluid (carbon tetrachloride) in kg/m**3\n",
+ "l = 40.;\t \t\t #length between the selected sections in cm\n",
+ "theta = 45.\t\t\t #inclination of the manometer in degrees\n",
+ "g = 9.81;\t \t\t #acceleration due to gravity in m/s**2\n",
+ "\n",
+ "# Calculations\n",
+ "delp = (l/100.)*math.sin((theta*math.pi)/180.)*g*(rho_manomtr-rho_water); # Calculations of pressure drop between the required sections in Pa\n",
+ "\n",
+ "# Results\n",
+ "print ' The pressure drop between the required sections = %.2f Pa'%delp\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pressure drop between the required sections = 1650.94 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch10.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch10.ipynb
new file mode 100755
index 00000000..5d1a66e8
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch10.ipynb
@@ -0,0 +1,202 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Stability and phase transition in thermodynamic systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page No : 369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 2;\t\t\t #number of phases (no unit)\n",
+ "C = 2;\t\t\t #number of components (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "F = C+2-P\n",
+ "\n",
+ "# Results\n",
+ "print \" The number of degrees of freedom = %d \"%(F);\n",
+ "print \"Two intensive properties are required to be specified to\\\n",
+ " describe the thermodynamic state of the system,and the fundamental relation in\\\n",
+ " the Gibbs free energy representation for this system is of the type, G = GT,P,N1,N2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of degrees of freedom = 2 \n",
+ "Two intensive properties are required to be specified to describe the thermodynamic state of the system,and the fundamental relation in the Gibbs free energy representation for this system is of the type, G = GT,P,N1,N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page No : 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import cmath\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature of n-octane vapour in K\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "w = 0.398;\t\t\t #acentric factor (no unit) \n",
+ "\n",
+ "# Calculations\n",
+ "Pguess = 0.215\n",
+ "\n",
+ "\n",
+ "Tr = T/Tc\n",
+ "Pr = (Pguess*10**6)/(Pc*10**5)\n",
+ "S = 0.37464+(1.54226*w)-(0.26992*w**2)\n",
+ "alpha1 = (1+(S*(1-math.sqrt(Tr))))**2;\n",
+ "a = (0.45724*R**2*Tc**2*alpha1)/(Pc*10**5)\n",
+ "b = (0.07780*R*Tc)/(Pc*10**5);\t\t\t \n",
+ "A = (a*Pguess*10**6)/(R*T)**2;\t\t\t \n",
+ "B = (b*Pguess*10**6)/(R*T);\t\t\t \n",
+ "alpha = -1+B\n",
+ "beeta = A-(2*B)-(3*B**2)\n",
+ "gaamma = -(A*B)+(B**2)+(B**3)\n",
+ "p = beeta-(alpha**2)/3;\t\t\n",
+ "q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4)+(((p)**3)/27);\t\t\t \n",
+ "\n",
+ "\n",
+ "if D>0:\n",
+ " Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3);\n",
+ " Z_l = Z;\n",
+ " Z_v = Z;\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3);\t\t\t \n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z = [Z1 ,Z2, Z3];\n",
+ " Z_l = min(Z);\n",
+ " Z_v = max(Z);\n",
+ "else:\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\t \n",
+ " theta = math.acos((-(q)/2)*(1./r));\t\t\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z = [Z1, Z2, Z3];\n",
+ " Z_l = min(Z)\n",
+ " Z_v = max(Z)\n",
+ "\n",
+ "\n",
+ "phi_l = math.exp(Z_l-1-math.log(Z_l-B)-((a/(2*math.sqrt(2)*b*R*T))*math.log((Z_l+(B*(1+math.sqrt(2))))/(Z_l+(B*(1-math.sqrt(2)))))));\n",
+ "phi_v = math.exp(Z_v-1-math.log(Z_v-B)-((a/(2*math.sqrt(2)*b*R*T))*math.log((Z_v+(B*(1+math.sqrt(2))))/(Z_v+(B*(1-math.sqrt(2)))))));\n",
+ "fl = Pguess*phi_l;\t\t\t # Calculations of the fugacity of the liquid in MPa\n",
+ "fv = Pguess*phi_v;\t\t\t # Calculations of the fugacity of the vapour in MPa\n",
+ "tolerance = 1e-3;\t\t\t #defining the tolerance to compare fl and fv\n",
+ "\n",
+ "if abs(fl-fv)<tolerance:\n",
+ " P = Pguess;\t\t\t\n",
+ "else:\n",
+ " Prevised = Pguess*(fl/fv)\n",
+ "\n",
+ "while abs(fl-fv)>tolerance:\n",
+ " Tr = T/Tc\n",
+ " Pr = (Prevised*10**6)/(Pc*10**5);\n",
+ " S = 0.37464+(1.54226*w)-(0.26992*w**2)\n",
+ " alpha1 = (1+(S*(1-math.sqrt(Tr))))**2;\n",
+ " a = (0.45724*R**2*Tc**2*alpha1)/(Pc*10**5)\n",
+ " b = (0.07780*R*Tc)/(Pc*10**5);\t\t\t \n",
+ " A = (a*Prevised*10**6)/(R*T)**2;\t\t\n",
+ " B = (b*Prevised*10**6)/(R*T);\t\t\t\n",
+ " alpha = -1+B;\t\t\t \n",
+ " beeta = A-(2*B)-(3*B**2);\n",
+ " gaamma = -(A*B)+(B**2)+(B**3)\n",
+ " p = beeta-(alpha**2)/3;\t\t\n",
+ " q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ " D = (((q)**2)/4)+(((p)**3)/27);\t\n",
+ " \n",
+ " if D > 0:\n",
+ " Z=((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3); #One real root given by Eq.(3.32)\n",
+ " Z_l=Z;\n",
+ " Z_v=Z;\n",
+ " elif D==0:\n",
+ " Z1=((-2*(q/2))**(1./3))-(alpha/3); #Three real roots and two equal given by Eq.(3.33)\n",
+ " Z2=((q/2)**(1./3))-(alpha/3);\n",
+ " Z3=((q/2)**(1./3))-(alpha/3);\n",
+ " Z=[Z1, Z2, Z3];\n",
+ " Z_l=min(Z);\n",
+ " Z_v=max(Z);\n",
+ " else:\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\t \n",
+ " theta = math.acos((-(q)/2)*(1./r));\t\t\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3);\n",
+ " Z = [Z1, Z2, Z3];\n",
+ " Z_l = Z[0];\n",
+ " Z_v = Z[1];\n",
+ "\n",
+ " phi_l = math.exp(Z_l-1-math.log(Z_l-B)-((a/(2*math.sqrt(2)*b*R*T))*math.log((Z_l+(B*(1+math.sqrt(2))))/(Z_l+(B*(1-math.sqrt(2)))))));\n",
+ " phi_v = math.exp(Z_v-1-math.log(Z_v-B)-((a/(2*math.sqrt(2)*b*R*T))*math.log((Z_v+(B*(1+math.sqrt(2))))/(Z_v+(B*(1-math.sqrt(2)))))));\n",
+ " fl = Prevised*phi_l;\t\n",
+ " fv = Prevised*phi_v;\t\n",
+ " Prevised = Prevised*fl/fv\n",
+ "\n",
+ "P = Prevised;\t\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The vapour pressure of n-octane at 427.85K = %.5f\"%P,\" MPa\"\n",
+ "\n",
+ "# Note: answer is slightly differnt because of rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The vapour pressure of n-octane at 427.85K = 0.21196 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch11.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch11.ipynb
new file mode 100755
index 00000000..9c8a35bf
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch11.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Properties of solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.1 Page No : 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "antoine_const_benzene = [6.87987,1196.760,219.161]\n",
+ "antoine_const_toluene = [6.95087,1342.310,219.187]\n",
+ "t = 95.\n",
+ "P = 101.325\n",
+ "\n",
+ "# Calculations\n",
+ "P1_s = 10**(antoine_const_benzene[0]-(antoine_const_benzene[1]/(t+antoine_const_benzene[2])))\t\t\t \n",
+ "P2_s = 10**(antoine_const_toluene[0]-(antoine_const_toluene[1]/(t+antoine_const_toluene[2])))\t\t\t\n",
+ "x1 = linspace(0,1,10)\n",
+ "i = 0;\t\t\t #iteration parameter\n",
+ "n = len(x1);\t\t\t #iteration parameter\n",
+ "P_tot = zeros(10)\n",
+ "y1 = zeros(10)\n",
+ "\n",
+ "while i<n :\n",
+ " P_tot[i] = P2_s+((P1_s-P2_s)*x1[i])\n",
+ " y1[i] = (x1[i]*P1_s)/(P_tot[i])\t\n",
+ " i = i+1;\n",
+ "\n",
+ "#T-x-y diagram:\n",
+ "P = 760.\n",
+ "t1_s = ((antoine_const_benzene[1])/(antoine_const_benzene[0]-math.log10(P)))-antoine_const_benzene[2]\n",
+ "t2_s = ((antoine_const_toluene[1])/(antoine_const_toluene[0]-math.log10(P)))-antoine_const_toluene[2];\n",
+ "x1_initial = 0.0;\n",
+ "y1_initial = 0.0;\n",
+ "x1_final = 1.0;\n",
+ "y1_final = 1.0;\n",
+ "\n",
+ "T = linspace(85,105,5)\n",
+ "k = 0;\n",
+ "l = len(T)\n",
+ "P1s = zeros(5)\n",
+ "P2s = zeros(5)\n",
+ "X1 = zeros(5)\n",
+ "Y1 = zeros(5)\n",
+ "while k<l:\n",
+ " P1s[k] = 10**((antoine_const_benzene[0])-((antoine_const_benzene[1])/(T[k]+antoine_const_benzene[2])))\n",
+ " P2s[k] = 10**((antoine_const_toluene[0])-((antoine_const_toluene[1])/(T[k]+antoine_const_toluene[2])))\n",
+ " X1[k] = (P-P2s[k])/(P1s[k]-P2s[k]);\t\n",
+ " Y1[k] = (X1[k]*P1s[k])/P;\t\t\t # Calculations of mole fraction of Benzene in vapour phase (no unit) \n",
+ " k = k+1;\n",
+ "\n",
+ "temp = zeros(l+2)\n",
+ "x1_benzene = zeros(l+2)\n",
+ "y1_benzene = zeros(l+2)\n",
+ "j = 0;\n",
+ "\n",
+ "while j<l+2:\n",
+ " if j == 0:\n",
+ " temp[j] = t1_s;\n",
+ " x1_benzene[j] = x1_final;\n",
+ " y1_benzene[j] = y1_final;\n",
+ " elif j == l+1:\n",
+ " temp[j] = t2_s;\n",
+ " x1_benzene[j] = x1_initial;\n",
+ " y1_benzene[j] = y1_initial;\n",
+ " else:\n",
+ " temp[j] = T[j-1];\n",
+ " x1_benzene[j] = X1[j-1];\n",
+ " y1_benzene[j] = Y1[j-1];\n",
+ " j = j+1;\n",
+ "\n",
+ "# Results\n",
+ "print 'P-x-y results ';\n",
+ "\n",
+ "for i in range( n):\n",
+ " print 'x1 = %f \\t y1 = %f\\t P = %f Torr '%(x1[i],y1[i],P_tot[i]);\n",
+ "\n",
+ "print 'T-x-y results t = %f degree celsius\\t P1_s = 760.0 Torr \\t P2_s = -) Torr \\t\\t x1 = 1.0 \\t y1 = 1.0 '%(t1_s);\n",
+ "for k in range(l):\n",
+ " print 't = %f degree celsius\\t P1_s = %f Torr \\t P2_s = %f Torr \\t x1 = %f \\t y1 = %f '%(T[k],P1s[k],P2s[k],X1[k],Y1[k]);\n",
+ "\n",
+ "print 't = %f degree celsius\\t P1_s = -)Torr \\t\\t P2_s = 760.0 Torr \\t x1 = 0.0 \\t y1 = 0.0 '%(t2_s);\n",
+ "subplot(2,1,1)\n",
+ "plot(x1,P_tot,y1,P_tot)\n",
+ "suptitle('P-x-y diagram for benzene-toluene system at 95 degree celsius')\n",
+ "xlabel('x1,y1')\n",
+ "ylabel('P(Torr)')\n",
+ "subplot(2,1,2)\n",
+ "plot(x1_benzene,temp,y1_benzene,temp)\n",
+ "xlabel(\"x1,y1\")\n",
+ "ylabel(\"t (degree celsius)\") \n",
+ "suptitle('T-x-y diagram for benzene-toluene sytem at 760 Torr')\n",
+ "\n",
+ "show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "P-x-y results \n",
+ "x1 = 0.000000 \t y1 = 0.000000\t P = 477.025655 Torr \n",
+ "x1 = 0.111111 \t y1 = 0.235600\t P = 554.713037 Torr \n",
+ "x1 = 0.222222 \t y1 = 0.413315\t P = 632.400419 Torr \n",
+ "x1 = 0.333333 \t y1 = 0.552144\t P = 710.087801 Torr \n",
+ "x1 = 0.444444 \t y1 = 0.663592\t P = 787.775183 Torr \n",
+ "x1 = 0.555556 \t y1 = 0.755031\t P = 865.462564 Torr \n",
+ "x1 = 0.666667 \t y1 = 0.831407\t P = 943.149946 Torr \n",
+ "x1 = 0.777778 \t y1 = 0.896158\t P = 1020.837328 Torr \n",
+ "x1 = 0.888889 \t y1 = 0.951751\t P = 1098.524710 Torr \n",
+ "x1 = 1.000000 \t y1 = 1.000000\t P = 1176.212092 Torr \n",
+ "T-x-y results t = 80.099595 degree celsius\t P1_s = 760.0 Torr \t P2_s = -) Torr \t\t x1 = 1.0 \t y1 = 1.0 \n",
+ "t = 85.000000 degree celsius\t P1_s = 881.542536 Torr \t P2_s = 345.216082 Torr \t x1 = 0.773380 \t y1 = 0.897062 \n",
+ "t = 90.000000 degree celsius\t P1_s = 1020.650885 Torr \t P2_s = 406.866584 Torr \t x1 = 0.575338 \t y1 = 0.772657 \n",
+ "t = 95.000000 degree celsius\t P1_s = 1176.212092 Torr \t P2_s = 477.025655 Torr \t x1 = 0.404719 \t y1 = 0.626363 \n",
+ "t = 100.000000 degree celsius\t P1_s = 1349.471568 Torr \t P2_s = 556.502216 Torr \t x1 = 0.256628 \t y1 = 0.455673 \n",
+ "t = 105.000000 degree celsius\t P1_s = 1541.703421 Torr \t P2_s = 646.141534 Torr \t x1 = 0.127136 \t y1 = 0.257903 \n",
+ "t = 110.614326 degree celsius\t P1_s = -)Torr \t\t P2_s = 760.0 Torr \t x1 = 0.0 \t y1 = 0.0 \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x3802f10>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.2 Page No : 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 95. \t\t \t #temperature of the equimolar vapour mixture of benzene and toluene in degree celsius\n",
+ "y1 = 0.5\t \t\t #mole fraction of benzene in vapour phase (no unit)\n",
+ "y2 = 0.5 \t\t\t #mole fraction of toluene in vapour phase (no unit)\n",
+ "P1_s = 1176.21\t\t\t #saturation pressure of benzene at T, taken from Example 11.1 in Torr\n",
+ "P2_s = 477.03\t\t\t #saturation pressure of toluene at T, taken from Example 11.1 in Torr\n",
+ "\n",
+ "# Calculations\n",
+ "P = 1./((y1/P1_s)+(y2/P2_s))\n",
+ "x1 = (y1*P)/P1_s;\t\t\t \n",
+ "x2 = 1-x1\n",
+ "\n",
+ "# Results\n",
+ "print 'The composition of the liquid which is in equilibrium with the equimolar vapour mixture of\\\n",
+ " benzene and toluene at 95 degree celsius is mole fraction of benzene\\\n",
+ " in liquid phase x1 = %f mole fraction of toluene in liquid phase x2 = %f '%(x1,x2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composition of the liquid which is in equilibrium with the equimolar vapour mixture of benzene and toluene at 95 degree celsius is mole fraction of benzene in liquid phase x1 = 0.288542 mole fraction of toluene in liquid phase x2 = 0.711458 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.5 page no : 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "n_pentaneA = 6.87632 # Antoine constants\n",
+ "n_hexaneA = 6.91058\n",
+ "n_heptanA = 6.89386\n",
+ "n_pentaneB = 1075.780 \n",
+ "n_hexaneB = 1189.640\n",
+ "n_heptanB = 1264.370\n",
+ "n_pentaneC = 233.205\n",
+ "n_hexaneC = 226.205\n",
+ "n_heptanC = 216.640\n",
+ "pressure = 90 # pressure\n",
+ "\n",
+ "# Calculations\n",
+ "logP1 = n_pentaneA - (n_pentaneB/(90 + n_pentaneC))\n",
+ "P1 = round(10**logP1 *133.322 /1000,1)\n",
+ "logP2 = n_hexaneA - (n_hexaneB/(90 + n_hexaneC))\n",
+ "P2 = round(10**logP2 *133.322 /1000,2)\n",
+ "logP3 = n_heptanA - (n_heptanB/(90 + n_heptanC))\n",
+ "P3 = round(10**logP3 *133.322 /1000,2)\n",
+ "P = 200\n",
+ "K1 = round(P1/P,3)\n",
+ "K2 = round(P2/P,2)\n",
+ "K3 = P3/P\n",
+ "\n",
+ "# assume L/F = 0.4\n",
+ "L_F = 0.4\n",
+ "x1 = 0.3/(L_F + (1-L_F) * K1)\n",
+ "x2 = 0.3/(L_F + (1-L_F) * K2)\n",
+ "x3 = 0.4/(L_F + (1-L_F) * K3)\n",
+ "sum_x = x1+x2+x3\n",
+ "\n",
+ "# assume L/F = 0.752\n",
+ "L_F = 0.752\n",
+ "x1 = 0.3/(L_F + (1-L_F) * K1)\n",
+ "x2 = 0.3/(L_F + (1-L_F) * K2)\n",
+ "x3 = 0.4/(L_F + (1-L_F) * K3)\n",
+ "sum_x = round(x1+x2+x3,1) # which is equal to 1 \n",
+ "\n",
+ "# Hence, L/F = 0.752 is correct\n",
+ "y1 = K1*x1\n",
+ "y2 = K2*x2\n",
+ "y3 = K3*x3\n",
+ "\n",
+ "# Results\n",
+ "print \"Hence, fraction vaporized, V/F = 1-(L-F) = %.3f\"%(1-L_F)\n",
+ "print \"Compositions of liquid and vapor leaving the flash unit are :\"\n",
+ "print \"x1 = %.4f y1 = %.4f\"%(x1,y1)\n",
+ "print \"x2 = %.4f y2 = %.4f\"%(x2,y2)\n",
+ "print \"x3 = %.4f y3 = %.4f\"%(x3,y3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence, fraction vaporized, V/F = 1-(L-F) = 0.248\n",
+ "Compositions of liquid and vapor leaving the flash unit are :\n",
+ "x1 = 0.2246 y1 = 0.5285\n",
+ "x2 = 0.3045 y2 = 0.2863\n",
+ "x3 = 0.4709 y3 = 0.1851\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No : 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 45.\t \t\t #temperature of the mixture in degree celsius\n",
+ "A = 2.230\t\t\t #van laar constant for the system at T (no unit)\n",
+ "B = 1.959\t\t\t #van laar constant for the system at T (no unit)\n",
+ "n1 = 30. \t\t #mole percentage of nitromethane in the mixture ( in percentage)\n",
+ "\n",
+ "# Calculations\n",
+ "n2 = 100-n1\n",
+ "x1 = n1/100\n",
+ "x2 = 1-x1\n",
+ "gaamma1 = math.exp(A/(1+((A/B)*(x1/x2)))**2)\n",
+ "gaamma2 = math.exp(B/(1+((B/A)*(x2/x1)))**2)\n",
+ "\n",
+ "# Results\n",
+ "print 'The activity coefficients for the system using van laar equation is : gamma1 \\\n",
+ " = %f, gamma2 = %f \\t '%( gaamma1,gaamma2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The activity coefficients for the system using van laar equation is : gamma1 = 2.738343, gamma2 = 1.234443 \t \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.8 Page No : 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "n_azeo = 44.8;\t\t\t #azeotropic composition given as mole percentage\n",
+ "Tb = 68.24;\t\t\t #boiling point of mixture in degree celsius\n",
+ "P = 760.;\t\t\t #pressure in Torr\n",
+ "P1_s = 506.;\t\t\t #saturation pressure of ethanol at Tb in Torr\n",
+ "P2_s = 517.;\t\t\t #saturation pressure of benzene at Tb in Torr\n",
+ "n1 = 10.;\t\t\t #mole percentage of ethanol in the mixture (in percentage)\n",
+ "\n",
+ "# Calculations\n",
+ "x1 = n_azeo/100\n",
+ "x2 = 1-x1;\t\t\n",
+ "gaamma1 = P/P1_s\n",
+ "gaamma2 = P/P2_s\n",
+ "A = math.log(gaamma1)*(1+((x2*math.log(gaamma2))/(x1*math.log(gaamma1))))**2\n",
+ "B = math.log(gaamma2)*(1+((x1*math.log(gaamma1))/(x2*math.log(gaamma2))))**2\n",
+ "x1 = n1/100\n",
+ "x2 = 1-x1;\t\n",
+ "gaamma1 = math.exp(A/(1+((A/B)*(x1/x2)))**2)\n",
+ "gaamma2 = math.exp(B/(1+((B/A)*(x2/x1)))**2)\n",
+ "\n",
+ "# Results\n",
+ "print 'The van Laar constants for the system are : A = %f \\t B = %f '%(A,B)\n",
+ "print 'The activity coefficients for the system using van laar equation are\\\n",
+ " : gamma1 = %f \\t gamma2 = %f \\t '%( gaamma1,gaamma2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The van Laar constants for the system are : A = 1.910203 \t B = 1.328457 \n",
+ "The activity coefficients for the system using van laar equation are : gamma1 = 4.137783 \t gamma2 = 1.025531 \t \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.9 Page No : 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "\n",
+ "T = 45. \t\t\t #temperature of the system in degree celsius\n",
+ "A_12 = 0.1156;\t\t\t #Wilson's parameter for the system at T (no unit)\n",
+ "A_21 = 0.2879;\t\t\t #Wilson's parameter for the system at T (no unit)\n",
+ "x1 = 0.3;\t \t\t #mole fraction of nitromethane in the liquid mixture (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 1-x1\n",
+ "ln_gaamma1 = -math.log(x1+(A_12*x2))+(x2*((A_12/(x1+(A_12*x2)))-(A_21/((A_21*x1)+x2))));\t\t\t\n",
+ "gaamma1 = math.exp(ln_gaamma1)\n",
+ "ln_gaamma2 = -math.log(x2+(A_21*x1))-(x1*((A_12/(x1+(A_12*x2)))-(A_21/((A_21*x1)+x2))));\t\t\t # Calculations of ln(activity coefficient) using Eq.(11.90) (no unit)\n",
+ "gaamma2 = math.exp(ln_gaamma2)\n",
+ "\n",
+ "# Results\n",
+ "print 'The activity coefficients for the system using Wilsons parameters are : gamma1 = %f \\\n",
+ " \\t gamma2 = %f \\t '%( gaamma1,gaamma2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The activity coefficients for the system using Wilsons parameters are : gamma1 = 2.512605 \t gamma2 = 1.295788 \t \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.10 Page No : 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 345.\t\t\t #temperature of the mixture in K\n",
+ "x1 = 0.8\t\t\t #mole fraction of ethanol in the liquid phase (no unit)\n",
+ "\n",
+ "nu_ki = [1,1,1,6]\t\t\t #number of groups of type: CH3, CH2, OH and ACH respectively (no unit)\n",
+ "R_k = [0.9011,0.6744,1.0000,0.5313];\t\t\t #Group volume parameter for CH3, CH2, OH and ACH respectively (no unit)\n",
+ "Q_k = [0.848,0.540,1.200,0.400];\t\t\t #Area parameter for CH3, CH2, OH and ACH respectively (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "u12_u22 = -241.2287;\t\t#UNIQUAC parameter for the system in J/molK\n",
+ "u21_u11 = 2799.5827;\t\t#UNIQUAC parameter for the system in J/molK\n",
+ "z = 10. \t\t\t #co-ordination number usually taken as 10 (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 1-x1\n",
+ "r1 = (nu_ki[0]*R_k[0])+(nu_ki[1]*R_k[1])+(nu_ki[2]*R_k[2]);\t\t\t \n",
+ "r2 = (nu_ki[3]*R_k[3])\n",
+ "phi1 = (x1*r1)/((x1*r1)+(x2*r2));\t\t\t \n",
+ "phi2 = (x2*r2)/((x2*r2)+(x1*r1));\t\t\t \n",
+ "q1 = (nu_ki[0]*Q_k[0])+(nu_ki[1]*Q_k[1])+(nu_ki[2]*Q_k[2])\t\t\t \n",
+ "q2 = (nu_ki[3]*Q_k[3])\t\t\t\n",
+ "theta1 = (x1*q1)/((x1*q1)+(x2*q2))\n",
+ "theta2 = (x2*q2)/((x1*q1)+(x2*q2))\n",
+ "l1 = ((z/2)*(r1-q1))-(r1-1);\t\t\n",
+ "l2 = ((z/2)*(r2-q2))-(r2-1);\t\t\n",
+ "tau_12 = math.exp(-(u12_u22)/(R*T));\t\t\n",
+ "tau_21 = math.exp(-(u21_u11)/(R*T));\t\t\n",
+ "tau_11 = 1.0;\t\t\t \n",
+ "tau_22 = 1.0;\t\t\t \n",
+ "\n",
+ "ln_gaamma1_c = math.log(phi1/x1)+((z/2)*q1*math.log(theta1/phi1))+l1-((phi1/x1)*((x1*l1)+(x2*l2)));\n",
+ "ln_gaamma2_c = math.log(phi2/x2)+((z/2)*q2*math.log(theta2/phi2))+l2-((phi2/x2)*((x1*l1)+(x2*l2)));\n",
+ "ln_gaamma1_r = q1*(1-math.log((theta1*tau_11)+(theta2*tau_21))-(((theta1*tau_11)/((theta1*tau_11)+(theta2*tau_21)))+((theta2*tau_12)/((theta1*tau_12)+(theta2*tau_22)))));\n",
+ "ln_gaamma2_r = q2*(1-math.log((theta1*tau_12)+(theta2*tau_22))-(((theta1*tau_21)/((theta1*tau_11)+(theta2*tau_21)))+((theta2*tau_22)/((theta1*tau_12)+(theta2*tau_22)))));\n",
+ "ln_gaamma1 = ln_gaamma1_c+ln_gaamma1_r\n",
+ "ln_gaamma2 = ln_gaamma2_c+ln_gaamma2_r\n",
+ "gaamma1 = math.exp(ln_gaamma1);\t\t\t \n",
+ "gaamma2 = math.exp(ln_gaamma2);\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print 'The activity coefficients for the system using the UNIQUAC equation are : gamma1 \\\n",
+ " = %f \\t gamma2 = %f \\t '%( gaamma1,gaamma2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The activity coefficients for the system using the UNIQUAC equation are : gamma1 = 1.060567 \t gamma2 = 3.679066 \t \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.11 Page No : 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 307.\t\t\t #temperature of the mixture in K\n",
+ "x1 = 0.3\t\t\t #mole fraction of acetone in the liquid phase (no unit)\n",
+ "\n",
+ "nu_ki = [1.,1.,2.,3.]\n",
+ "R_k = [0.9011,1.6724,0.6744]\n",
+ "Q_k = [0.848,1.488,0.540];\t\t\t \n",
+ "a_19 = 476.40;\t\t\t #group interaction parameter for the system in K\n",
+ "a_91 = 26.760;\t\t\t #group interaction parameter for the system in K\n",
+ "z = 10. \t\t\t #co-ordination number usually taken as 10 (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 1-x1;\t\t\t # Calculations of mole fraction of benzene in liquid phase (no unit)\n",
+ "r1 = (nu_ki[0]*R_k[0])+(nu_ki[1]*R_k[1])\n",
+ "r2 = (nu_ki[2]*R_k[0])+(nu_ki[3]*R_k[2])\n",
+ "phi1 = (x1*r1)/((x1*r1)+(x2*r2))\n",
+ "phi2 = (x2*r2)/((x2*r2)+(x1*r1))\n",
+ "q1 = (nu_ki[0]*Q_k[0])+(nu_ki[1]*Q_k[1])\t\t\t\n",
+ "q2 = (nu_ki[2]*Q_k[0])+(nu_ki[3]*Q_k[2])\n",
+ "theta1 = (x1*q1)/((x1*q1)+(x2*q2));\n",
+ "theta2 = (x2*q2)/((x1*q1)+(x2*q2));\n",
+ "l1 = ((z/2)*(r1-q1))-(r1-1);\t\t\n",
+ "l2 = ((z/2)*(r2-q2))-(r2-1);\t\t\n",
+ "ln_gaamma1_c = math.log(phi1/x1)+((z/2)*q1*math.log(theta1/phi1))+l1-((phi1/x1)*((x1*l1)+(x2*l2)));\n",
+ "ln_gaamma2_c = math.log(phi2/x2)+((z/2)*q2*math.log(theta2/phi2))+l2-((phi2/x2)*((x1*l1)+(x2*l2)));\n",
+ "a_11 = 0.\n",
+ "a_99 = 0.\n",
+ "psi_19 = math.exp(-(a_19)/(T));\t\t\t\n",
+ "psi_91 = math.exp(-(a_91)/(T));\t\t\t\n",
+ "psi_11 = 1.;\t\t\t \n",
+ "psi_99 = 1.;\t\t\t \n",
+ "x1_1 = nu_ki[0]/(nu_ki[0]+nu_ki[1]);\t\t\t\n",
+ "x1_18 = nu_ki[1]/(nu_ki[0]+nu_ki[1]);\t\t\n",
+ "theta1_1 = (Q_k[0]*x1_1)/((Q_k[0]*x1_1)+(Q_k[1]*x1_18))\n",
+ "theta1_18 = (Q_k[1]*x1_18)/((Q_k[1]*x1_18)+(Q_k[0]*x1_1))\n",
+ "ln_tau1_1 = Q_k[0]*(1-math.log((theta1_1*psi_11)+(theta1_18*psi_91))-(((theta1_1*psi_11)/((theta1_1*psi_11)+(theta1_18*psi_91)))+((theta1_18*psi_19)/((theta1_1*psi_19)+(theta1_18*psi_11)))));\n",
+ "ln_tau1_18 = Q_k[1]*(1-math.log((theta1_1*psi_19)+(theta1_18*psi_99))-(((theta1_1*psi_91)/((theta1_1*psi_99)+(theta1_18*psi_91)))+((theta1_18*psi_99)/((theta1_1*psi_19)+(theta1_18*psi_99)))));\n",
+ "x2_1 = nu_ki[2]/(nu_ki[2]+nu_ki[3]);\t\t\t \n",
+ "x2_2 = nu_ki[3]/(nu_ki[2]+nu_ki[3]);\t\t\t \n",
+ "ln_tau2_1 = 0;\n",
+ "ln_tau2_2 = 0;\n",
+ "x_1 = ((x1*nu_ki[0])+(x2*nu_ki[2]))/((((x1*nu_ki[0])+(x1*nu_ki[1])))+((x2*nu_ki[2])+(x2*nu_ki[3])));\n",
+ "x_2 = ((x2*nu_ki[3]))/((((x1*nu_ki[0])+(x1*nu_ki[1])))+((x2*nu_ki[2])+(x2*nu_ki[3])));\n",
+ "x_18 = ((x1*nu_ki[1]))/((((x1*nu_ki[0])+(x1*nu_ki[1])))+((x2*nu_ki[2])+(x2*nu_ki[3])));\n",
+ "theta_1 = (Q_k[0]*x_1)/((Q_k[0]*x_1)+(Q_k[1]*x_18)+(Q_k[2]*x_2));\t\t\t\n",
+ "theta_2 = (Q_k[2]*x_2)/((Q_k[0]*x_1)+(Q_k[1]*x_18)+(Q_k[2]*x_2));\t\t\t\n",
+ "theta_18 = (Q_k[1]*x_18)/((Q_k[0]*x_1)+(Q_k[1]*x_18)+(Q_k[2]*x_2));\t\t\t\n",
+ "ln_tau_1 = Q_k[0]*(1-math.log((theta_1*psi_11)+(theta_2*psi_11)+(theta_18*psi_91))-((((theta_1*psi_11)+(theta_2*psi_11))/((((theta_1*psi_11)+(theta_2*psi_11))+(theta_18*psi_91)))+((theta_18*psi_19)/((theta_1*psi_19)+(theta_2*psi_19)+(theta_18*psi_11))))));\n",
+ "ln_tau_2 = Q_k[2]*(1-math.log((theta_1*psi_11)+(theta_2*psi_11)+(theta_18*psi_91))-((((theta_1*psi_11)+(theta_2*psi_11))/((((theta_1*psi_11)+(theta_2*psi_11))+(theta_18*psi_91)))+((theta_18*psi_19)/((theta_1*psi_19)+(theta_2*psi_19)+(theta_18*psi_11))))));\n",
+ "ln_tau_18 = Q_k[1]*(1-math.log((theta_1*psi_19)+(theta_2*psi_19)+(theta_18*psi_99))-(((((theta_1+theta_2)*psi_91)/((theta_1*psi_11)+(theta_2*psi_11)+(theta_18*psi_91)))+((theta_18*psi_99)/((theta_1*psi_19)+(theta_2*psi_19)+(theta_18*psi_11))))));\n",
+ "ln_gaamma1_r = (nu_ki[0]*(ln_tau_1-ln_tau1_1))+(nu_ki[1]*(ln_tau_18-ln_tau1_18));\n",
+ "ln_gaamma2_r = (nu_ki[2]*(ln_tau_1-ln_tau2_1))+(nu_ki[3]*(ln_tau_2-ln_tau2_2));\n",
+ "ln_gaamma1 = ln_gaamma1_c+ln_gaamma1_r\n",
+ "ln_gaamma2 = ln_gaamma2_c+ln_gaamma2_r\n",
+ "gaamma1 = math.exp(ln_gaamma1);\t\t\t\n",
+ "gaamma2 = math.exp(ln_gaamma2);\t\t\t\n",
+ "\n",
+ "# Results\n",
+ "print 'The activity coefficients for the system using the UNIFAC method are\\\n",
+ " : gamma1 = %f \\t gamma2 = %f \\t '%( gaamma1,gaamma2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The activity coefficients for the system using the UNIFAC method are : gamma1 = 2.149891 \t gamma2 = 1.191192 \t \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch12.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch12.ipynb
new file mode 100755
index 00000000..fe626468
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch12.ipynb
@@ -0,0 +1,716 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Vapor liquid Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Page No : 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "\n",
+ "# Variables\n",
+ "T = 60.\t\t\t #temperature of the system in degree celsius\n",
+ "P = [237.60,265.20,317.50,333.00,368.70,387.20];\t\t\t #Pressure data in Torr (from Danneil et al.)\n",
+ "x1 = [0.0870,0.1800,0.4040,0.4790,0.7130,0.9070];\t\t\t #mole fraction of benzene in the liquid phase corresponding to the given pressure (no unit) (from Danneil et al.)\n",
+ "y1 = [0.1870,0.3400,0.5780,0.6420,0.7960,0.9220];\t\t\t #mole fraction of benzene in the vapour phase corresponding to the given pressure (no unit) (from Danneil et al.)\n",
+ "antoine_const_benzene = [6.87987,1196.760,219.161];\t\t\t #Antoine's constants for Benzene from Table A.7\n",
+ "antoine_const_heptane = [6.89386,1264.370,216.640];\t\t\t #Antoine's constants for heptane from Table A.7\n",
+ "\n",
+ "# Calculations\n",
+ "P1_s = 10**(antoine_const_benzene[0]-(antoine_const_benzene[1]/(T+antoine_const_benzene[2])));\n",
+ "P2_s = 10**(antoine_const_heptane[0]-(antoine_const_heptane[1]/(T+antoine_const_heptane[2])));\n",
+ "l = len(P);\t\t\t #iteration parameter\n",
+ "i = 0;\t\t\t #iteration parameter\n",
+ "gaamma1 = zeros(l)\n",
+ "gaamma2 = zeros(l)\n",
+ "ln_gaamma1_expt = zeros(l)\n",
+ "ln_gaamma2_expt = zeros(l)\n",
+ "gE_RTx1x2 = zeros(l)\n",
+ "while i<l:\n",
+ " gaamma1[i] = (y1[i]*P[i])/(x1[i]*P1_s);\t\t\n",
+ " gaamma2[i] = ((1-y1[i])*P[i])/((1-x1[i])*P2_s);\n",
+ " ln_gaamma1_expt[i] = math.log(gaamma1[i]);\n",
+ " ln_gaamma2_expt[i] = math.log(gaamma2[i]);\n",
+ " gE_RTx1x2[i] = ((x1[i]*ln_gaamma1_expt[i])+((1-x1[i])*ln_gaamma2_expt[i]))/(x1[i]*(1-x1[i]));\t\t\t # Calculations of gE/RT using Eq.(11.36) (no unit)\n",
+ " i = i+1;\n",
+ "\n",
+ "plot(x1,gE_RTx1x2,'o');\t\t\n",
+ "suptitle('Plot of gE/RTx1x2 vs x1')\n",
+ "xlabel('x1')\n",
+ "ylabel('gE/RTx1x2');\n",
+ "A21 = 0.555\n",
+ "A12 = 0.315\n",
+ "j = 0\n",
+ "ln_gaamma1 = zeros(l)\n",
+ "ln_gaamma2 = zeros(l)\n",
+ "P_calc = zeros(l)\n",
+ "y1_calc = zeros(l)\n",
+ "gaamma1 = zeros(l)\n",
+ "gaamma2 = zeros(l)\n",
+ "while j<l:\n",
+ " ln_gaamma1[j] = ((1-x1[j])**2)*(A12+(2*(A21-A12)*x1[j]));\n",
+ " ln_gaamma2[j] = (x1[j]**2)*(A21+(2*(A12-A21)*(1-x1[j])));\n",
+ " gaamma1[j] = math.exp(ln_gaamma1[j])\n",
+ " gaamma2[j] = math.exp(ln_gaamma2[j])\n",
+ " P_calc[j] = (gaamma1[j]*x1[j]*P1_s)+(gaamma2[j]*(1-x1[j])*P2_s)\n",
+ " y1_calc[j] = (gaamma1[j]*x1[j]*P1_s)/P[j];\t\t\t \n",
+ " j = j+1;\n",
+ "\n",
+ "# Results\n",
+ "print 'Data for the plot of gE/RTx1x2 vs x1: ';\n",
+ "\n",
+ "for i in range(l):\n",
+ " print 'P = %f Torr\\t x1 = %f\\t y1 = %f \\t lngamma1) = %f\\t\\t lngamma2) =\\\n",
+ " %f\\t\\t gE/RTx1x2 = %f'%(P[i],x1[i],y1[i],ln_gaamma1_expt[i],ln_gaamma2_expt[i],gE_RTx1x2[i]);\n",
+ "\n",
+ "print 'Results: ';\n",
+ "for i in range(l):\n",
+ " print 'x1 = %f \\t gamma1 = %f \\t gamma2 = %f \\t P_Exptl. = %f \\\n",
+ " Torr\\t P_Calc = %f Torr\\t y1_Exptl = %f \\t y1_calc = %f '%(x1[i],gaamma1[i],gaamma2[i],P[i],P_calc[i],y1[i],y1_calc[i]);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Data for the plot of gE/RTx1x2 vs x1: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "P = 237.600000 Torr\t x1 = 0.087000\t y1 = 0.187000 \t lngamma1) = 0.265459\t\t lngamma2) = 0.004741\t\t gE/RTx1x2 = 0.345243\n",
+ "P = 265.200000 Torr\t x1 = 0.180000\t y1 = 0.340000 \t lngamma1) = 0.246143\t\t lngamma2) = 0.013576\t\t gE/RTx1x2 = 0.375599\n",
+ "P = 317.500000 Torr\t x1 = 0.404000\t y1 = 0.578000 \t lngamma1) = 0.148307\t\t lngamma2) = 0.065399\t\t gE/RTx1x2 = 0.410716\n",
+ "P = 333.000000 Torr\t x1 = 0.479000\t y1 = 0.642000 \t lngamma1) = 0.130700\t\t lngamma2) = 0.083082\t\t gE/RTx1x2 = 0.424313\n",
+ "P = 368.700000 Torr\t x1 = 0.713000\t y1 = 0.796000 \t lngamma1) = 0.049771\t\t lngamma2) = 0.218778\t\t gE/RTx1x2 = 0.480259\n",
+ "P = 387.200000 Torr\t x1 = 0.907000\t y1 = 0.922000 \t lngamma1) = 0.005014\t\t lngamma2) = 0.433207\t\t gE/RTx1x2 = 0.531539\n",
+ "Results: \n",
+ "x1 = 0.087000 \t gamma1 = 1.346332 \t gamma2 = 1.000884 \t P_Exptl. = 237.600000 Torr\t P_Calc = 238.297793 Torr\t y1_Exptl = 0.187000 \t y1_calc = 0.193066 \n",
+ "x1 = 0.180000 \t gamma1 = 1.309835 \t gamma2 = 1.005243 \t P_Exptl. = 265.200000 Torr\t P_Calc = 265.912990 Torr\t y1_Exptl = 0.340000 \t y1_calc = 0.348175 \n",
+ "x1 = 0.404000 \t gamma1 = 1.198147 \t gamma2 = 1.044870 \t P_Exptl. = 317.500000 Torr\t P_Calc = 320.705660 Torr\t y1_Exptl = 0.578000 \t y1_calc = 0.597076 \n",
+ "x1 = 0.479000 \t gamma1 = 1.159413 \t gamma2 = 1.072467 \t P_Exptl. = 333.000000 Torr\t P_Calc = 335.157916 Torr\t y1_Exptl = 0.642000 \t y1_calc = 0.653147 \n",
+ "x1 = 0.713000 \t gamma1 = 1.055628 \t gamma2 = 1.236286 \t P_Exptl. = 368.700000 Torr\t P_Calc = 369.484272 Torr\t y1_Exptl = 0.796000 \t y1_calc = 0.799482 \n",
+ "x1 = 0.907000 \t gamma1 = 1.006511 \t gamma2 = 1.521729 \t P_Exptl. = 387.200000 Torr\t P_Calc = 387.326500 Torr\t y1_Exptl = 0.922000 \t y1_calc = 0.923362 \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2dcf110>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No : 430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "# Variables\n",
+ "T = 25. \t\t\t #temperature of the system in degree celsius\n",
+ "A12 = 2.0522;\t\t\t #three suffix Margules parameters for the system (no unit)\n",
+ "A21 = 1.7201;\t\t\t #three suffix Margules parameters for the system (no unit)\n",
+ "P = [118.05,207.70,246.35,259.40,261.50,262.00,261.90,258.70,252.00];\t\t\t #Pressure data in Torr (from Tasic et al.)\n",
+ "x1 = [0.0115,0.1125,0.3090,0.5760,0.6920,0.7390,0.7575,0.8605,0.9250];\n",
+ "y1 = [0.1810,0.5670,0.6550,0.7050,0.7250,0.7390,0.7460,0.8030,0.8580];\n",
+ "antoine_const_acetone = [7.11714,1210.595,229.664];\t\t\t #Antoine's constants for acetone from Table A.7\n",
+ "antoine_const_chexane = [6.85146,1206.470,223.136];\t\t\t #Antoine's constants for cyclohexane from Table A.7\n",
+ "\n",
+ "# Calculations\n",
+ "P1_s = 10**(antoine_const_acetone[0]-(antoine_const_acetone[1]/(T+antoine_const_acetone[2])));\n",
+ "P2_s = 10**(antoine_const_chexane[0]-(antoine_const_chexane[1]/(T+antoine_const_chexane[2])));\n",
+ "\n",
+ "l = len(P)\n",
+ "ln_gaamma1 = zeros(l)\n",
+ "ln_gaamma2 = zeros(l)\n",
+ "gaamma1 = zeros(l)\n",
+ "gaamma2 = zeros(l)\n",
+ "P = zeros(l)\n",
+ "y1_calc = zeros(l)\n",
+ "j = 0;\t\n",
+ "\n",
+ "while j<l:\n",
+ " ln_gaamma1[j] = ((1-x1[j])**2)*(A12+(2*(A21-A12)*x1[j]));\t\n",
+ " ln_gaamma2[j] = (x1[j]**2)*(A21+(2*(A12-A21)*(1-x1[j])));\t\n",
+ " gaamma1[j] = math.exp(ln_gaamma1[j]);\t\t\t \n",
+ " gaamma2[j] = math.exp(ln_gaamma2[j]);\t\t\t \n",
+ " P[j] = (gaamma1[j]*x1[j]*P1_s)+(gaamma2[j]*(1-x1[j])*P2_s)\n",
+ " y1_calc[j] = (gaamma1[j]*x1[j]*P1_s)/P[j];\t\t\t \n",
+ " j = j+1;\n",
+ "\n",
+ "# Results\n",
+ "print 'P-x-y data: ';\n",
+ "print 'x1 \\t gamma1\\t gamma2 \\t P Torr \\t y1 ';\n",
+ "for i in range(l):\n",
+ " print '%0.4f \\t %f \\t %f \\t %f \\t %f '%(x1[i],gaamma1[i],gaamma2[i],P[i],y1_calc[i])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P-x-y data: \n",
+ "x1 \t gamma1\t gamma2 \t P Torr \t y1 \n",
+ "0.0115 \t 7.372871 \t 1.000314 \t 116.059350 \t 0.168694 \n",
+ "0.1125 \t 4.747283 \t 1.029662 \t 212.486878 \t 0.580377 \n",
+ "0.3090 \t 2.415459 \t 1.231286 \t 255.363338 \t 0.674908 \n",
+ "0.5760 \t 1.350072 \t 1.942786 \t 259.940648 \t 0.690796 \n",
+ "0.6920 \t 1.163087 \t 2.513451 \t 261.385489 \t 0.711020 \n",
+ "0.7390 \t 1.112223 \t 2.812451 \t 261.416681 \t 0.726019 \n",
+ "0.7575 \t 1.095373 \t 2.942991 \t 261.232545 \t 0.733436 \n",
+ "0.8605 \t 1.029233 \t 3.827737 \t 256.608420 \t 0.796964 \n",
+ "0.9250 \t 1.008121 \t 4.546617 \t 248.599211 \t 0.866162 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.4 Page No : 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 25. \t\t\t #temperature of the system in degree celsius\n",
+ "A = 2.0684;\t\t\t #the van Laar parameters for the system (no unit)\n",
+ "B = 1.7174;\t\t\t #the van Laar parameters for the system (no unit)\n",
+ "P = [118.05,207.70,246.35,259.40,261.50,262.00,261.90,258.70,252.00];\t\t\t #Pressure data in Torr (from Tasic et al.)\n",
+ "x1 = [0.0115,0.1125,0.3090,0.5760,0.6920,0.7390,0.7575,0.8605,0.9250];\n",
+ "y1 = [0.1810,0.5670,0.6550,0.7050,0.7250,0.7390,0.7460,0.8030,0.8580];\n",
+ "antoine_const_acetone = [7.11714,1210.595,229.664];\t\t\t #Antoine's constants for acetone from Table A.7\n",
+ "antoine_const_chexane = [6.85146,1206.470,223.136];\t\t\t #Antoine's constants for cyclohexane from Table A.7\n",
+ "\n",
+ "# Calculations\n",
+ "P1_s = 10**(antoine_const_acetone[0]-(antoine_const_acetone[1]/(T+antoine_const_acetone[2])))\n",
+ "P2_s = 10**(antoine_const_chexane[0]-(antoine_const_chexane[1]/(T+antoine_const_chexane[2])));\n",
+ "l = len(P)\n",
+ "j = 0\n",
+ "while j<l:\n",
+ " ln_gaamma1[j] = A/(1+((A*x1[j])/(B*(1-x1[j]))))**2\n",
+ " ln_gaamma2[j] = B/(1+((B*(1-x1[j]))/(A*x1[j])))**2\n",
+ " gaamma1[j] = math.exp(ln_gaamma1[j]);\t\t\t\n",
+ " gaamma2[j] = math.exp(ln_gaamma2[j]);\t\t\t\n",
+ " P[j] = (gaamma1[j]*x1[j]*P1_s)+(gaamma2[j]*(1-x1[j])*P2_s)\n",
+ " y1_calc[j] = (gaamma1[j]*x1[j]*P1_s)/P[j];\t\t\t \n",
+ " j = j+1;\n",
+ "\n",
+ "# Results\n",
+ "print 'P-x-y data: ';\n",
+ "i = 0;\n",
+ "print 'x1 \\t gamma1 \\t gamma2 \\t PTorr \\t y1 ';\n",
+ "for i in range(l):\n",
+ " print '%0.4f \\t %f \\t %f \\t %f \\t %f '%(x1[i],gaamma1[i],gaamma2[i],P[i],y1_calc[i]);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P-x-y data: \n",
+ "x1 \t gamma1 \t gamma2 \t PTorr \t y1 \n",
+ "0.0115 \t 7.475516 \t 1.000328 \t 116.333233 \t 0.170640 \n",
+ "0.1125 \t 4.743506 \t 1.030586 \t 212.468724 \t 0.579965 \n",
+ "0.3090 \t 2.395936 \t 1.234218 \t 254.168007 \t 0.672601 \n",
+ "0.5760 \t 1.346684 \t 1.937830 \t 259.284960 \t 0.690805 \n",
+ "0.6920 \t 1.162537 \t 2.498302 \t 260.842215 \t 0.712164 \n",
+ "0.7390 \t 1.112211 \t 2.792268 \t 260.900602 \t 0.727447 \n",
+ "0.7575 \t 1.095497 \t 2.920797 \t 260.729035 \t 0.734935 \n",
+ "0.8605 \t 1.029539 \t 3.796506 \t 256.244215 \t 0.798334 \n",
+ "0.9250 \t 1.008263 \t 4.515793 \t 248.404105 \t 0.866965 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No : 435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "\n",
+ "# Variables\n",
+ "P = 760.\t\t\t #pressure in Torr at which chloroform and methanol form an azeotrope\n",
+ "T = 53.5\t\t\t #temperature in degree celsius at which chloroform and methanol form an azeotrope\n",
+ "x1 = 0.65\t\t\t #mole fraction of chloroform in the liquid phase (no unit) (corresponding to azeotropic composition)\n",
+ "antoine_const_chloroform = [6.95465,1170.966,226.232];\t\t\t #Antoine's constants for acetone from Table A.7\n",
+ "antoine_const_methanol = [8.08097,1582.271,239.726];\t\t\t #Antoine's constants for acetone from Table A.7\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 1-x1\n",
+ "P1_s = 10**(antoine_const_chloroform[0]-(antoine_const_chloroform[1]/(T+antoine_const_chloroform[2])));\n",
+ "P2_s = 10**(antoine_const_methanol[0]-(antoine_const_methanol[1]/(T+antoine_const_methanol[2])));\n",
+ "gaamma1 = P/P1_s\n",
+ "gaamma2 = P/P2_s\n",
+ "A = math.log(gaamma1)*(1+((x2*math.log(gaamma2))/(x1*math.log(gaamma1))))**2\n",
+ "B = math.log(gaamma2)*(1+((x1*math.log(gaamma1))/(x2*math.log(gaamma2))))**2\n",
+ "x1 = linspace(0.1,0.9,9)\n",
+ "l = len(x1)\n",
+ "gaamma1 = zeros(l)\n",
+ "gaamma2 = zeros(l)\n",
+ "P = zeros(l) \n",
+ "y1 = zeros(l)\n",
+ "j = 0\n",
+ "while j<l:\n",
+ " ln_gaamma1[j] = A/(1+((A*x1[j])/(B*(1-x1[j]))))**2\n",
+ " ln_gaamma2[j] = B/(1+((B*(1-x1[j]))/(A*x1[j])))**2\n",
+ " gaamma1[j] = math.exp(ln_gaamma1[j]);\t\t\t \n",
+ " gaamma2[j] = math.exp(ln_gaamma2[j]);\t\t\t \n",
+ " P[j] = (gaamma1[j]*x1[j]*P1_s)+(gaamma2[j]*(1-x1[j])*P2_s)\n",
+ " y1[j] = (gaamma1[j]*x1[j]*P1_s)/P[j];\t\t\t \n",
+ " j = j+1;\n",
+ "\n",
+ "# Results\n",
+ "print 'VLE data: ';\n",
+ "print 'x1 \\tgamma1 \\t\\t gamma2 \\t P Torr \\t y1 ';\n",
+ "for i in range(l):\n",
+ " print '%0.1f \\t %f \\t %f \\t %f \\t %f '%(x1[i],gaamma1[i],gaamma2[i],P[i],y1[i]);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "VLE data: \n",
+ "x1 \tgamma1 \t\t gamma2 \t P Torr \t y1 \n",
+ "0.1 \t 2.391069 \t 1.005464 \t 578.375597 \t 0.242663 \n",
+ "0.2 \t 2.151801 \t 1.024547 \t 649.357212 \t 0.389019 \n",
+ "0.3 \t 1.928361 \t 1.062974 \t 699.744047 \t 0.485280 \n",
+ "0.4 \t 1.722251 \t 1.130135 \t 732.594248 \t 0.551969 \n",
+ "0.5 \t 1.535159 \t 1.242383 \t 751.239893 \t 0.599745 \n",
+ "0.6 \t 1.369108 \t 1.430331 \t 759.122391 \t 0.635183 \n",
+ "0.7 \t 1.226766 \t 1.756665 \t 759.153131 \t 0.663976 \n",
+ "0.8 \t 1.112114 \t 2.365222 \t 751.206494 \t 0.695188 \n",
+ "0.9 \t 1.031997 \t 3.639052 \t 721.331744 \t 0.755801 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No : 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "y1 = 0.3;\t\t\t #mole fraction of ethane in the vapour phase (no unit)\n",
+ "T = 30. \t\t\t #temperature in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "y2 = 1-y1\n",
+ "P_guess = 1\n",
+ "K1 = 3.4\n",
+ "K2 = 1.1\n",
+ "x1_calc = y1/K1\n",
+ "x2_calc = y2/K2;\n",
+ "tot = x1_calc+x2_calc\n",
+ "if tot == 1:\n",
+ " P = P_guess\n",
+ " x1 = x1_calc\n",
+ " x2 = x2_calc\n",
+ "else:\n",
+ " P = 1.5\n",
+ " K1 = 2.4\n",
+ " K2 = 0.8\n",
+ " x1 = y1/K1\n",
+ " x2 = y2/K2\n",
+ "\n",
+ "# Results\n",
+ "print 'The Dew pressure and the liquid composition of a binary vapour mixture of\\\n",
+ " ethane and propane was found to be P = %0.2f MPa\\t x1 = %0.3f\\t x2 = %0.3f \\t'%(P,x1,x2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Dew pressure and the liquid composition of a binary vapour mixture of ethane and propane was found to be P = 1.50 MPa\t x1 = 0.125\t x2 = 0.875 \t\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No : 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "x1 = 0.4;\t\t\t #mole fraction of ethane in the liquid phase (no unit)\n",
+ "P = 1.5;\t\t\t #pressure in MPa\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 1-x1\n",
+ "t_guess = 10.\n",
+ "K1 = 1.8;\t\n",
+ "K2 = 0.5;\t\n",
+ "y1_calc = K1*x1\n",
+ "y2_calc = K2*x2\n",
+ "tot = y1_calc+y2_calc\n",
+ "if tot == 1:\n",
+ " t = t_guess\n",
+ " y1 = y1_calc\n",
+ " y2 = y2_calc\n",
+ "else:\n",
+ " t = 9.\n",
+ " K1 = 1.75\n",
+ " K2 = 0.5;\n",
+ " y1 = K1*x1\n",
+ " y2 = K2*x2\n",
+ "\n",
+ "# Results\n",
+ "print 'The bubble temperature and the vapour composition of a binary vapour mixture\\\n",
+ " of ethane and propane was found to be t = %d degree celsius y1 = %f\\t y2 = %f\\t'%(t,y1,y2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The bubble temperature and the vapour composition of a binary vapour mixture of ethane and propane was found to be t = 9 degree celsius y1 = 0.700000\t y2 = 0.300000\t\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No : 449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "%matplotlib inline\n",
+ "# Variables\n",
+ "P = [350.00,446.00,518.00,574.50,609.00,632.50,665.00,681.50,691.50]\n",
+ "x1 = [0.0550,0.1290,0.2120,0.3130,0.4300,0.5200,0.6380,0.7490,0.8720]\n",
+ "y1 = [0.3500,0.5110,0.5990,0.6500,0.6970,0.7260,0.7590,0.8130,0.8830]\n",
+ "antoine_const_propanol = [8.37895,1788.020,227.438];\t\t\t \n",
+ "antoine_const_cbenzene = [7.17294,1549.200,229.260];\t\t\t \n",
+ "T = 95.\t\t\t #temperature of the system in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "P1_s = 10**(antoine_const_propanol[0]-(antoine_const_propanol[1]/(T+antoine_const_propanol[2])));\n",
+ "P2_s = 10**(antoine_const_cbenzene[0]-(antoine_const_cbenzene[1]/(T+antoine_const_cbenzene[2])));\n",
+ "l = len(P)\n",
+ "lngamma1_gamma2 = zeros(l)\n",
+ "gaamma1 = zeros(l)\n",
+ "gaamma2 = zeros(l)\n",
+ "i = 0\n",
+ "while i<l:\n",
+ " gaamma1[i] = (y1[i]*P[i])/(x1[i]*P1_s)\n",
+ " gaamma2[i] = ((1-y1[i])*P[i])/((1-x1[i])*P2_s)\n",
+ " lngamma1_gamma2[i] = math.log(gaamma1[i]/gaamma2[i])\n",
+ " i = i+1;\n",
+ "\n",
+ "plot(x1,lngamma1_gamma2);\n",
+ "suptitle('Plot of ln(gamma1/gamma2) vs x1')\n",
+ "xlabel('x1')\n",
+ "ylabel('ln(gamma1/gamma2)');\n",
+ "area_above = 1515.\n",
+ "area_below = 1540.\n",
+ "consistency_parameter = abs((area_above-area_below)/(area_above+area_below));\t\t\t\n",
+ "\n",
+ "# Results\n",
+ "print 'Values of lngamma1./gamma2: ';\n",
+ "print 'x1 \\t gamma1 \\t gamma2 \\t lngamma1./gamma2';\n",
+ "\n",
+ "for i in range(l):\n",
+ " print '%0.4f \\t %f \\t %f \\t %f '%(x1[i],gaamma1[i],gaamma2[i],lngamma1_gamma2[i]);\n",
+ "\n",
+ "print 'The value of the consistency parameter = %f'%(consistency_parameter);\n",
+ "if consistency_parameter<0.02 or consistency_parameter == 0.02:\n",
+ " print 'The VLE data is thermodynamically consistent';\n",
+ "else:\n",
+ " print 'The VLE data is not thermodynamically consistent';\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Values of lngamma1./gamma2: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "x1 \t gamma1 \t gamma2 \t lngamma1./gamma2\n",
+ "0.0550 \t 3.266913 \t 0.968851 \t 1.215489 \n",
+ "0.1290 \t 2.591375 \t 1.007704 \t 0.944514 \n",
+ "0.2120 \t 2.146767 \t 1.060854 \t 0.704889 \n",
+ "0.3130 \t 1.749940 \t 1.177901 \t 0.395847 \n",
+ "0.4300 \t 1.447924 \t 1.302845 \t 0.105581 \n",
+ "0.5200 \t 1.295263 \t 1.453040 \t -0.114944 \n",
+ "0.6380 \t 1.160398 \t 1.781713 \t -0.428812 \n",
+ "0.7490 \t 1.085022 \t 2.043343 \t -0.632987 \n",
+ "0.8720 \t 1.027071 \t 2.543757 \t -0.906931 \n",
+ "The value of the consistency parameter = 0.008183\n",
+ "The VLE data is thermodynamically consistent\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['f', 'draw_if_interactive', 'new_figure_manager', 'test']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x39ce190>"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No : 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "%matplotlib inline\n",
+ "# Variables\n",
+ "\n",
+ "P = 760.\t\t\t #pressure of the system in Torr\n",
+ "antoine_const_benzene = [6.87987,1196.760,219.161];\t\t\t #Antoine's constants for Benzene from Table A.7\n",
+ "t = linspace(60,100,9);\t\t\t #temperature range in degree celsius\n",
+ "\n",
+ "P2_s = [149.40,187.58,233.71,289.13,355.21,433.51,525.84,634.00,760.00];\n",
+ "x1 = linspace(0,1,6)\n",
+ "\n",
+ "# Calculations\n",
+ "l = len(t)\n",
+ "i = 0\n",
+ "P1_s = zeros(l)\n",
+ "P_tot = zeros(l)\n",
+ "\n",
+ "while i<l:\n",
+ " P1_s[i] = 10**(antoine_const_benzene[0]-(antoine_const_benzene[1]/(t[i]+antoine_const_benzene[2])));\n",
+ " P_tot[i] = P1_s[i]+P2_s[i];\n",
+ " i = i+1;\n",
+ "\n",
+ "T = (((t[2]-t[1])*(760-P_tot[1]))/(P_tot[2]-P_tot[1]))+t[1]\n",
+ "\n",
+ "P1_s_three_phase = 10**(antoine_const_benzene[0]-(antoine_const_benzene[1]/(T+antoine_const_benzene[2])));\n",
+ "P2_s_three_phase = 760-P1_s_three_phase;\n",
+ "y1_three_phase = P1_s_three_phase/760\n",
+ "\n",
+ "trange1 = linspace(T,T+11,11)\n",
+ "n = len(trange1)\n",
+ "i = 0\n",
+ "y1 = zeros(n)\n",
+ "P1_s_calc = zeros(n)\n",
+ "while i<n:\n",
+ " if i == 1:\n",
+ " y1[i] = y1_three_phase\n",
+ " else:\n",
+ " P1_s_calc[i] = 10**(antoine_const_benzene[0]-(antoine_const_benzene[1]/(trange1[i]+antoine_const_benzene[2])));\n",
+ " y1[i] = (P1_s_calc[i])/P\n",
+ " i = i+1;\n",
+ "\n",
+ "trange2 = [70,75,80,85,90,95,100]\n",
+ "P2_s_range = [233.71,289.13,355.21,433.51,525.84,634.00,760.00]\n",
+ "p = len(trange2);\t\t\t\n",
+ "i = 0\n",
+ "y_one = zeros(p)\n",
+ "# Calculations of the vapour composition of benzene in the two phase region (L2+V) using Eq.(12.61) (no unit)\n",
+ "y_one[i] = y1_three_phase;\n",
+ "trange2[i] = T;\n",
+ "i = i+1;\n",
+ "\n",
+ "while i<p:\n",
+ " y_one[i] = (P-P2_s_range[i])/P;\n",
+ " i = i+1;\n",
+ "k=len(x1) \n",
+ "t_3phase = zeros(k)\n",
+ "i = 0\n",
+ "k = len(x1)\n",
+ "while i<k:\n",
+ " t_3phase[i] = T\n",
+ " i = i+1;\n",
+ "\n",
+ "# Results\n",
+ "plot(y1,trange1);\n",
+ "plot(y_one,trange2);\n",
+ "plot(x1,t_3phase);\n",
+ "suptitle('t-x-y diagram for benzene-water sytem at 760 Torr')\n",
+ "xlabel('x1,y1')\n",
+ "ylabel('t (degree celsius)');\n",
+ "q = len(t)\n",
+ "i = 1;\t\t\n",
+ "print ' Calculationss performed for determining the three phase equilibrium temperature';\n",
+ "print 'tdegree celsius \\t P1_s Torr \\t P2_s Torr \\t P1_s+P2_s Torr ';\n",
+ "for i in range(q):\n",
+ " print '%d \\t \\t \\t %.2f \\t %0.2f \\t %.2f '%(t[i],P1_s[i],P2_s[i],P_tot[i]);\n",
+ "\n",
+ "print 'The three phase equilibrium temperature = %0.2f degree celsius '%(T);\n",
+ "print 'The vapour phase composition of benzene at the three phase equilibrium point = %0.4f '%(y1_three_phase);\n",
+ "\n",
+ "# Note: answer are slightly different because of rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ " Calculationss performed for determining the three phase equilibrium temperature"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "tdegree celsius \t P1_s Torr \t P2_s Torr \t P1_s+P2_s Torr \n",
+ "60 \t \t \t 391.63 \t 149.40 \t 541.03 \n",
+ "65 \t \t \t 465.92 \t 187.58 \t 653.50 \n",
+ "70 \t \t \t 550.98 \t 233.71 \t 784.69 \n",
+ "75 \t \t \t 647.87 \t 289.13 \t 937.00 \n",
+ "80 \t \t \t 757.67 \t 355.21 \t 1112.88 \n",
+ "85 \t \t \t 881.54 \t 433.51 \t 1315.05 \n",
+ "90 \t \t \t 1020.65 \t 525.84 \t 1546.49 \n",
+ "95 \t \t \t 1176.21 \t 634.00 \t 1810.21 \n",
+ "100 \t \t \t 1349.47 \t 760.00 \t 2109.47 \n",
+ "The three phase equilibrium temperature = 69.06 degree celsius \n",
+ "The vapour phase composition of benzene at the three phase equilibrium point = 0.7028 \n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['draw_if_interactive']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEhCAYAAABlUDcAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVNX/x/HXgBvuC7ghYqIossgIboWKqeCemoYL5pJa\nLmnZ17Llm2hatllaRu4VlLnglgtfxcRccgOVzMQNUzQVREMFReD8/phfk8QY68xl+TwfDx4PZrn3\nvufAzGfOPfeeq1NKKYQQQoh/sNI6gBBCiKJJCoQQQgiTpEAIIYQwSQqEEEIIk6RACCGEMEkKhBBC\nCJOkQBTAn3/+SXBwsMW3O3LkSMLCwgAYO3Ysv/32m8Uz5CQtLQ1fX19atmzJmjVr8rWOh19nafD7\n77+zcuVKi27z008/JTU11aLbfPfdd03ef/v2bfR6vfHHzs6Ol19+2fj46tWr0ev1eHh4MHToUOP9\nX3/9Na6urri6uvLNN99kW++kSZPQ6/W4urpSsWJF4/rXrVtX+C+upFEi3+Li4pSbm5vFtzty5EgV\nFhZWqOtMT08v1PX9/PPPqmvXrnlaJiMjI8vtkSNHqrVr1xZmrCJt165dqnfv3nlapqB/t0aNGqnE\nxMQCrSOvKleunKvneXl5qT179iillDp27Jhq06aNunPnjlJKqRs3biillLpy5YpycnJSt2/fVrdv\n31ZOTk7q6tWrJtd34cKFPL1f/9m2hf0eKQ6kB1EA06dP59y5c+j1el577bVsj/fr14+QkBAAFi1a\nRGBgYLbnjBgxgo0bNxpvDxs2jE2bNmV5TmZmJmPHjqVZs2Z0796d69evGx/z9fUlOjoagBdeeIHW\nrVvj7OzM9OnTjc9Zv349TZs2pW3btkyePJk+ffoAEBQUxPDhw/H19WXkyJH8/vvvdOjQAb1ej5ub\nG7t37wYgMjKSTp068fTTT9OkSROmT59OSEgI7du3p1mzZpw5cyZL3uvXrzN8+HAOHz6MXq/n/Pnz\nbN26FXd3d1xdXRk2bBj3798HoFGjRkyfPp22bdua7C1ERETQrl07nJycWL9+PQDp6elMmjSJli1b\n4uLiwoIFC4w5fX19GTx4MM7OzgwaNAilFEeOHDF+a3R3d8fKyvBvHxsbS+fOnWnZsiVt27bl119/\nBQw9lylTptCxY0caNmzId999Z8wza9YsPDw8cHFx4fXXX8+WF8DDw4Pk5GSUUtSqVcv4P/Dss88S\nERHxyHaePn06e/bsQa/XM3/+fDIyMh75Ojt06ED//v1xd3fPsu309HSGDx+Ou7s7Hh4ezJs3j/Pn\nz+Pl5WV8zpkzZ/Dy8uKzzz7jypUrdO7cmS5dugCwadMmvLy8cHd356mnnuL27dvGv9Obb76Jt7c3\n3t7eREdH06NHDxo1asRnn31msh369u2Lt7c3zs7OxuzTp08nNTUVvV7P8OHDTS4HcPr0aa5fv46P\njw8AK1asYNKkSVSqVAmAmjVrArBjxw569OhB5cqVqVy5Mt27d2fHjh0m16keOic4MTERf39/3N3d\n8fLyMr6HHn5PjBgxgpkzZ2Z5j5Q6GheoYi2nbyTXrl1TTZo0UT/99JNydnZWN2/ezPac3bt3q379\n+imllLp165Z67LHHsn2T/u6771T37t2N66xevbqxB+Hr66uioqKUUkr9+eefSinDNx1fX1915MgR\ndffuXVW3bl116dIlpZRSw4YNU3369FFKKTVjxgzl7e2tHjx4oJRSKjU1VaWlpSmllDp9+rRyd3dX\nShm+2VavXl0lJCSo+/fvq/r166tZs2YppZSaP3++mjhxYrbXFRkZafw2fPfuXVWnTh0VFxenlFJq\n1KhRau7cuUopwzfYefPmmWy/ESNGqF69eimlDL212rVrq5SUFDV//nw1e/ZspZRS9+7dU61atVKn\nT59Wu3btUtWqVVNXr15VmZmZqn379mrXrl1Z1jlt2jT16quvKqWUevzxx9WZM2eUUkodOHBAPfHE\nE8btDh48WCml1MmTJ5Wjo6NSSqmNGzeqcePGKaUMvZ3evXurHTt2ZMv9wgsvqC1btqhffvlFtW7d\n2rhM06ZNVUpKyiPb+eE2+6ttH/U6K1WqpOLj47Nt++DBg6pHjx7G23994+7cubM6duyYUkqp119/\nXX3++efG9v/r2/jVq1dV+/btVUpKilJKqblz56o333zT+LzFixcrpZR6+eWXlbu7u0pNTVUJCQnK\n1tY2Ww6l/v5/TElJUS4uLur69etKqdz1IGbOnKmmTZtmvN29e3c1depU5eXlpVq1aqU2btyolFLq\n3XffNf4vKaXUe++9p9577z2T63y4xz927Fj17rvvKqUM70EXFxelVPb3xD9vlzZltC5QxZnKYZaS\n2rVrM2vWLJ588kk2bNhA9erVsz2nY8eOTJgwgcTERNauXcvAgQON33D/snfvXgICAozrfPLJJ01u\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x39910d0>"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch13.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch13.ipynb
new file mode 100755
index 00000000..8dc5f0be
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch13.ipynb
@@ -0,0 +1,235 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Dilute solution laws"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 13.1 Page No : 478"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "weight = 10. \t\t\t #weight of NaCl in grams\n",
+ "volume = 1. \t \t\t #volume of water in litres\n",
+ "weight_water = 1000. \t\t\t # weight of water in grams (Weight = Volume*Density, density of water = 1g/cc = 1g/ml = 1000g/l)\n",
+ "molwt_NaCl = 58.5 \t\t\t #molecular weight of NaCl in grams\n",
+ "molwt_water = 18. \t\t\t #molecular weight of water in grams\n",
+ "hf = 6.002; \t\t\t #enthalpy change of fusion in kJ/mol at 0 degree celsius\n",
+ "P = 101.325; \t\t\t #pressure in kPa\n",
+ "T = 273.15; \t\t\t # freezing point temperature of water at the given pressure in K\n",
+ "R = 8.314; \t\t\t #universal gas constant in J/molK;\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = (weight/molwt_NaCl)/((weight/molwt_NaCl)+(weight_water/molwt_water))\n",
+ "delt = (R*T**2*x2)/(hf*10**3)\n",
+ "\n",
+ "# Results\n",
+ "print ' The depression in freezing point of water when 10g of NaCl solute is added = %0.2f K'%(delt);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The depression in freezing point of water when 10g of NaCl solute is added = 0.32 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 13.2 Page No : 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "weight = 10.; \t\t \t #weight of NaCl in grams\n",
+ "volume = 1.; \t\t\t #volume of water in litres\n",
+ "weight_water = 1000.; \t\t\t # weight of water in grams (Weight = Volume*Density, density of water = 1g/cc = 1g/ml = 1000g/l)\n",
+ "molwt_NaCl = 58.5; \t\t\t #molecular weight of NaCl in grams\n",
+ "molwt_water = 18; \t\t\t #molecular weight of water in grams\n",
+ "lat_ht = 2256.94; \t\t\t #latent heat of vaporization in kJ/kg at 100 degree celsius (obtained from steam tables)\n",
+ "P = 101.325; \t\t\t #pressure in kPa\n",
+ "T = 373.15; \t\t\t #boiling point temperature of water at the given pressure in K\n",
+ "R = 8.314; \t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 0.0031\n",
+ "hv = (lat_ht*molwt_water)/1000\n",
+ "delt = (R*T**2*x2)/(hv*10**3)\n",
+ "\n",
+ "# Results\n",
+ "print ' The elevation in boiling point of water when 10g of NaCl solute is added = %0.2f K'%(delt);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The elevation in boiling point of water when 10g of NaCl solute is added = 0.09 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No : 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "weight = 10.; \t\t\t #weight of NaCl in grams\n",
+ "weight_water = 1000.; \t\t\t # weight of water in grams\n",
+ "molwt_NaCl = 58.5; \t\t\t #molecular weight of NaCl in grams\n",
+ "molwt_water = 18.; \t\t\t #molecular weight of water in grams\n",
+ "T = 300.; \t\t\t #prevailing temperature of water in K\n",
+ "R = 8.314; \t\t\t #universal gas constant in (Pa m**3)/(mol K);\n",
+ "v = 18*10**-6;\t\t\t #molar volume in m**3/mol\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = 0.0031\n",
+ "pi = ((R*T*x2)/v)*10**-3\n",
+ "\n",
+ "# Results\n",
+ "print ' The osmotic pressure of a solution conatining 10g of NaCl in 1000g of water at 300K = %0.2f kPa'%(pi);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The osmotic pressure of a solution conatining 10g of NaCl in 1000g of water at 300K = 429.56 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 13.4 Page No : 483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "temp = 20. \t\t\t # prevailing tempearture in degree celsius\n",
+ "melt_temp = 80.05; \t\t\t # melting point of naphthalene in degree celsius\n",
+ "hf = 18.574 \t\t\t # enthalpy of fusion in kJ/mol\n",
+ "R = 8.314 \t\t\t # universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "t = temp+273.15\n",
+ "melt_t = melt_temp+273.15\n",
+ "x2 = math.exp(((hf*10**3)/R)*((1./melt_t)-(1./t)))\n",
+ "\n",
+ "# Results\n",
+ "print ' The ideal solubility of naphthalene at 20 degree celsius = %0.4f'%(x2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The ideal solubility of naphthalene at 20 degree celsius = 0.2737\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No : 483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "t = 295.43; \t\t\t #prevailing temperature in K\n",
+ "sat_p = 6.05; \t\t\t #Sasturation pressure of carbon dioxide at the prevailing temperature in MPa\n",
+ "p = 0.1; \t\t\t #pressure at which solubility has to be determined in MPa\n",
+ "\n",
+ "# Calculations\n",
+ "x2 = p/sat_p\n",
+ "\n",
+ "# Results\n",
+ "print ' The solubility of carbon dioxide expressed in mole fraction of carbon dioxide in solution\\\n",
+ " at 0.1MPa = %0.4f'%(x2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The solubility of carbon dioxide expressed in mole fraction of carbon dioxide in solution at 0.1MPa = 0.0165\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb
new file mode 100755
index 00000000..e54d6be2
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb
@@ -0,0 +1,846 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Chemical reaction equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Page No : 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 298.15;\t\t\t #temperature in K\n",
+ "del_Gf = [-137.327,-228.600,-394.815,0]; #the standard Gibbs free energy of formation of CO(g),H2O(g),CO2(g) and H2(g) in kJ\n",
+ "n = [1,1,-1,-1] \t\t\t #stoichiometric coefficients of CO(g),H2O(g),CO2(g) and H2(g) respectively (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "del_G = (n[0]*del_Gf[0])+(n[1]*del_Gf[1])+(n[2]*del_Gf[2])+(n[3]*del_Gf[3]);\n",
+ "Ka = math.exp((-(del_G*10**3))/(R*T))\n",
+ "\n",
+ "# Results\n",
+ "print 'The standard Gibbs free energy of the water gas shift reaction at 298.15K = %0.3f kJ '%(del_G);\n",
+ "print 'The equilibrium constant of the water gas shift reaction at 298.15K = %0.3e '%(Ka);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The standard Gibbs free energy of the water gas shift reaction at 298.15K = 28.888 kJ \n",
+ "The equilibrium constant of the water gas shift reaction at 298.15K = 8.685e-06 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Page No : 490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 298.15;\t\t\t #temperature in K\n",
+ "P_s = 0.16716;\t\t\t #saturation pressure of CH3OH in bar at T\n",
+ "del_G1 = -166.215\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "f_v = 1\n",
+ "f_l = P_s\n",
+ "del_G2 = R*T*math.log(f_v/f_l)*10**-3;\t\t\t # Calculations of the value of del_G2 in kJ\n",
+ "del_G = del_G2+del_G1;\t\t\n",
+ "\n",
+ "# Results\n",
+ "print 'The standard Gibbs free energy of formation of CH3OHg = %0.3f kJ '%(del_G);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The standard Gibbs free energy of formation of CH3OHg = -161.781 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No : 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "#The water gas shift reaction is given by: CO2(g)+H2(g)--->CO(g)+H2O(g)\n",
+ "T1 = 298.15 \t\t\t #initial temperature in K\n",
+ "Ka1 = 8.685*10**-6;\t\t\t #equilibrium constant for the water-gas shift reaction at T1 (no unit)\n",
+ "T2 = 1000.\t\t \t #temperature at which the equilibrium constant has to be determined in K\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "del_Hf = [-110.532,-241.997,-393.978,0];\t\t\t #the standard enthalpy of formation of CO(g),H2O(g),CO2(g) and H2(g) in kJ\n",
+ "n = [1,1,-1,-1];\t\t\t #stoichiometric coefficients of CO(g),H2O(g),CO2(g) and H2(g) respectively (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "#It is assumed that del_H is constant in the temperature range T1 and T2\n",
+ "del_H = (n[0]*del_Hf[0])+(n[1]*del_Hf[1])+(n[2]*del_Hf[2])+(n[3]*del_Hf[3])\n",
+ "Ka2 = Ka1*math.exp(((del_H*10**3)/R)*((1./T1)-(1./T2)));\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print 'The equilibrium constant for the water gas shift reaction at 1000K = %f '%(Ka2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equilibrium constant for the water gas shift reaction at 1000K = 1.085357 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.4 Page No : 492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "P = 0.1 \t\t\t #pressure in MPa\n",
+ "T1 = 298.15;\t\t\t #initial temperature in K\n",
+ "Ka1 = 8.685*10**-6;\t\t\t #equilibrium constant for the water-gas shift reaction at T1 (no unit) (from Example 14.1)\n",
+ "T2 = 1000. \t\t\t #temperature at which the equilibrium constant is to be found, in K\n",
+ "del_H = 41.449;\t\t\t #smath.tan(math.radiansard enthalpy of the reaction at T1 in kJ (from Example 14.3)\n",
+ "a = [28.068,28.850,45.369,27.012];\n",
+ "b = [4.631*10**-3,12.055*10**-3,8.688*10**-3,3.509*10**-3]\n",
+ "c = [0,0,0,0];\n",
+ "d = [0,0,0,0];\n",
+ "e = [-0.258*10**5,1.006*10**5,-9.619*10**5,0.690*10**5]\n",
+ "n = [1,1,-1,-1]\n",
+ "R = 8.314;\t\t\n",
+ "Ka2_prev = 1.0855\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "del_a = (n[0]*a[0])+(n[1]*a[1])+(n[2]*a[2])+(n[3]*a[3]);\n",
+ "del_b = (n[0]*b[0])+(n[1]*b[1])+(n[2]*b[2])+(n[3]*b[3]);\n",
+ "del_c = (n[0]*c[0])+(n[1]*c[1])+(n[2]*c[2])+(n[3]*c[3]);\n",
+ "del_d = (n[0]*d[0])+(n[1]*d[1])+(n[2]*d[2])+(n[3]*d[3]);\n",
+ "del_e = (n[0]*e[0])+(n[1]*e[1])+(n[2]*e[2])+(n[3]*e[3]);\n",
+ "del_H0 = (del_H*10**3)-((del_a*T1)+((del_b/2)*T1**2)+((del_c/3)*T1**3)+((del_d/4)*T1**4)-(del_e/T1));\n",
+ "I = (math.log(Ka1))-((1./R)*((-del_H0/T1)+(del_a*math.log(T1))+((del_b/2)*T1)+((del_c/6)*T1**2)+((del_d/12)*T1**3)+((del_e/(2*T1**2)))));\n",
+ "Ka2 = math.exp(((1./R)*((-del_H0/T2)+(del_a*math.log(T2))+((del_b/2)*T2)+((del_c/6)*T2**2)+((del_d/12)*T2**3)+((del_e/(2*T2**2)))))+I);\n",
+ "\n",
+ "\t\t\t # Results\n",
+ "print 'The equilibrium constant for the water gas shift reaction at 1000K\\\n",
+ " by taking into account the variation of del_H with temperature = %f '%(Ka2);\n",
+ "print 'The equilibrium constant for the water gas shift reaction at 1000K without\\\n",
+ " considering the variation of del_H with temperature as given by Example14.3 = %0.4f '%(Ka2_prev);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equilibrium constant for the water gas shift reaction at 1000K by taking into account the variation of del_H with temperature = 0.664976 \n",
+ "The equilibrium constant for the water gas shift reaction at 1000K without considering the variation of del_H with temperature as given by Example14.3 = 1.0855 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.5 page no : 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "deltaGf = -161.781 # kJ from exa. 14.2\n",
+ "deltaG298 = deltaGf - (-137.327)\n",
+ "deltaH298 = -200.660 - (-110.532)\n",
+ "deltaA = 18.382 - 28.068 - 2 * 27.012\n",
+ "deltaB = (101.564 - 4.631 - 2 * 3.509) * 10**-3\n",
+ "deltaC = -28.683 * 10**-6\n",
+ "deltaD = 0\n",
+ "deltaE = (0.258 - 2 * 0.690) * 10**5\n",
+ "T = 298.15\n",
+ "\n",
+ "# calculations\n",
+ "deltaHf298 = -238.648 + 37.988\n",
+ "deltaH0 = Symbol('deltaH0')\n",
+ "Eq = deltaH0 + deltaA*T + deltaB*T**2/2 + deltaC*T**3/3 - deltaE/T - deltaH298*1000\n",
+ "deltaH0 = solve(Eq,deltaH0)[0]/1000\n",
+ "I = Symbol('I')\n",
+ "\n",
+ "Eq1 = deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I + 24454\n",
+ "I = round(solve(Eq1,I)[0],3)\n",
+ "\n",
+ "T = 500\n",
+ "deltaG500 = (deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I)/1000\n",
+ "\n",
+ "Ka = math.exp(-22048/(8.314*T))\n",
+ "e = Symbol('e')\n",
+ "Eq3 = ( (e*(3-2*e)**2) / (1 - e)**3) / 0.4973 -1\n",
+ "e = round(solve(Eq3,e)[0],4)\n",
+ "yCH3OH = e/(3-2*e)\n",
+ "yco = (1-e)/(3-2*e)\n",
+ "yh2 = (2*(1-e) / (3-2*e))\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.4f\"%e\n",
+ "print \"YCH30H = %.4f\"%yCH3OH\n",
+ "print \"YCO = %.4f\"%yco\n",
+ "print \"YH2 = %.4f\"%yh2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 0.0506\n",
+ "YCH30H = 0.0175\n",
+ "YCO = 0.3275\n",
+ "YH2 = 0.6550\n"
+ ]
+ }
+ ],
+ "prompt_number": 103
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.6, Page 496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy.solvers import solve \n",
+ "from sympy import Symbol \n",
+ "\n",
+ "#Variables\n",
+ "e = Symbol('e')\n",
+ "\n",
+ "#Calculations\n",
+ "x = solve((((e/(3-2*e))/(((1-e)/(3-2*e))*(((2*(1-e))/(3-2*e))**2)))-49.73),e)\n",
+ "print \"e =\",round(x[0],3)\n",
+ "ych3oh = x[0]/(3-2*x[0])\n",
+ "yco = (1-x[0])/(3-2*x[0])\n",
+ "yh2 = ((2*(1-x[0]))/(3-2*x[0]))\n",
+ "print \"yCH3OH =\",round(ych3oh,4)\n",
+ "print \"yCO =\",round(yco,4)\n",
+ "print \"yH2 =\",round(yh2,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e = 0.801\n",
+ "yCH3OH = 0.5731\n",
+ "yCO = 0.1423\n",
+ "yH2 = 0.2846\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.7 pageno : 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka = 4.973*10**-3 # from example 14.5\n",
+ "Ky = 25 * Ka # from example 14.5\n",
+ "\n",
+ "# calculations\n",
+ "e = Symbol('e')\n",
+ "Eq1 = ( (e*(4-e)**2)/(1-e)**3 ) / .1243 - 1\n",
+ "e = round(solve(Eq1,e)[0],5)\n",
+ "yCH3OH = e/(8-2*e)\n",
+ "yco = (1-e)/(8-2*e)\n",
+ "yh2 = (2*(1-e) / (8-2*e))\n",
+ "yA = 5/(8-2*e)\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.5f\"%e\n",
+ "print \"YCH30H = %.5f\"%yCH3OH\n",
+ "print \"YCO = %.5f\"%yco\n",
+ "print \"YH2 = %.5f\"%yh2\n",
+ "print \"YA = %.5f\"%yA"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 0.00762\n",
+ "YCH30H = 0.00095\n",
+ "YCO = 0.12428\n",
+ "YH2 = 0.24857\n",
+ "YA = 0.62619\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.8 pageno : 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka = 4.973*10**-3 # example 14.5\n",
+ "Ky = 25 * Ka # example 14.5\n",
+ "\n",
+ "# calculations and results\n",
+ "e = Symbol('e')\n",
+ "Eq1= ((e*(1-e))/(1-2*e)**2)/.03108 - 1\n",
+ "e = solve(Eq1,e)\n",
+ "print \"part a\"\n",
+ "print \"e = %.5f and e = %.5f\"%(e[0],e[1])\n",
+ "print \"The admissible value is e = %.5f\"%e[0]\n",
+ "\n",
+ "print \"part b\"\n",
+ "print \"e = 0.0506 ( from example 14.5 )\"\n",
+ "\n",
+ "x = 4\n",
+ "e = Symbol('e')\n",
+ "Eq1= ((e/(1-e) ) * ( (5 - 2*e)/ (2-e) )**2)/ 0.4973 - 1\n",
+ "e = solve(Eq1,e)\n",
+ "print \"part c\"\n",
+ "print \"e = %.4f\" %(e[0])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part a\n",
+ "e = 0.02845 and e = 0.97155\n",
+ "The admissible value is e = 0.02845\n",
+ "part b\n",
+ "e = 0.0506 ( from example 14.5 )\n",
+ "part c"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "e = 0.0727\n"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.9 pageno : 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka = 4.973*10**-3 # example 14.5\n",
+ "Ky = 25 * Ka # example 14.5\n",
+ "\n",
+ "# calculations\n",
+ "e = Symbol('e')\n",
+ "Eq1 = (0.02 + e)*(1.51-e)**2 / (1-e)**3 / Ky - 1\n",
+ "e = solve(Eq1,e)[0]\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.5f\"%e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 0.03165\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.10 pageno : 500"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "\n",
+ "from matplotlib.pyplot import *\n",
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "from scipy.integrate import quad\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "deltaA = round(28.850 - 27.012 - 0.5 * 30.255,2)\n",
+ "deltaB = (12.055 - 3.509 - 0.5 * 4.207) * 10**-3\n",
+ "deltaC = 0\n",
+ "deltaD = 0\n",
+ "deltaE = round((1.006 - 0.690 + 0.5 * 1.887),3) * 10**5\n",
+ "deltaH298 = -241.997\n",
+ "Ts = [2000,2500,3000,3500,3800]\n",
+ "deltaHt = []\n",
+ "deltaGt = []\n",
+ "Ka = []\n",
+ "Ea = []\n",
+ "Eb = []\n",
+ "\n",
+ "# Calculations\n",
+ "T = 298.15\n",
+ "deltaH0 = Symbol('deltaH0')\n",
+ "Eq = deltaH0 + deltaA*T + deltaB*T**2/2 + deltaC*T**3/3 + deltaD*T**4/4 - deltaE/T - deltaH298*1000\n",
+ "deltaH0 = round(solve(Eq,deltaH0)[0]/1000,3)\n",
+ "I = Symbol('I')\n",
+ "Eq1 = deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I + 228600\n",
+ "I = round(solve(Eq1,I)[0],3)\n",
+ "\n",
+ "def fun1(T1):\n",
+ " #return 42.1395*(T1 - 298.15) + 5.613*10**-3/2*(T1**2 - 298.15**2) + .2535 * 10**5 * (1./T1 - 1/298.15)\n",
+ " return 42.1395*T1 + 5.613*10**-3/2 * T1**2 + 0.2535*10**5/T1 - 12898.37\n",
+ "\n",
+ "for T in Ts:\n",
+ " Ht = deltaH0*1000 + deltaA*T + deltaB*T**2/2 + deltaC*T**3/3 + deltaD*T**4/4 - deltaE/T \n",
+ " Gt = deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I \n",
+ " ka = math.exp(-Gt/(8.314*T))\n",
+ " e = Symbol('e')\n",
+ " Eq2 = ( e * (3-e)**(1./2) ) / ( 1-e)**(3./2) / ka - 1\n",
+ " b = round(solve(Eq2)[0],4)\n",
+ " a = (quad(fun1,298.15,T)[0]/1000) / -Ht\n",
+ " deltaHt.append(Ht)\n",
+ " deltaGt.append(Gt)\n",
+ " Ka.append(ka)\n",
+ " Ea.append(a)\n",
+ " Eb.append(b)\n",
+ "\n",
+ "\n",
+ "# Results \n",
+ "plot(Ts,Ea,\"g\")\n",
+ "plot(Ts,Eb,\"b\")\n",
+ "xlabel(\"T(k)\")\n",
+ "ylabel(\"E\")\n",
+ "suptitle(\"Plot of e versus adiabatic reaction temperature\")\n",
+ "show()\n",
+ "print \"from plot, it can be seen that both lines are simultaneously satisfied at the point \\\n",
+ "\\nintersection where e = 0.68 and T = 3440 K\"\n",
+ "e = 0.68\n",
+ "T = 3440\n",
+ "yh2 = (1- e)/(1.5 - 0.5*e)\n",
+ "yo2 = 0.5*(1-e) / (1.5-0.5*e)\n",
+ "yh2o = e/(1.5- 0.5*e)\n",
+ "\n",
+ "print \"yH2 = %.4f\"%yh2\n",
+ "print \"yO2 = %.4f\"%yo2\n",
+ "print \"yH2O = %.4f\"%yh2o"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['solve', 'draw_if_interactive', 'e']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x51ff6d0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from plot, it can be seen that both lines are simultaneously satisfied at the point \n",
+ "intersection where e = 0.68 and T = 3440 K\n",
+ "yH2 = 0.2759\n",
+ "yO2 = 0.1379\n",
+ "yH2O = 0.5862\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.11 Page No : 506"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "stoichio_matrix = matrix([[-1,-1, 1, 3, 0, 0],[0, -1, -1, 1, 1 ,0],[-1, -2, 0 ,4, 1, 0], \\\n",
+ " [0,0, 1, 0, -1, 0.5],[-1, 2 ,0, 0, 1, -2],[-1, 1, 1, 1, 0, -1]])\t\t\t #Framing the stoichiometric coefficient matrix\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "r = linalg.matrix_rank(stoichio_matrix)\n",
+ "\n",
+ "stoichio_matrix[0] = -stoichio_matrix[0];\n",
+ "stoichio_matrix[2] = stoichio_matrix[2]+stoichio_matrix[0];\n",
+ "stoichio_matrix[5:] = stoichio_matrix[5:]+stoichio_matrix[0];\n",
+ "stoichio_matrix[6:] = stoichio_matrix[6:]+stoichio_matrix[0];\n",
+ "stoichio_matrix[1] = -stoichio_matrix[1];\n",
+ "stoichio_matrix[2] = stoichio_matrix[2]+stoichio_matrix[1];\n",
+ "stoichio_matrix[5:] = stoichio_matrix[5:]-(3*stoichio_matrix[1]);\n",
+ "stoichio_matrix[6:] = stoichio_matrix[6:]-(2*stoichio_matrix[1]);\n",
+ "x = stoichio_matrix[:3]\n",
+ "y = stoichio_matrix[:4];\n",
+ "stoichio_matrix[:4] = y;\n",
+ "stoichio_matrix[:3] = x;\n",
+ "stoichio_matrix[5:] = stoichio_matrix[5:]+(4*stoichio_matrix[3]);\n",
+ "stoichio_matrix[6:] = stoichio_matrix[6:]+(2*stoichio_matrix[3]);\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print ' The stoichiometric coefficient matrix after performing the elementary row operations = ';\n",
+ "print (stoichio_matrix);\n",
+ "print ' The number of primary reactions = %d'%(r);\n",
+ "print ' The non zero rows are 1,2,4'\n",
+ "print ' The primary reactions are: CH4g)+H2Og)--->COg)+3H2g)%( COg)+H2Og)--->CO2g)+H2g),( CO2g)--->COg)+1./2)O2g)'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The stoichiometric coefficient matrix after performing the elementary row operations = \n",
+ "[[ 1. 1. -1. -3. -0. -0. ]\n",
+ " [-0. 1. 1. -1. -1. -0. ]\n",
+ " [ 0. 0. 0. 0. 0. 0. ]\n",
+ " [ 0. 0. 1. 0. -1. 0.5]\n",
+ " [-1. 2. 0. 0. 1. -2. ]\n",
+ " [ 0. -1. 1. 1. -1. 1. ]]\n",
+ " The number of primary reactions = 3\n",
+ " The non zero rows are 1,2,4\n",
+ " The primary reactions are: CH4g)+H2Og)--->COg)+3H2g)%( COg)+H2Og)--->CO2g)+H2g),( CO2g)--->COg)+1./2)O2g)\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.13 pageno : 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka1 = 0.1429\n",
+ "Ka2 = 2\n",
+ "\n",
+ "# calculations and Results\n",
+ "\n",
+ "# assume e1 = .3\n",
+ "e2 = Symbol('e2')\n",
+ "Eq1 = ((0.3 - e2)*(0.3+e2) /((0.7 - e2) * 0.7)) / 0.1429 -1\n",
+ "e2 = solve(Eq1)\n",
+ "print \"E2 = %.1f and %.1f \"%(e2[0],e2[1])\n",
+ "\n",
+ "# since negative value is inadmissible. e2 = 0.2\n",
+ "e2 = round(e2[1],1)\n",
+ "e1 = Symbol('e1')\n",
+ "Eq2 = ((e1 + 0.2)*(0.2) /((0.8 - e1) *(e1 - 0.2) ) ) / 2 -1\n",
+ "e1 = solve(Eq2)\n",
+ "print \"E1 = %.1f and %.1f \"%(e1[0],e1[1])\n",
+ "e1 = round(e1[0],1)\n",
+ "print \"Satisfied results when e1 = %.1f and e2 = %.1f\"%(e1,e2)\n",
+ "\n",
+ "yA = (1-e1-e2)/2\n",
+ "yB = (1-e1)/2\n",
+ "yC = (e1-e2)/2\n",
+ "yD = (e1+e2)/2\n",
+ "yE = e2/2\n",
+ "\n",
+ "print \"yA = %.2f\"%yA\n",
+ "print \"yB = %.2f\"%yB\n",
+ "print \"yC = %.2f\"%yC\n",
+ "print \"yD = %.2f\"%yD\n",
+ "print \"yE = %.2f\"%yE\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E2 = -0.1 and 0.2 \n",
+ "E1 = 0.3 and 0.6 \n",
+ "Satisfied results when e1 = 0.3 and e2 = 0.2\n",
+ "yA = 0.25\n",
+ "yB = 0.35\n",
+ "yC = 0.05\n",
+ "yD = 0.25\n",
+ "yE = 0.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 214
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.14 page no : 515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Kc = 2.92\n",
+ "\n",
+ "# Calculations and results\n",
+ "e = Symbol('e')\n",
+ "Eq1 = (e*(10+e)/((5-e)*(10-e)))/Kc - 1\n",
+ "e = round(solve(Eq1)[0],4)\n",
+ "print \"E = %.4f\"%e\n",
+ "\n",
+ "cA = 5-e\n",
+ "cB = 10-e\n",
+ "cC = e\n",
+ "cD = 10+e\n",
+ "\n",
+ "print \"CA = %.4f kmol/m*3\"%cA\n",
+ "print \"CB = %.4f kmol/m*3\"%cB\n",
+ "print \"CC = %.4f kmol/m*3\"%cC\n",
+ "print \"CD = %.4f kmol/m*3\"%cD"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 3.0446\n",
+ "CA = 1.9554 kmol/m*3\n",
+ "CB = 6.9554 kmol/m*3\n",
+ "CC = 3.0446 kmol/m*3\n",
+ "CD = 13.0446 kmol/m*3\n"
+ ]
+ }
+ ],
+ "prompt_number": 220
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.15, Page 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 1200. \t\t\t #temperature in K\n",
+ "T0 = 298.15 \t\t\t #reference temperature in K\n",
+ "a = [41.84,45.369,82.34];\n",
+ "b = [20.25*10**-3,8.688*10**-3,49.75*10**-3];\n",
+ "c = [0,0,0];\n",
+ "d = [0,0,0];\n",
+ "e = [-4.51*10**5,-9.619*10**5,-12.87*10**5];\n",
+ "del_Gf = [-604.574,-394.815,-1129.515]\n",
+ "del_Hf = [-635.975,-393.978,-1207.683]\n",
+ "n = [1,1,-1]\n",
+ "R = 8.314\n",
+ "\n",
+ "# Calculations\n",
+ "del_G = (n[0]*del_Gf[0])+(n[1]*del_Gf[1])+(n[2]*del_Gf[2]);\n",
+ "del_H = (n[0]*del_Hf[0])+(n[1]*del_Hf[1])+(n[2]*del_Hf[2]);\n",
+ "del_a = (n[0]*a[0])+(n[1]*a[1])+(n[2]*a[2]);\n",
+ "del_b = (n[0]*b[0])+(n[1]*b[1])+(n[2]*b[2]);\n",
+ "del_c = (n[0]*c[0])+(n[1]*c[1])+(n[2]*c[2]);\n",
+ "del_d = (n[0]*d[0])+(n[1]*d[1])+(n[2]*d[2]);\n",
+ "del_e = (n[0]*e[0])+(n[1]*e[1])+(n[2]*e[2]);\n",
+ "del_H0 = ((del_H*10**3)-((del_a*T0)+((del_b/2)*T0**2)+((del_c/3)*T0**3)+((del_d/4)*T0**4)-(del_e/T0)))*10**-3;\n",
+ "IR = (1./(T0))*((del_H0*10**3)-(del_a*T0*math.log(T0))-((del_b/2)*T0**2)-((del_c/6)*T0**3)-((del_d/12)*T0**4)-((del_e/2)*(1./T0))-(del_G*10**3));\n",
+ "del_G_T = ((del_H0*10**3)-(del_a*T*math.log(T))-((del_b/2)*T**2)-((del_c/6)*T**3)-((del_d/12)*T**4)-((del_e/2)*(1./T))-(IR*T))*10**-3;\n",
+ "Ka = math.exp((-del_G_T*10**3)/(R*T))\n",
+ "y = 1;\n",
+ "phi = 1;\n",
+ "f0 = 1;\n",
+ "P = (Ka*f0)/(phi*y)\n",
+ "\n",
+ "# Results\n",
+ "print ' The decomposition pressure,P = %f bar '%(P);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The decomposition pressure,P = 2.384295 bar \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch2.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch2.ipynb
new file mode 100755
index 00000000..b7849ef3
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch2.ipynb
@@ -0,0 +1,117 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:76568d79b614fc85568c92855047632dbe19f5ec7540dbd287268967c3318f2b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Review of basic concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page No : 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "t1 = 300.;\t\t\t #initial temperature of gas in K\n",
+ "p1 = 0.1;\t\t\t #initial pressure of the gas in MPa\n",
+ "p2 = 0.5;\t\t\t #pressure of gas after heating in MPa\n",
+ "p3 = 0.1;\t\t\t #pressure of gas after expansion in MPa\n",
+ "n = 1.; \t\t\t #number of moles of gas in mole\n",
+ "\n",
+ "# Calculations\n",
+ "w1 = 0*n; \t\t\t # Calculations of work done by the gas during heating in kJ (since dv = 0)\n",
+ "t2 = t1*(p2/p1);\t\t\t # Calculations of temperature of gas after heating in K\n",
+ "t3 = t2;\t\t \t # Calculations of temperature of gas after expansion in K (constant temperature expansion)\n",
+ "volume2 = p2/p3;\t\t\t # Calculations of ratio of volume of gas after expansion to the volume of gas after heating (no unit)\n",
+ "w2 = (R*t2*math.log(volume2)*n)/1000\n",
+ "volume3 = t3/t1;\t\t\n",
+ "w3 = (R*t1*(1-volume3)*n)/1000\n",
+ "work_net = w1+w2+w3;\t\t\t # Calculations of net work done by the gas for the process in kJ\n",
+ "\n",
+ "# Results\n",
+ "print ' Work done during heating process:Work from 1-2 = %d kJ '%(w1);\n",
+ "print ' Work done during constant temperature expansion: Work from 2-3 = %.3f kJ '%(w2);\n",
+ "print ' Work done during constant pressure compression: Work from 3-1 = %.3f kJ '%(w3);\n",
+ "print ' Net work done by the gas during the process = %.3f kJ '%(work_net);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Work done during heating process:Work from 1-2 = 0 kJ \n",
+ " Work done during constant temperature expansion: Work from 2-3 = 20.071 kJ \n",
+ " Work done during constant pressure compression: Work from 3-1 = -9.977 kJ \n",
+ " Net work done by the gas during the process = 10.095 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 2.2 Page No : 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "v1 = 0.1;\t\t\t #volume of gas initially present in the cylinder in m**3\n",
+ "p1 = 0.1;\t\t\t #initial pressure of gas in MPa\n",
+ "p_atm = 0.1;\t\t #atmospheric pressure acting on the piston in MPa\n",
+ "v2 = 0.3;\t\t\t #volume of gas after heating in m**3\n",
+ "p2 = 0.6;\t\t\t #pressure of gas after heating in MPa\n",
+ "\n",
+ "# Calculations\n",
+ "work = ((p1+p2)*(v2-v1)*10**6)/(2*1000);\t\t\t # Calculations of work done by the gas in kJ \n",
+ "\n",
+ "# Results\n",
+ "print ' The work done by the gas = %d kJ'%(work);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work done by the gas = 70 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch3.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch3.ipynb
new file mode 100755
index 00000000..2b39d6e0
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch3.ipynb
@@ -0,0 +1,897 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d10c3a8d696216084bffc2404a32e0b3c15831ac555c05fcb7016ab7d75d0e7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : PvT relations of fluids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "X = 0.8; \t\t\t #Quality of wet steam (no unit)\n",
+ "T = 150.;\t \t\t #Temperature of the wet steam in degree celsius\n",
+ "vf = 0.0010908;\t\t\t #molar volume of saturated liquid in m**3/kg\n",
+ "vg = 0.3924;\t\t\t #molar volume of saturated vapour in m**3/kg\n",
+ "uf = 631.63;\t\t\t #molar internal energy of the saturated liquid in kJ/kg\n",
+ "ug = 2558.6;\t\t\t #molar internal energy of the saturated vapour in kJ/kg\n",
+ "\n",
+ "# Calculations\n",
+ "V = (X*vg)+((1-X)*vf);\t\t\t # Calculations of specific volume in m**3/kg using Eq.(3.3)\n",
+ "U = (X*ug)+((1-X)*uf);\t\t\t # Calculations of specific internal energy in kJ/kg using Eq.(3.6)\n",
+ "\n",
+ "# Results\n",
+ "print 'The specific volume of wet steam = %0.4f m**3/kg '%(V);\n",
+ "print 'The specific internal energy of wet steam = %0.1f kJ/kg '%(U);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The specific volume of wet steam = 0.3141 m**3/kg \n",
+ "The specific internal energy of wet steam = 2173.2 kJ/kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 1.42;\t\t\t #specific volume of wet steam in m**3/kg\n",
+ "T = 100.;\t\t\t #temperature of wet steam in degree celsius\n",
+ "vf = 0.0010437;\t\t #molar volume of saturated liquid in m**3/kg\n",
+ "vg = 1.673;\t\t\t #molar volume of saturated vapour in m**3/kg\n",
+ "\n",
+ "# Calculations\n",
+ "X = (V-vf)/(vg-vf);\t\t\t # Calculations of the quality of wet steam using Eq.(3.3) (no unit)\n",
+ "\n",
+ "# Results\n",
+ "print ' The quality of wet steam = %0.4f '%(X);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quality of wet steam = 0.8487 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 100.;\t\t\t #temperature inside the vessel in degree celsius\n",
+ "V = 0.00317;\t\t\t #specific volume of water at the critical point in m**3/kg\n",
+ "vf = 0.0010437;\t\t\t #molar volume of saturated liquid in m**3/kg\n",
+ "vg = 1.673;\t\t\t #molar volume of saturated vapour in m**3/kg\n",
+ "\n",
+ "# Calculations\n",
+ "X = (V-vf)/(vg-vf);\t\t\t # Calculations of the quality of wet steam using Eq.(3.3) (no unit)\n",
+ "ratio = (X*vg)/((1-X)*vf);\t\t\t # Calculations of volume ratio of saturated vapour to the saturated liquid (no unit)\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume ratio of saturated vapour to the saturated liquid = %0.2f '%(ratio);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume ratio of saturated vapour to the saturated liquid = 2.04 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "U = 2000.\t\t\t #specific internal energy of liquid-vapour mixture in kJ/kg\n",
+ "uf = 850.6\t\t\t #specific internal energy of saturated liquid in kJ/kg\n",
+ "ug = 2593.2\t\t\t #specific internal energy of saturated vapour in kJ/kg\n",
+ "\n",
+ "# Calculations\n",
+ "mass_ratio = (U-uf)/(ug-U);\t\t\t # Calculations of the mass ratio of vapour to liquid using the lever rule (no unit)\n",
+ "\n",
+ "# Results\n",
+ "print ' The mass ratio of vapour to liquid = %0.4f '%(mass_ratio);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The mass ratio of vapour to liquid = 1.9376 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 1.\t\t\t #number of moles of n-octane vapour in mol\n",
+ "T = 427.85;\t\t\t #tempearture of n-octane vapour in K\n",
+ "P = 0.215;\t\t\t #pressure n-octane vapour in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in (kPa m**3)/(kmol K)\n",
+ "\n",
+ "# Calculations\n",
+ "V = ((n*10**-3)*R*T)/(P*10**3);\t\t\t # Calculations of volume using ideal gas law-Eq.(3.9) in m**3\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane vapour = %f m**3 '%(V);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane vapour = 0.016545 m**3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 1.; \t\t\t #number of moles occupied by n-octane vapour in mol\n",
+ "T = 427.85;\t\t\t #temperature in K\n",
+ "P = 0.215;\t\t\t #saturation pressure in MPa\n",
+ "a = 3.789;\t\t\t #van der Waals constant in Pa(m**3/mol)**2\n",
+ "b = 2.37*10**-4;\t #van der Waals constant in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "Vguess = (n*R*T)/(P*10**6);\t\t\t \n",
+ "Vnew = (R*T)/((P*10**6)+(a/Vguess**2))+b\n",
+ "tolerance = 1e-6\n",
+ "\n",
+ "while abs(Vguess-Vnew)>tolerance:\n",
+ " Vguess = Vnew;\n",
+ " Vnew = (R*T)/((P*10**6)+(a/Vguess**2))+b;\t\t\t #the iteration process to solve the system of equation\n",
+ "\n",
+ "V = Vnew;\t\t\t #The volume calculated using the van der Waals equation in m**3/mol\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane vapour obtained by van der Waals equation = %f m**3/mol'%(V);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane vapour obtained by van der Waals equation = 0.015675 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No : 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 1.; \t\t\t #number of moles occupied by n-octane liquid in mol\n",
+ "T = 427.85;\t\t\t #temperature in K\n",
+ "P = 0.215;\t\t\t #saturation pressure in MPa\n",
+ "a = 3.789;\t\t\t #van der Waals constant in Pa(m**3/mol)**2\n",
+ "b = 2.37*10**-4;\t\t\t #van der Waals constant in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "Vguess = b\n",
+ "Vnew = (R*T)/((P*10**6)+(a/Vguess**2))+b\n",
+ "tolerance = 1e-6\n",
+ "while abs(Vguess-Vnew)>tolerance:\n",
+ " Vguess = Vnew;\n",
+ " Vnew = (R*T)/((P*10**6)+(a/Vguess**2))+b;\t\t\t #the iteration process to solve the system of equation\n",
+ "\n",
+ "V = Vnew;\t\t\t #The volume calculated using the van der Waals equation in m**3/mol\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane liquid obtained by van der Waals equation = %e m**3/mol'%(V);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane liquid obtained by van der Waals equation = 3.517652e-04 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page No : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85; \t\t \t #temperature in K\n",
+ "P = 0.215;\t \t\t #saturation pressure in MPa\n",
+ "a = 3.789;\t\t \t #van der Waals constant in Pa(m**3/mol)**2\n",
+ "b = 2.37*10**-4;\t\t\t #van der Waals constant in m**3/mol\n",
+ "R = 8.314;\t\t \t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "Pcvc = 3\n",
+ "RTc = 8.\n",
+ "# Calculations\n",
+ "#The Cardan's method simplifies the equation of state into a cubic equation which can be solved easily\n",
+ "#The general form of the cubic equation is (Z**3)+(alpha*Z**2)+(beeta*Z)+gaamma = 0, where alpha,beeta and gaamma are determined using established relations\n",
+ "\n",
+ "A = (a*P*10**6)/(R*T)**2;\t\t\t\n",
+ "B = (b*P*10**6)/(R*T);\t\t\t \n",
+ "alpha = -1-B;\t\t\t \n",
+ "beeta = A;\t\t\t \n",
+ "gaamma = -(A*B);\t\n",
+ "p = round(beeta-(alpha**2)/3,4)\n",
+ "q = round(((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma,4)\n",
+ "D = (q**2/4)+(p**3/27);\t\n",
+ "\n",
+ "\n",
+ "if D>0 :\n",
+ " Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3);\n",
+ " vf = ((Z)*R*T)/(P*10**6);\t\t\n",
+ " vg = ((Z)*R*T)/(P*10**6);\t\t\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3);\t\n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z = [Z1 ,Z2, Z3];\n",
+ " vf = (min(Z)*R*T)/(P*10**6)\n",
+ " vg = (max(Z)*R*T)/(P*10**6)\n",
+ "else:\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\t # Calculations of r using Eq.(3.38)\n",
+ " theta = math.cos((-(q)/2)*(1./r));\t\t\t # Calculations of theta in radians using Eq.(3.37)\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3);\t\t\t #Three unequal real roots given by Eqs.(3.34,3.35 and 3.36)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3);\n",
+ " Z = [Z1, Z2, Z3];\n",
+ " vf = (min(Z)*R*T)/(P*10**6)\n",
+ " vg = (max(Z)*R*T)/(P*10**6)\n",
+ "\n",
+ "crit = Pcvc/RTc \n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane saturated liquid obtained by Cardans method = %.3e m**3/mol'%(vf);\n",
+ "print ' The volume occupied by n-octane saturated vapour obtained by Cardans method = %.2e m**3/mol'%(vg);\n",
+ "print \" At the critical point, PcVc/RTc = %.3f\"%crit\n",
+ "\n",
+ "# Note: value of D is calculated wrongly in book. Please calculate manually."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane saturated liquid obtained by Cardans method = -9.345e-04 m**3/mol\n",
+ " The volume occupied by n-octane saturated vapour obtained by Cardans method = 1.55e-02 m**3/mol\n",
+ " At the critical point, PcVc/RTc = 0.375\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No : 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "from numpy import *\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature in K\n",
+ "P = 0.215;\t\t\t #saturation pressure in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "\n",
+ "# Calculations\n",
+ "a = (0.42748*R**2*Tc**2.5)/(Pc*100*10**3*math.sqrt(T));\t\t\t \n",
+ "b = (0.08664*R*Tc)/(Pc*100*10**3);\t\t\t\n",
+ "\n",
+ "\n",
+ "A = (a*P*10**6)/(R*T)**2;\t\t\t \n",
+ "B = (b*P*10**6)/(R*T);\n",
+ "alpha = -1.;\t\t\t\n",
+ "beeta = A-B-B**2.;\t\n",
+ "gaamma = -(A*B);\t\n",
+ "p = beeta-(alpha**2)/3.\n",
+ "q = ((2*alpha**3.)/27.)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4.)+(((p)**3)/27.);\t\t\t \n",
+ "#if D>0 then:\n",
+ " # Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3)\n",
+ " # vf = ((Z)*R*T)/(P*10**6)\n",
+ " # vg = ((Z)*R*T)/(P*10**6)\n",
+ "#elif D == 0:\n",
+ " # Z1 = ((-2*(q/2))**(1./3))-(alpha/3);\n",
+ " # Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " # Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " # Z = [Z1 ,Z2, Z3];\n",
+ " # vf = (min(Z)*R*T)/(P*10**6);\t\t\n",
+ " # vg = (max(Z)*R*T)/(P*10**6);\t\t\n",
+ "#else:\n",
+ "\n",
+ "r = math.sqrt((-(p**3)/27));\t\t\t\n",
+ "theta = (math.acos((-(q)/2)*(1./r)));\n",
+ "Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ "Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3);\t\n",
+ "Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3);\n",
+ "Z = [Z1, Z2, Z3];\n",
+ "vf = (min(Z)*R*T)/(P*10**6);\t\t\n",
+ "vg = (max(Z)*R*T)/(P*10**6);\t\t\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane saturated vapour) using Redlich-Kwong equation of state = %f m**3/mol'%(vg);\n",
+ "print ' The volume occupied by n-octane saturated liquid) using Redlich-Kwong equation of state = %f m**3/mol'%(vf);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane saturated vapour) using Redlich-Kwong equation of state = 0.015401 m**3/mol\n",
+ " The volume occupied by n-octane saturated liquid) using Redlich-Kwong equation of state = 0.000244 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No : 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 180.;\t\t\t #temperature of water in degree celsius\n",
+ "P = 1.0027;\t\t\t #saturation pressure of water in MPa\n",
+ "Tc = 647.3;\t\t\t #critical temperature of water in K\n",
+ "Pc = 221.2;\t\t\t #critical pressure of water in bar\n",
+ "Tr = 0.7;\t\t\t #reduced temperature at which acentric factor was defined by Pitzer \n",
+ "\n",
+ "# Calculations\n",
+ "T1 = Tr*Tc; \t\t\t #calculating temperature in K using reduced temperature value\n",
+ "T1 = T1-273.15;\t\t\t #conversion to degree celsius\n",
+ "Pr = (P*10)/Pc;\t\t\t # Calculations of reduced pressure (no unit) using saturation pressure at t1. In this case t1 equals t, therefore the given saturation pressure is taken\n",
+ "w = -math.log10(Pr)-1.0;\t\t\t # Calculations of acentric factor using Eq.(3.62)\n",
+ "\n",
+ "# Results\n",
+ "print ' The acentric factor of water = %f '%(w);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The acentric factor of water = 0.343614 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.11 Page No : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 409.41;\t\t\t #temperature of n-octane in degree celsius\n",
+ "P = 4.98;\t\t\t #pressure in bar\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "w = 0.398;\t\t\t #acentric factor (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "Tr = (T+273.15)/Tc;\t\n",
+ "Pr = P/Pc;\t\t\t\n",
+ "z0 = 0.96;\t\t\t\n",
+ "V1 = (z0*R*(T+273.15))/(P*10**5);\t\t\t \n",
+ "z1 = 0.01;\t\t\t \n",
+ "z = z0+(w*z1);\t\t\n",
+ "V2 = (z*R*(T+273.15))/(P*10**5)\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane obtained by the two parameter compressibilty \\\n",
+ " factor correlation = %f m**3/mol'%(V1);\n",
+ "print ' The volume occupied by n-octane obtained by the three parameter compressibility \\\n",
+ "factor correlation = %f m**3/mol'%(V2);\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane obtained by the two parameter compressibilty factor correlation = 0.010939 m**3/mol\n",
+ " The volume occupied by n-octane obtained by the three parameter compressibility factor correlation = 0.010985 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 1.;\t \t\t #volume of the tank in m**3\n",
+ "m = 180.;\t\t\t #mass of carbon dioxide in kg\n",
+ "T = 91.8;\t\t\t #temperature of the tank in degree celsius after it is placed in the vicinity of a furnace\n",
+ "Tc = 304.2;\t\t\t #critical temperature of carbon dioxide in K\n",
+ "Pc = 73.87;\t\t\t #critical pressure of carbon dioxide in bar\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "mwt = 44.*10**-3\t #molecular weight of carbon dioxide in kg/mol\n",
+ "n = m/mwt;\t\t\t # Calculations of number of moles of carbon dioxide in the tank in moles\n",
+ "MV = V/n;\t\t\t # Calculations of molar volume in m**3/mol\n",
+ "slope = (MV*Pc*10**5)/(R*(T+273.15));\t\t\t #slope of the straight line formed when z0 is plotted against Pr formed by using the relation z0 = (V*Pc*Pr)/(R*T)\n",
+ "Tr = (T+273.15)/Tc;\t\t\t # Calculations of reduced temperature (no unit)\n",
+ "\n",
+ "#At the given conditions, the state of CO2 must lie on the curve corresponding to the obtained value of Tr. To determine the state of CO2, a straight line passing through the origin, with the obtained value of slope is drawn on the z0 vs Pr plot of Fig.3.12 and the point of intersection of this straight line with the Tr curve is obtained to get the value of z0\n",
+ "z0 = 0.725;\t\t\t #value of compressibilty factor obtained by doing the above mentioned procedure\n",
+ "P = (z0*R*10**-6*(T+273.15))/(MV)\t\t\t # Calculations of pressure in MPa using Eq.(3.59)\n",
+ "\n",
+ "# Results\n",
+ "print ' The pressure developed by carbon dioxide = %.0f MPa'%(P);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pressure developed by carbon dioxide = 9 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "V = 1.;\t\t\t #volume of the tank in m**3\n",
+ "m = 180.;\t\t\t #mass of carbon dioxide in kg\n",
+ "T = 91.8;\t\t\t #temperature of the tank in degree celsius after it is placed in the vicinity of a furnace\n",
+ "Tc = 304.2;\t\t\t #critical temperature of carbon dioxide in K\n",
+ "Pc = 73.87;\t\t\t #critical pressure of carbon dioxide in bar\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "w = 0.239;\t\t\t #acentric factor (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "mwt = 44.*10**-3\n",
+ "n = m/mwt\n",
+ "MV = V/n;\t\t\t\n",
+ "Tr = (T+273.15)/Tc\n",
+ "z0 = 0.725\n",
+ "z_init = z0;\t\t\t \n",
+ "slope = (MV*Pc*10**5)/(R*(T+273.15));\t\t\t \n",
+ "Prguess = z_init/slope;\t\n",
+ "z1guess = 0.1;\t\t\t \n",
+ "tolerance = 1e-6;\t\t\t \n",
+ "\n",
+ "def solver_function(zi):\n",
+ " return zi-(z0+(w*z1guess))\n",
+ "\n",
+ "z = fsolve(solver_function,z1guess)\n",
+ "Pr = z/slope;\t\t\t \n",
+ "P = ((Pc*10**5)*Pr)*10**-6\n",
+ "\n",
+ "# Results\n",
+ "print ' The pressure developed by carbon dioxide = %f MPa'%(P);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pressure developed by carbon dioxide = 9.295806 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No : 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215;\t\t\t #pressure of n-ocatne vapour in MPa\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 2.497;\t\t\t #critical pressure of n-octane in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "Tr = T/Tc\n",
+ "Pr = P/Pc\n",
+ "z_init = 1\n",
+ "h = (0.08664*Pr)/(z_init*Tr)\n",
+ "tolerance = 1e-6;\t\t\t\n",
+ "\n",
+ "def solver_func(zi):\n",
+ " return zi-((1./(1-h))-((h/(1+h))*(4.93398/(Tr**(3./2)))))\n",
+ "\n",
+ "z = fsolve(solver_func,h)\n",
+ "V = (z*R*T)/(P*10**6);\t\t\t\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane vapour obtained by the generalized form of \\\n",
+ " \\n Redlich-Kwong equation of state = %.2e m**3/mol'%(V);\n",
+ "\n",
+ "\n",
+ "# Note : Answer may vary because of rouding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane vapour obtained by the generalized form of \n",
+ " Redlich-Kwong equation of state = 1.55e-02 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.15 Page No : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature in K\n",
+ "P = 0.215;\t\t\t #saturation pressure in MPa\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "w = 0.398;\t\t\t #acentric factor (no unit) \n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "#The Cardan's method simplifies the equation of state into a cubic equation which can be solved easily\n",
+ "#The general form of the cubic equation is (Z**3)+(alpha*Z**2)+(beeta*Z)+gaamma = 0, where alpha,beeta and gaamma are determined using established relations\n",
+ "\n",
+ "Tr = T/Tc\n",
+ "Pr = (P*10**6)/(Pc*10**5)\n",
+ "S = 0.48+(1.574*w)-(0.176*w**2)\n",
+ "alpha1 = (1+(S*(1-math.sqrt(Tr))))**2\n",
+ "a = (0.42748*R**2*Tc**2*alpha1)/(Pc*10**5)\n",
+ "b = (0.08664*R*Tc)/(Pc*10**5)\n",
+ "A = (a*P*10**6)/(R*T)**2\n",
+ "B = (b*P*10**6)/(R*T)\n",
+ "alpha = -1.\n",
+ "beeta = A-B-B**2\n",
+ "gaamma = -(A*B)\n",
+ "p = beeta-(alpha**2)/3\n",
+ "q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4.)+(((p)**3)/27.)\n",
+ "\n",
+ "if D>0:\n",
+ " Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3)\n",
+ " vf = ((Z)*R*T)/(P*10**6)\n",
+ " vg = ((Z)*R*T)/(P*10**6)\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3)\n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z = [Z1, Z2, Z3];\n",
+ " vf = (min(Z)*R*T)/(P*10**6);\t\t\n",
+ " vg = (max(Z)*R*T)/(P*10**6);\t\t\n",
+ "else:\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\n",
+ " theta = acos((-(q)/2)*(1./r));\t\t\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3);\n",
+ " Z = [Z1, Z2, Z3];\n",
+ " vf = (min(Z)*R*T)/(P*10**6)\n",
+ " vg = (max(Z)*R*T)/(P*10**6)\n",
+ "\n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane saturated vapour obtained by Soave-Redlich-Kwong \\\n",
+ " equation of state = %f m**3/mol'%(vg);\n",
+ "print ' The volume occupied by n-octane saturated liquid obtained by Soave-Redlich-Kwong \\\n",
+ " equation of state = %f m**3/mol'%(vf);\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane saturated vapour obtained by Soave-Redlich-Kwong equation of state = 0.015207 m**3/mol\n",
+ " The volume occupied by n-octane saturated liquid obtained by Soave-Redlich-Kwong equation of state = 0.000227 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3.16 Page No : 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature in K\n",
+ "P = 0.215;\t\t\t #saturation pressure in MPa\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "w = 0.398;\t\t\t #acentric factor (no unit) \n",
+ "R = 8.314;\t\t\t #universal gas constant in (Pa m**3)/(mol K)\n",
+ "\n",
+ "# Calculations\n",
+ "Tr = T/Tc;\t\t\t\n",
+ "Pr = (P*10**6)/(Pc*10**5)\n",
+ "S = 0.37464+(1.54226*w)-(0.26992*w**2)\n",
+ "alpha1 = (1+(S*(1-math.sqrt(Tr))))**2\n",
+ "a = (0.45724*R**2*Tc**2*alpha1)/(Pc*10**5)\n",
+ "b = (0.07780*R*Tc)/(Pc*10**5)\n",
+ "A = (a*P*10**6)/(R*T)**2\n",
+ "B = (b*P*10**6)/(R*T)\n",
+ "alpha = -1+B;\t\n",
+ "beeta = A-(2*B)-(3*B**2)\n",
+ "gaamma = -(A*B)+(B**2)+(B**3)\n",
+ "p = beeta-(alpha**2)/3;\t\t\n",
+ "q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4)+(((p)**3)/27)\n",
+ "\n",
+ "if D>0:\n",
+ " Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3)\n",
+ " vf = ((Z)*R*t)/(P*10**6)\n",
+ " vg = ((Z)*R*t)/(P*10**6)\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3)\n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z = [Z1 ,Z2, Z3];\n",
+ " vf = (min(Z)*R*T)/(P*10**6)\n",
+ " vg = (max(Z)*R*T)/(P*10**6)\n",
+ "else:\n",
+ " r = math.sqrt((-(p**3)/27))\n",
+ " theta = .1533\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3);\t\t\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3);\n",
+ " Z = [Z1, Z2, Z3];\n",
+ " vf = (min(Z)*R*T)/(P*10**6)\n",
+ " vg = (max(Z)*R*T)/(P*10**6)\n",
+ " \n",
+ "# Results\n",
+ "print ' The volume occupied by n-octane saturated vapour, obtained by Peng\\\n",
+ "-Robinson equation of state = %.3e m**3/mol'%(vg);\n",
+ "print ' The volume occupied by n-octane saturated liquid, obtained by Peng-Robinson\\\n",
+ " equation of state = %.3e m**3/mol'%(vf);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume occupied by n-octane saturated vapour, obtained by Peng-Robinson equation of state = 1.514e-02 m**3/mol\n",
+ " The volume occupied by n-octane saturated liquid, obtained by Peng-Robinson equation of state = 2.003e-04 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch4.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch4.ipynb
new file mode 100755
index 00000000..5433cf7c
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch4.ipynb
@@ -0,0 +1,1291 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : First law of thermodynamics and its applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.1 Page No : 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q1 = 50.;\t\t\t #Energy added as heat in kJ when the system undergoes a process 1-2\n",
+ "W1 = 30.;\t\t\t #Work done by the system in kJ during the process 1-2\n",
+ "Q2 = -40.;\t\t\t #Energy rejected as heat in kJ during the process 2-3\n",
+ "W2 = -50.;\t\t\t #Work done on the system in kJ during the process 2-3\n",
+ "Q3 = 0.\t \t\t #System undergoes an adiabatic process to return to initial state\n",
+ "\n",
+ "# Calculations\n",
+ "U2_1 = Q1-W1\n",
+ "U3_2 = Q2-W2\n",
+ "U1_3 = (-U2_1)-(U3_2)\n",
+ "W3 = Q3-U1_3\n",
+ "net_work = W1+W2+W3\n",
+ "\n",
+ "# Results\n",
+ "print ' The net work done by the system = %d kJ'%(net_work);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The net work done by the system = 10 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No : 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 1. \t\t\t #volume of tank in m**3;\n",
+ "N = 200.;\t\t\t #number of moles of carbon dioxide in tank in mol\n",
+ "T1 = 25.;\t\t\t #ambient temperature in degree celsius\n",
+ "I = 5.; \t\t\t #current in amperes passed through the resistor place in the tank\n",
+ "Voltage = 440.\t\t #voltage in volts existing across the resistor\n",
+ "t = 10.;\t\t\t #time in minutes for which the current is passed\n",
+ "a = 363.077*10**-3\t\t\t #van der waals constant in Pa (m**3/mol)**2\n",
+ "b = 0.043*10**-3\t\t\t #van der waals constant in m**3/mol\n",
+ "Cv = 32.34\t\t\t #molar heat capacity at constant volume in J/molK\n",
+ "R = 8.314\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "MV = V/N;\t\t\t # Calculations of molar volume in m**3/mol\n",
+ "Q = 0. \t\t\t #energy transfer as heat during the process\n",
+ "W_Pdv = 0.;\t\t\t #mechanical work done by the system\n",
+ "W_elec = -(Voltage*I*t*60)*(10**-6)\n",
+ "U2_1 = Q-(W_Pdv+W_elec);\t\t\t\n",
+ "T2 = ((U2_1*10**6)/(N*Cv))+(T1+273.15)\n",
+ "P = (((R*T2)/(MV-b))-(a/(MV**2)))*10**-3\n",
+ "\n",
+ "# Results\n",
+ "print ' The final pressure = %0.3f kPa '%(P);\n",
+ "print ' The final temperature = %0.2f K'%(T2);\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final pressure = 827.832 kPa \n",
+ " The final temperature = 502.23 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No : 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 0.1;\t\t\t #volume of tank in m**3\n",
+ "T1 = 200.;\t\t\t #initial temperature of saturated steam inside the tank in degree celsius\n",
+ "T2 = 150.;\t\t\t #temperature in degree celsius that the tank attains after some time due to poor insulation\n",
+ "P1 = 15.549;\t\t\t #pressure in bar obtained from steam tables corresponding to T1\n",
+ "vg1 = 0.1272;\t\t\t #specific volume of saturated vapour in m**3/kg obtained from steam tables corresponding to T1\n",
+ "hg1 = 2790.9;\t\t\t #specific enthalpy of saturated vapour in kJ/kg obtained from steam tables corresponding to T1\n",
+ "P2 = 4.76;\t\t\t #pressure in bar obtained from steam tables corresponding to T2\n",
+ "vf = 0.0010908;\t\t\t #specific volume of saturated liquid in m**3/kg obtained from steam tables corresponding to T2\n",
+ "vg2 = 0.3924;\t\t\t #specific volume of saturated vapour in m**3/kg obtained from steam tables corresponding to T2\n",
+ "hf = 632.15;\t\t\t #specific enthalpy of saturated liquid in kJ/kg obtained from steam tables corresponding to T1\n",
+ "hg2 = 2745.4;\t\t\t #specific enthalpy of saturated vapour in kJ/kg obtained from steam tables corresponding to T1\n",
+ "\n",
+ "# Calculations\n",
+ "ug1 = ((hg1*10**3)-(P1*10**5*vg1))*10**-3\n",
+ "uf = ((hf*10**3)-(P2*10**5*vf))*10**-3\n",
+ "ug2 = ((hg2*10**3)-(P2*10**5*vg2))*10**-3\n",
+ "v2 = vg1\n",
+ "X2 = (v2-vf)/(vg2-vf)\n",
+ "u2 = (X2*ug2)+((1-X2)*uf)\n",
+ "m = V/vg1\n",
+ "Q = m*(u2-ug1)\n",
+ "mf = m*(1-X2)\n",
+ "mg = m*X2\n",
+ "\n",
+ "# Results\n",
+ "print ' The energy transferred as heat = %f kJ'%(Q);\n",
+ "print ' The mass of liquid in the tank in the final state = %0.3f kg'%(mf)\n",
+ "print ' The mass of vapour in the tank in the final state = %0.3f kg'%(mg)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The energy transferred as heat = -1053.825572 kJ\n",
+ " The mass of liquid in the tank in the final state = 0.533 kg\n",
+ " The mass of vapour in the tank in the final state = 0.253 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No : 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "W = 1.;\t \t\t #weight of steam in kg in the piston cylinder assembly\n",
+ "X = 0.8;\t\t\t #quality of steam (no unit)\n",
+ "T1 = 150.;\t\t\t #initial temperature of steam in degree celsius\n",
+ "T2 = 200.;\t\t\t #final temperature of steam in degree celsius\n",
+ "P1 = 476.;\t\t\t #pressure in kPa obatined from steam tables (corresponding to T1)\n",
+ "vf = 0.0010908;\t\t\t #specific volume of saturated liquid in m**3/kg obatined from steam tables (corresponding to T1)\n",
+ "vg = 0.3924;\t\t\t #specific volume of satuarted vapour in m**3/kg obatined from steam tables (corresponding to T1)\n",
+ "hf = 632.15;\t\t\t #specific enthalpy of saturated liquid in kJ/kg obtained from steam tables (corresponding to T1)\n",
+ "hg = 2745.4;\t\t\t #specific enthalpy of saturated vapour in kJ/kg obtained from steam tables (corresponding to T1)\n",
+ "\n",
+ "# Calculations\n",
+ "V1 = (X*vg)+((1-X)*vf)\n",
+ "h1 = (X*hg)+((1-X)*hf)\n",
+ "P2 = 0.476;\t\t\t \n",
+ "P_int1 = 0.4;\t\t\n",
+ "P_int2 = 0.5;\t\t\n",
+ "V_int1 = 0.5343;\t\n",
+ "V_int2 = 0.4250;\t\n",
+ "h_int1 = 2860.4;\t\n",
+ "h_int2 = 2855.1;\t\n",
+ "V2 = (((P2-P_int1)/(P_int2-P_int1))*(V_int2-V_int1))+V_int1\n",
+ "h2 = (((P2-P_int1)/(P_int2-P_int1))*(h_int2-h_int1))+h_int1\n",
+ "Q = (h2-h1)*W\n",
+ "W = P1*(V2-V1)*W\n",
+ "\n",
+ "# Results\n",
+ "print ' The work done by steam = %0.2f kJ '%(W);\n",
+ "print ' The net energy transferred as heat = %0.2f kJ'%(Q);\n",
+ "print ' The final state of superheated steam,Pressure = %0.3f MPa '%(P2);\n",
+ "print ' The final state of superheated steam,Temperature = %d degree celsius '%(T2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work done by steam = 65.26 kJ \n",
+ " The net energy transferred as heat = 533.62 kJ\n",
+ " The final state of superheated steam,Pressure = 0.476 MPa \n",
+ " The final state of superheated steam,Temperature = 200 degree celsius \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No : 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "W = 1. \t\t\t #weight of steam in kg in the piston cylinder assembly\n",
+ "X = 0.8;\t\t\t #quality of steam (no unit)\n",
+ "T1 = 150.\t\t\t #initial temperature of steam in degree celsius\n",
+ "I = 5. \t\t\t #current passed in Amperes\n",
+ "V = 220.\t\t\t #voltage in volts across the resistor\n",
+ "t = 10. \t\t\t #time for which the current is passed in minutes\n",
+ "P1 = 476.\t\t\t #pressure in kPa obatined from steam tables (corresponding to T1)\n",
+ "vf = 0.0010908;\t\t\t #specific volume of saturated liquid in m**3/kg obatined from steam tables (corresponding to T1)\n",
+ "vg = 0.3924;\t\t\t #specific volume of satuarted vapour in m**3/kg obatined from steam tables (corresponding to T1)\n",
+ "hf = 632.15;\t\t\t #specific enthalpy of saturated liquid in kJ/kg obtained from steam tables (corresponding to T1)\n",
+ "hg = 2745.4;\t\t\t #specific enthalpy of saturated vapour in kJ/kg obtained from steam tables (corresponding to T1)\n",
+ "\n",
+ "# Calculations\n",
+ "V1 = (X*vg)+((1-X)*vf);\t\n",
+ "h1 = (X*hg)+((1-X)*hf);\t\n",
+ "Ws = -V*I*t*60*10**-3;\t\n",
+ "h2 = h1-Ws;\t\t\t \n",
+ "P2 = 0.476;\t\t\t \n",
+ "T_int1 = 200;\t\t\n",
+ "T_int2 = 300;\t\t\n",
+ "V_int1 = 0.4512;\t\n",
+ "V_int2 = 0.5544;\t\n",
+ "h_int1 = 2856.37;\t\n",
+ "h_int2 = 3065.38;\t\n",
+ "V2 = (((h2-h_int1)/(h_int2-h_int1))*(V_int2-V_int1))+V_int1;\n",
+ "T2 = (((h2-h_int1)/(h_int2-h_int1))*(T_int2-T_int1))+T_int1;\n",
+ "W = (P1*10**3*(V2-V1)*W)*10**-3\n",
+ "\n",
+ "# Results\n",
+ "print ' The work done by steam = %0.2f kJ '%(W);\n",
+ "print ' The final temperature = %0.2f degree celsius'%(T2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work done by steam = 94.94 kJ \n",
+ " The final temperature = 260.47 degree celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.7 Page No : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "N = 1.\t\t\t #number of moles of carbon dioxide in kmol\n",
+ "T1 = 298.\t\t\t #initial temperature in K\n",
+ "T2 = 600.\t\t\t #final raised temperature in K\n",
+ "a = 45.369\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "b = 8.688*10**-3\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "e = -9.619*10**5\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "\n",
+ "# Calculations\n",
+ "Q = N*10**3*((a*(T2-T1)+((b/2)*(T2**2-T1**2))-(e*((1./T2)-(1./T1)))))*10**-6\n",
+ "\n",
+ "# Results\n",
+ "print ' The amount of energy to be transferred as heat = %0.3f MJ'%(Q);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The amount of energy to be transferred as heat = 13.255 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.8 Page No : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 298. \t\t\t #initial temperature in K\n",
+ "T2 = 600.\t \t\t #final raised temperature in K\n",
+ "a = 45.369;\t\t \t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "b = 8.688*10**-3;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "e = -9.619*10**5;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "\n",
+ "# Calculations\n",
+ "Cpm = ((a*(T2-T1))+((b/2)*(T2**2-T1**2))-(e*((1./T2)-(1./T1))))/(T2-T1)\n",
+ "\n",
+ "# Results\n",
+ "print ' The isobaric molar heat capacity = %0.2f J/molK'%(Cpm);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The isobaric molar heat capacity = 43.89 J/molK\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No : 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "N = 1.\t \t\t #number of moles of carbon dioxide in kmol\n",
+ "T1 = 298.\t\t\t #initial temperature in K\n",
+ "T2 = 600.\t\t\t #final raised temperature in K\n",
+ "a = 45.369;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "b = 8.688*10**-3;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "e = -9.619*10**5;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "\n",
+ "# Calculations\n",
+ "Cpm = ((a*(T2-T1))+((b/2)*(T2**2-T1**2))-(e*((1./T2)-(1./T1))))/(T2-T1)\n",
+ "Q = N*10**3*Cpm*(T2-T1)*10**-6\n",
+ "\n",
+ "# Results\n",
+ "print ' The amount of energy to be transferred as heat = %0.3f MJ '%(Q);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The amount of energy to be transferred as heat = 13.255 MJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.10 Page No : 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "N = 100.\t\t\t #number of moles of carbon dioxide in mol\n",
+ "T1 = 298.\t\t\t #initial temperature in K\n",
+ "Q = 1. \t\t\t #energy added as heat in MJ\n",
+ "a = 45.369;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "b = 8.688*10**-3;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "e = -9.619*10**5;\t\t\t #coefficient in the specific heat capacity expression where Cp = a+bT+eT**-2\n",
+ "\n",
+ "# Calculations\n",
+ "delh = Q*10**6/N\n",
+ "Tguess = 520.\t\n",
+ "Cpm_guess = a+(b*((T1+Tguess)/2))+(e/(T1*Tguess))\n",
+ "T2_guess = T1+(delh/Cpm_guess)\n",
+ "tolerance = 1e-6;\t\t\t\n",
+ "while abs(T2_guess-Tguess)>tolerance:\n",
+ " Tguess = T2_guess;\n",
+ " Cpm_guess = a+(b*((T1+Tguess)/2))+(e/(T1*Tguess));\n",
+ " T2_guess = T1+(delh/Cpm_guess)\n",
+ "\n",
+ "T2 = T2_guess\n",
+ "\n",
+ "# Results\n",
+ "print ' The final temperature = %0.1f K'%(T2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final temperature = 531.1 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No : 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "volume_ratio = 1./15\t #final volume to the initial volume of air at the end of compression stroke (no unit)\n",
+ "gaamma = 1.4\t\t\t #ratio of the molar heat capacities at constant pressure and constant volume for air (no unit)\n",
+ "T1 = 300.\t\t\t #initial temperature of air in K\n",
+ "P1 = 0.1;\t\t\t #initial pressure of air in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "T2 = T1*((1./volume_ratio)**(gaamma-1))\n",
+ "P2 = P1*((1./volume_ratio)**(gaamma))\n",
+ "W = (R*(T1-T2)*10**-3)/(gaamma-1)\n",
+ "\n",
+ "# Results\n",
+ "print ' The final temperature = %0.2f K'%(T2);\n",
+ "print ' The final pressure = %0.4f MPa'%(P2);\n",
+ "print ' Work done per mole of air = %0.3f kJ/mol'%(W);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final temperature = 886.25 K\n",
+ " The final pressure = 4.4313 MPa\n",
+ " Work done per mole of air = -12.185 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No : 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "volume_ratio = 1./15;\t\t\t #final volume to the initial volume of ideal gas at the end of compression (no unit)\n",
+ "T1 = 300. \t\t\t #initial temperature of ideal gas in K\n",
+ "P1 = 0.1;\t \t\t #initial pressure of ideal gas in MPa\n",
+ "R = 8.314;\t\t \t #universal gas constant in J/molK\n",
+ "n = 1.2;\t\t\t #index of expansion (no unit)\n",
+ "gaamma = 1.4;\t\t\t #ratio of the molar heat capacities at constant pressure and constant volume for ideal gas (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "P2 = P1*((1./volume_ratio)**n)\n",
+ "T2 = T1*(P2/P1)*(volume_ratio)\n",
+ "W = (R*(T1-T2)*10**-3)/(n-1)\n",
+ "del_u = (R*(T2-T1)*10**-3)/(gaamma-1)\n",
+ "q = del_u+W\n",
+ "\n",
+ "# Results\n",
+ "print ' The final pressure = %0.3f MPa'%(P2);\n",
+ "print ' The final temperature = %0.1f K'%(T2);\n",
+ "print ' Work done on the gas = %f kJ/mol'%(W);\n",
+ "print ' Heat interaction during the process = %f kJ/mol'%(q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final pressure = 2.578 MPa\n",
+ " The final temperature = 515.6 K\n",
+ " Work done on the gas = -8.963805 kJ/mol\n",
+ " Heat interaction during the process = -4.481902 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.13 Page No : 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 1.;\t \t\t #volume of tank in m**3\n",
+ "T0 = 300.\t\t\t #initial temperature of ideal gas in K\n",
+ "P0 = 0.1\t\t\t #initial pressure of ideal gas in MPa\n",
+ "T = 500.\t\t\t #temperature of ideal gas in the pipeline in K\n",
+ "P = 3.\t\t \t #pressure of ideal gas in the pipeline in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "gaamma = 1.4;\t\t\t #ratio of the molar heat capacities at constant pressure and constant volume for ideal gas (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "Pf = 3.\n",
+ "Tf = (Pf*10**6)/((((Pf*10**6)-(P0*10**6))/(gaamma*T))+((P0*10**6)/T0));\n",
+ "N = (V/R)*(((Pf*10**6)/Tf)-((P0*10**6)/T0));\n",
+ "\n",
+ "# Results\n",
+ "print ' The final temperature = %0.1f K'%(Tf);\n",
+ "print ' The amount of gas that has entered the tank = %0.2f mol'%(N);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final temperature = 670.2 K\n",
+ " The amount of gas that has entered the tank = 498.30 mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.14 Page No : 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "# Variables\n",
+ "V = 3. \t\t\t #volume of tank in m**3\n",
+ "T0 = 100.;\t\t\t #initial temperature of steam in degree celsius\n",
+ "T = 300.;\t\t\t #temperature of superheated steam in the pipeline in degree celsius\n",
+ "P = 3.;\t\t\t #pressure of superheated steam in the pipeline in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Ps = 101.33\n",
+ "vg = 1.673\n",
+ "hg = 2676.0\n",
+ "h = 2995.1\n",
+ "u0 = ((hg*10**3)-(Ps*10**3*vg))*10**-3\n",
+ "m0 = V/vg;\t\t\t\n",
+ "\n",
+ "Tf = 418.\n",
+ "vf = 0.102329\n",
+ "uf = 2965.78\n",
+ "\n",
+ "mf_guess = V/vf\n",
+ "\n",
+ "def solver_func(ui):\n",
+ " return (mf_guess*ui)-(m0*u0)-((mf_guess-m0)*h);\n",
+ "\n",
+ "uf_solved = fsolve(solver_func,mf_guess)\n",
+ "mf = mf_guess\n",
+ "mass = mf-m0\n",
+ "\n",
+ "# Results\n",
+ "print \" The final state of steamsuperheated, Pressure = %d MPa\"%(P);\n",
+ "print \" The final state of steamsuperheated, Temperature = %d degree celsius\"%(Tf);\n",
+ "print \" The mass of steam that entered the tank = %0.3f kg\"%(mass);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final state of steamsuperheated, Pressure = 3 MPa\n",
+ " The final state of steamsuperheated, Temperature = 418 degree celsius\n",
+ " The mass of steam that entered the tank = 27.524 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.15 Page No : 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 0.1;\t\t\t #volume of cylinder in m**3\n",
+ "T0 = 300.\t\t\t #initial temperature of nitrogen in K\n",
+ "P0 = 14.\t\t\t #initial pressure of nitrogen in MPa\n",
+ "P = 0.1;\t\t\t #ambient pressure in MPa\n",
+ "Pf = 2. \t\t\t #final pressure of nitrogen in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "gaamma = 1.4;\t\t #ratio of the molar heat capacities at constant pressure and constant volume for nitrogen (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "def solver_func(Ti):\n",
+ " return ((P0*10**6)-(Pf*10**6))-((gaamma/2)*(T0+Ti)*(((P0*10**6)/T0)-((Pf*10**6)/Ti)));\n",
+ "\n",
+ "Tguess = 300.\n",
+ "Tf = fsolve(solver_func,Tguess)\n",
+ "\n",
+ "N = (V/R)*(((P0*10**6)/T0)-((Pf*10**6)/Tf));\n",
+ "\n",
+ "# Results\n",
+ "print ' The final temperature = %0.1f K'%(Tf);\n",
+ "print ' The amount of gas that has escaped from the cylinder = %0.2f mol'%(N);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The final temperature = 181.2 K\n",
+ " The amount of gas that has escaped from the cylinder = 428.52 mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No : 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T0 = 300.;\t\t\t #initial temperature of superheated steam in degree celsius\n",
+ "P0 = 3.;\t\t\t #initial pressure of superheated steam in MPa\n",
+ "Xe = 0.85;\t\t\t #quality of steam leaving the turbine (no unit)\n",
+ "Tf = 45.;\t\t\t #final temperature of steam leaving the turbine in degree celsius\n",
+ "Vi = 10.;\t\t\t #velocity of steam at the entrance in m/s\n",
+ "Ve = 40.;\t\t\t #exit velocity of steam in m/s\n",
+ "Zi = 10.;\t\t\t #elevation at the entrance in m\n",
+ "Ze = 4.;\t\t\t #elevation at the exit in m\n",
+ "m = 1.;\t\t\t #mass flow rate of steam through turbine in kg/s\n",
+ "g = 9.81;\t\t\t #accleration due to gravity in m/s**2\n",
+ "\n",
+ "# Calculations\n",
+ "hi = 2995.1\n",
+ "hf = 188.35\n",
+ "hg = 2583.3\n",
+ "he = ((1-Xe)*hf)+(Xe*hg)\n",
+ "Q = 0.\t\t\t \n",
+ "enthalpy_change = (he*10**3)-(hi*10**3)\n",
+ "KE_change = ((Ve**2)-(Vi**2))/2\n",
+ "PE_change = g*(Ze-Zi);\t\t\t\n",
+ "Ws = Q-(m*(enthalpy_change+KE_change+PE_change)*10**-3)\n",
+ "err_KE = ((KE_change)/(Ws*10**3))*100;\t\n",
+ "err_PE = ((abs (PE_change)/(Ws*10**3)))*100\n",
+ "err = err_KE+err_PE\n",
+ "\n",
+ "# Results\n",
+ "print ' The percentage error when Kinetic energy change is ignored = %0.3f '%(err_KE);\n",
+ "print ' The percentage error when Potential energy change is ignored = %0.4f '%(err_PE);\n",
+ "print ' The percentage error when both Kinetic and Potential energy changes are ignored = %f '%(err);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage error when Kinetic energy change is ignored = 0.097 \n",
+ " The percentage error when Potential energy change is ignored = 0.0076 \n",
+ " The percentage error when both Kinetic and Potential energy changes are ignored = 0.104999 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.17 Page No : 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "Pi = 5.;\t\t\t #pressure of dry saturated steam at the entrance in bar\n",
+ "Pe = 2.;\t\t\t #pressure of dry saturated steam at the exit in bar\n",
+ "Vi = 3.;\t\t\t #velocity of dry saturated steam at the entrance in m/s\n",
+ "m = 1.; \t\t\t #flow rate of steam through the nozzle in kg/s\n",
+ "g = 9.81;\t\t\t #acceleration due to gravity in m/s**2\n",
+ "\n",
+ "# Calculations\n",
+ "hi = 2747.5\n",
+ "he = 2706.3\n",
+ "ve = 0.8854\n",
+ "Zi = 0;\t\t\n",
+ "Ze = 0;\t\t\n",
+ "Q = 0;\t\t\n",
+ "Ws = 0;\t\t\n",
+ "Ve = math.sqrt (2*(((Q-Ws)/m)-(g*(Zi-Ze))-((he*10**3)-(hi*10**3)))+(Vi**2))\n",
+ "A = (m*ve)/Ve\n",
+ "\n",
+ "# Results\n",
+ "print ' The velocity of dry saturated steam at the exit = %0.2f m/s'%(Ve);\n",
+ "print ' The cross sectional area of the nozzle at the exit = %0.3e m**2'%(A);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The velocity of dry saturated steam at the exit = 287.07 m/s\n",
+ " The cross sectional area of the nozzle at the exit = 3.084e-03 m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.18 Page No : 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 270.\t\t\t #temperature of wet steam in degree celsius\n",
+ "T2 = 120.\t\t\t #final temperature of superheated steam in degree celsius\n",
+ "P = 0.1;\t\t\t #pressure of superheated steam in MPa\n",
+ "\n",
+ "# Calculations\n",
+ "hf = 1185.2 \t\t\t\n",
+ "hg = 2789.9\t \t\t\n",
+ "he = 2716.04\t\t\t\n",
+ "Xi = (he-hf)/(hg-hf);\t\n",
+ "\n",
+ "# Results\n",
+ "print ' The quality of wet steam = %0.3f '%(Xi);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quality of wet steam = 0.954 \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.20 Page No : 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "del_H = -90.135;\t\t\t #standard enthalpy change for the reaction CO(g)+2H2(g)--->CH3OH(g) at 298.15K in kJ\n",
+ "\n",
+ "# Calculations\n",
+ "del_H1 = 2*del_H\n",
+ "del_H2 = (1./2)*del_H\n",
+ "\n",
+ "# Results\n",
+ "print ' The standard enthalpy change for the reaction 2COg)+4H2g)---->2CH3OHg \\\n",
+ ") at 298.15K = %0.2f kJ'%(del_H1);\n",
+ "print ' The standard enthalpy change for the reaction 1./2)COg)+H2g)---->1./2\\\n",
+ ")CH3OHg) at 298.15K = %0.4f kJ'%(del_H2 );\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The standard enthalpy change for the reaction 2COg)+4H2g)---->2CH3OHg ) at 298.15K = -180.27 kJ\n",
+ " The standard enthalpy change for the reaction 1./2)COg)+H2g)---->1./2)CH3OHg) at 298.15K = -45.0675 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.22 Page No : 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "del_Hf_C4H10 = -74.943;\t\t\t #smath.tan(math.radiansard enthalpy of formation of C4H10(g) at 298.15K in kJ\n",
+ "del_Hf_CO2 = -393.978;\t\t\t #smath.tan(math.radiansard enthalpy of formation of CO2(g) at 298.15K in kJ\n",
+ "del_Hf_H2O = -241.997;\t\t\t #smath.tan(math.radiansard enthalpy of formation of H2O(g) at 298.15K in kJ\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "del_Hr = (5*del_Hf_H2O)+(4*del_Hf_CO2)-(del_Hf_C4H10);\n",
+ "\n",
+ "# Results\n",
+ "print ' The standard enthalpy change for the reaction C4H10g)+13\\\n",
+ "/2)O2g)---->4CO2g)+5H2Og) at 298.15K = %0.3f kJ'%(del_Hr);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The standard enthalpy change for the reaction C4H10g)+13/2)O2g)---->4CO2g)+5H2Og) at 298.15K = -2710.954 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.23 Page No : 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "del_Hf_C4H10 = -74.943;\t\t\t #smath.tan(math.radiansard enthalpy of formation of C4H10(g) at 298.15K in kJ\n",
+ "del_Hf_CO2 = -393.978;\t\t\t #smath.tan(math.radiansard enthalpy of formation of CO2(g) at 298.15K in kJ\n",
+ "del_Hf_H2O = -241.997;\t\t\t #smath.tan(math.radiansard enthalpy of formation of H2O(g) at 298.15K in kJ\n",
+ "del_H_vap = 43.966;\t\t\t #enthalpy of vaporization of H2O at 298.15K in kJ/mol\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "del_H1 = 0.\n",
+ "del_H2 = 5*(-del_H_vap)\n",
+ "del_H3 = 0.\n",
+ "\n",
+ "del_H = (5*del_Hf_H2O)+(4*del_Hf_CO2)-(del_Hf_C4H10);\n",
+ "del_net_H = (del_H)+(del_H1)+(del_H2)+(del_H3)\n",
+ "\n",
+ "# Results\n",
+ "print ' The standard enthalpy change for the reaction C4H10g)+13/2)O2g)---->4CO2g\\\n",
+ ")+5H2Ol) at 298.15K = %0.3f kJ'%(del_net_H);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The standard enthalpy change for the reaction C4H10g)+13/2)O2g)---->4CO2g)+5H2Ol) at 298.15K = -2930.784 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.24 Page No : 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "del_H_comb = 2880.44;\t\t\t #gross heating value of n-buatne gas at 298.15K in kJ/mol\n",
+ "del_Hf_CO2 = -393.978;\t\t\t #standard enthalpy of formation of CO2(g) at 298.15K in kJ\n",
+ "del_Hf_H2O = -285.958;\t\t\t #standard enthalpy of formation of H2O(l) at 298.15K in kJ\n",
+ "del_Hf_O2 = 0.;\t\t \t #standard enthalpy of formation of O2(g) at 298.15K in kJ\n",
+ "\t\t\t \n",
+ "# Calculations\n",
+ "n_CO2 = 4.\n",
+ "n_H2O = 5.\n",
+ "n_O2 = -13./2\n",
+ "n_C4H10 = -1.\n",
+ "\t\t\t \n",
+ "del_Hf_C4H10 = (n_CO2*del_Hf_CO2)+(n_H2O*del_Hf_H2O)+(n_O2*del_Hf_O2)-(-del_H_comb);\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print ' The standard enthalpy of formation of n-butane gas at 298.15K = %0.3f kJ'%(del_Hf_C4H10);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The standard enthalpy of formation of n-butane gas at 298.15K = -125.262 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.25 Page No : 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "del_Hc_A = -890.94;\t\t\t #enthalpy change accompanying reaction A in kJ\n",
+ "del_Hc_B = -283.18;\t\t\t #enthalpy change accompanying reaction B in kJ\n",
+ "del_Hc_C = -286.03;\t\t\t #enthalpy change accompanying reaction C in kJ\n",
+ "del_H_vap = -43.966;\t\t\t #enthalpy change of vaporization of H2O at 298.15K in kJ/mol\n",
+ "\n",
+ "# Calculations\n",
+ "del_H0 = (del_Hc_A)-(del_Hc_B)-(3*del_Hc_C)+(del_H_vap)\n",
+ "\n",
+ "# Results\n",
+ "print ' The standard enthalpy change at 298.15K for the reaction \\\n",
+ "CH4g)+H2Og)--->COg)+3H2g) = %0.3f kJ'%(del_H0);\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The standard enthalpy change at 298.15K for the reaction CH4g)+H2Og)--->COg)+3H2g) = 206.364 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.26 Page No : 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "#The reaction is : C2H4(g)+H2O(g)--->C2H5OH(g)\n",
+ "del_H_vap = 43.82\n",
+ "\n",
+ "del_Hf = [52.335,-241.997,0,-277.819]\n",
+ "a = [4.196,28.850,20.691,0]\t\n",
+ "b = [154.565*10**-3,12.055*10**-3,205.346*10**-3,0]\n",
+ "c = [-81.076*10**-6,0,-99.793*10**-6,0]\n",
+ "d = [16.813*10**-9,0,18.825*10**-9,0]\t\n",
+ "e = [0,1.006*10**5,0,0];\t\t\n",
+ "\n",
+ "T1 = 298.15\t\t\n",
+ "T2 = 400.\t\t\t\n",
+ "n_C2H4 = -1.\n",
+ "n_H2O = -1.\n",
+ "n_C2H5OH = 1.\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "del_Hf_C2H5OH_g = del_Hf[3]+del_H_vap;\n",
+ "del_Hr = (n_C2H5OH*del_Hf_C2H5OH_g)+(n_C2H4*del_Hf[0])+(n_H2O*del_Hf[1])\n",
+ "del_a = (n_C2H4*a[0])+(n_H2O*a[1])+(n_C2H5OH*a[2])\t\t\t \n",
+ "del_b = (n_C2H4*b[0])+(n_H2O*b[1])+(n_C2H5OH*b[2])\t\t\t \n",
+ "del_c = (n_C2H4*c[0])+(n_H2O*c[1])+(n_C2H5OH*c[2])\t\t\t \n",
+ "del_d = (n_C2H4*d[0])+(n_H2O*d[1])+(n_C2H5OH*d[2])\t\t\t \n",
+ "del_e = (n_C2H4*e[0])+(n_H2O*e[1])+(n_C2H5OH*e[2])\t\t\t \n",
+ "del_H0 = (del_Hr*10**3)-((del_a*T1)+((del_b/2)*T1**2)+((del_c/3)*T1**3)+((del_d/4)*T1**4)-(del_e/T1))\n",
+ "del_Hr_T2 = (del_H0+((del_a*T2)+((del_b/2)*T2**2)+((del_c/3)*T2**3)+((del_d/4)*T2**4)-(del_e/T2)))*10**-3;\n",
+ "\n",
+ "# Results\n",
+ "print ' The standard enthalpy change at 400K for the reaction\\\n",
+ " C2H4g)+H2Og)--->C2H5OHg) = %f kJ'%(del_Hr_T2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The standard enthalpy change at 400K for the reaction C2H4g)+H2Og)--->C2H5OHg) = -44.529472 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.28 Page No : 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ " \n",
+ "#The combustion reaction of methane is given by:\n",
+ "# CH4(g)+2O2(g)--->CO2(g)+2H2O(g)\n",
+ "\n",
+ "n_O2 = 2.\t\t\t # stoichiometric amount of oxygen required for combustion\n",
+ "n_CH4 = 1.\t\t\t #number of moles of CH4(g) in moles\n",
+ "n_CO2 = 1.\t\t\t #number of moles of CO2(g) formed in the combustion reaction in moles\n",
+ "n_H2O = 2.\t\t\t #number of moles of H2O(g) formed in the combustion reaction in moles\n",
+ "del_Hf = [-74.943,0,-393.978,-241.997];\t\t\t # standard enthalpies of formation of CH4(g),O2(g),CO2(g),H2O(g) at 298.15K in kJ\n",
+ "a = [45.369,28.850,30.255,27.270];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),H2O(g),O2(g),N2(g) in J/molK\n",
+ "b = [8.688*10**-3,12.055*10**-3,4.207*10**-3,4.930*10**-3];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),H2O(g),O2(g),N2(g) in J/molK\n",
+ "c = [0,0,0,0]; \t \t\t #coefficients to compute isobaric molar heat capacity of CO2(g),H2O(g),O2(g),N2(g) in J/molK\n",
+ "d = [0,0,0,0];\t \t \t #coefficients to compute isobaric molar heat capacity of CO2(g),H2O(g),O2(g),N2(g) in J/molK\n",
+ "e = [-9.619*10**5,1.006*10**5,-1.887*10**5,0.333*10**5];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),H2O(g),O2(g),N2(g) in J/molK\n",
+ "per_excess_air = 50. \t\t\t #percentage excess of air supplied to the adiabatic burner\n",
+ "T_amb = 298.15\t\t\t # temperature at which air and methane enter the burner in K\n",
+ "per_N2 = 79.\t\t\t #percentage of N2 in the air supplied\n",
+ "per_O2 = 21.\t\t\t #percentage of O2 in the air supplied\n",
+ "\n",
+ "# Calculations\n",
+ "n_O2_actual = (1+(per_excess_air/100))*n_O2\n",
+ "n_N2 = n_O2_actual*(per_N2/per_O2);\t\t\t\n",
+ "n_O2_residual = n_O2_actual-n_O2;\t\t\t\n",
+ "\n",
+ "del_Hr = (n_CO2*del_Hf[2])+(n_H2O*del_Hf[3])-(n_O2*del_Hf[1])-(n_CH4*del_Hf[0])\n",
+ "\n",
+ "del_a = (n_CO2*a[0])+(n_H2O*a[1])+(n_O2_residual*a[2])+(n_N2*a[3])\n",
+ "del_b = (n_CO2*b[0])+(n_H2O*b[1])+(n_O2_residual*b[2])+(n_N2*b[3])\n",
+ "del_c = (n_CO2*c[0])+(n_H2O*c[1])+(n_O2_residual*c[2])+(n_N2*c[3])\n",
+ "del_d = (n_CO2*d[0])+(n_H2O*d[1])+(n_O2_residual*d[2])+(n_N2*d[3])\n",
+ "del_e = (n_CO2*e[0])+(n_H2O*e[1])+(n_O2_residual*e[2])+(n_N2*e[3]);\t\n",
+ "tguess = 500.\n",
+ "\n",
+ "def solver_func(ti):\n",
+ " return (-(del_Hr*10**3))-((del_a*(ti-T_amb))+((del_b/2)*((ti**2)-(T_amb**2)))+((del_c/3)*((ti**3)-(T_amb**3)))+((del_d/4)*((ti**4)-(T_amb**4)))+(del_e*((1./T_amb)-(1./ti))));\n",
+ "\n",
+ "T = fsolve(solver_func,tguess)\n",
+ "\n",
+ "# Results\n",
+ "print ' The flame temperature when methane is burned with 50 percent excess air \\\n",
+ "in an adiabatic burner = %f K'%(T);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The flame temperature when methane is burned with 50 percent excess air in an adiabatic burner = 1793.784965 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4.29 Page No : 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T_exit = 550.\t\t\t #temperature in K at which the combustion products leave the boiler\n",
+ "percent_molar_comp_prdct = [6.28,3.14,7.85,82.73];\t\t\t # percentage molar composition of the combustion products CO2(g),CO(g),O2(g),N2(g) on dry basis\n",
+ "T_ent = 298.15;\t\t\t #temperature in K at which Propane and air enter the combustion chamber\n",
+ "del_Hf = [-393.978,-110.532,-241.997,0,0,-103.833];\t\t\t #smath.tan(math.radiansard enthalpies of formation of CO2(g),CO(g),H2O(g),O2(g),N2(g),C3H8(g) at 298.15K in kJ\n",
+ "a = [45.369,28.068,30.255,27.270,28.850];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),CO(g),O2(g),N2(g),H2O(g) in J/molK\n",
+ "\n",
+ "#coefficients to compute isobaric molar heat capacity of CO2(g),CO(g),O2(g),N2(g),H2O(g) in J/molK\n",
+ "b = [8.688*10**-3,4.631*10**-3,4.207*10**-3,4.930*10**-3,12.055*10**-3];\n",
+ "c = [0,0,0,0,0];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),CO(g),O2(g),N2(g),H2O(g) in J/molK\n",
+ "d = [0,0,0,0,0];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),CO(g),O2(g),N2(g),H2O(g) in J/molK\n",
+ "e = [-9.619*10**5,-0.258*10**5,-1.887*10**5,0.333*10**5,1.006*10**5];\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g),CO(g),O2(g),N2(g),H2O(g) in J/molK\n",
+ "per_N2 = 79.\t\t\t #percentage of nitrogen in air\n",
+ "per_O2 = 21.\t\t\t #percentage of oxygen in air\n",
+ "molar_mass_propane = 44.*10**-3;\t\t\t #molar mass of propane in kg/mole\n",
+ "\n",
+ "# Calculations\n",
+ "# TAKE BASIS AS 100 mol OF DRY COMBUSTION PRODUCTS\n",
+ "n_CO2 = percent_molar_comp_prdct[0]\t\t\t #number of moles of CO2(g) in the product stream\n",
+ "n_CO = percent_molar_comp_prdct[1]\t\t\t #number of moles of CO(g) in the product stream\n",
+ "n_O2 = percent_molar_comp_prdct[2]\t\t\t #number of moles of O2(g) in the product stream\n",
+ "n_N2 = percent_molar_comp_prdct[3]\t\t\t #number of moles of N2(g) in the product stream\n",
+ "\n",
+ "x = (n_CO2+n_CO)/3;\n",
+ "\n",
+ "y = (2*n_N2)/(2*(per_N2/per_O2));\n",
+ "\n",
+ "z = (2*y)-(2*n_CO2)-(n_CO)-(2*n_O2);\n",
+ "\n",
+ "n_H2O = z\n",
+ "n_C3H8 = x\n",
+ "\n",
+ "del_Hr = (n_CO2*del_Hf[0])+(n_CO*del_Hf[1])+(n_H2O*del_Hf[2])-(n_C3H8*del_Hf[5]);\n",
+ "\n",
+ "del_a = (n_CO2*a[0])+(n_CO*a[1])+(n_O2*a[2])+(n_N2*a[3])+(n_H2O*a[4])\t\n",
+ "del_b = (n_CO2*b[0])+(n_CO*b[1])+(n_O2*b[2])+(n_N2*b[3])+(n_H2O*b[4])\t\n",
+ "del_c = (n_CO2*c[0])+(n_CO*c[1])+(n_O2*c[2])+(n_N2*c[3])+(n_H2O*c[4])\t\n",
+ "del_d = (n_CO2*d[0])+(n_CO*d[1])+(n_O2*d[2])+(n_N2*d[3])+(n_H2O*d[4])\t\n",
+ "del_e = (n_CO2*e[0])+(n_CO*e[1])+(n_O2*e[2])+(n_N2*e[3])+(n_H2O*e[4])\t\n",
+ "\n",
+ "#calulation of del_Hp J\n",
+ "del_Hp = (del_a*(T_exit-T_ent))+((del_b/2)*((T_exit**2)-(T_ent**2)))+((del_c/3)*((T_exit**3)-(T_ent**3)))+((del_d/4)*((T_exit**4)-(T_ent**4)))-(del_e*((1./T_exit)-(1./T_ent)));\n",
+ "del_H = ((del_Hr*10**3)+(del_Hp))*10**-3;\t\t\t \n",
+ "mass_propane = n_C3H8*molar_mass_propane;\t\t\t \n",
+ "energy = (-(del_H*10**3)/mass_propane)*10**-6;\t\t\n",
+ " \n",
+ "# Results\n",
+ "print ' The energy transferred as heat per kg propane = %f MJ'%(energy); \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The energy transferred as heat per kg propane = 33.741510 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch5.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch5.ipynb
new file mode 100755
index 00000000..9cf5b1c8
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch5.ipynb
@@ -0,0 +1,974 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Second law of thermodynamics and its applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No : 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 1000.;\t\t \t #amount of energy absorbed by the heat engine in kJ/s\n",
+ "W = 650.;\t\t\t #work delivered by the heat engine in kW\n",
+ "T_source = 500. \t\t #temperature of the source in degree celsius\n",
+ "T_sink = 25.\t\t\t #temperature of the sink in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "n_claimed = W/Q\n",
+ "T1 = T_source+273.15\n",
+ "T2 = T_sink+273.15\n",
+ "n_carnot = 1-(T2/T1)\n",
+ "\n",
+ "# Results\n",
+ "print \" The efficiency of the Carnot engine = %0.3f \"%(n_carnot);\n",
+ "print \" The efficiency of the engine claimed by the inventor = %0.2f \"%(n_claimed);\n",
+ "if n_claimed<n_carnot:\n",
+ " print \" The claimed heat engine is theoretically feasible as the efficiency of the engine is lesser than that of a Carnot engine\";\n",
+ "else:\n",
+ " print \" The claimed heat engine is not theoretically feasible as the efficiency of the engine is greater than that of a Carnot engine\";\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The efficiency of the Carnot engine = 0.614 \n",
+ " The efficiency of the engine claimed by the inventor = 0.65 \n",
+ " The claimed heat engine is not theoretically feasible as the efficiency of the engine is greater than that of a Carnot engine\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No : 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T_source_summer = 42; #temperature in the summer months in degree celsius\n",
+ "T_sink_winter = 0;\t #temperature in the winter months in degree celius\n",
+ "T_amb = 25;\t\t\t #temperature at which the house is to be maintained during both the months in degree celsius\n",
+ "energy_loss = 0.5;\n",
+ "\n",
+ "# Calculations\n",
+ "T_H_summer = T_source_summer+273.15\n",
+ "T_L_summer = T_amb+273.15\n",
+ "T_H_winter = T_amb+273.15\n",
+ "T_L_winter = T_sink_winter+273.15\n",
+ "W_summer = (energy_loss*((T_H_summer-T_L_summer)**2))/(T_L_summer)\n",
+ "W_winter = (energy_loss*((T_H_winter-T_L_winter)**2))/(T_H_winter)\n",
+ "\n",
+ "# Results\n",
+ "print \" The minimum power required to operate the device in summer = %.4f kW \"%(W_summer);\n",
+ "print \" The minimum power required to operate the device in winter = %f kW \"%(W_winter);\n",
+ "\n",
+ "# Note: Answer in book is wrong. Please calculated manually."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The minimum power required to operate the device in summer = 0.4847 kW \n",
+ " The minimum power required to operate the device in winter = 1.048130 kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page No : 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T_L = 4.25 \t\t\t #normal boiling point of helium in K\n",
+ "Q_L = 0.083\t\t\t #latent heat of vaporization of helium in kJ/mol\n",
+ "n = 1. \t\t\t #amount of liquid helium to be produced in kmol\n",
+ "T_amb = 42.\t\t\t #ambient temperature in summer in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "T_H = T_amb+273.15\n",
+ "COP = (T_L)/(T_H-T_L)\n",
+ "W = (Q_L)/COP;\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The maximum possible COP of the unit = %0.4f \"%(COP);\n",
+ "print \" The minimum amount of work to be done on the refrigerating unit = %f kJ \"%(W);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum possible COP of the unit = 0.0137 \n",
+ " The minimum amount of work to be done on the refrigerating unit = 6.071694 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No : 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T_ice = 0.;\t\t \t #temperature of the ice to be produced in degree celsius\n",
+ "m = 5000.;\t\t\t #rate at which ice is to be produced in kg/hour\n",
+ "T_water = 0.;\t \t\t #temperature of water used to produce ice in degree celsius\n",
+ "T_amb = 40.;\t\t \t #ambient temperature in degree celsius\n",
+ "T_source = 100.;\t\t\t #temperature of the source for operating heat engine in degree celsius\n",
+ "lambda_fusion = 6.002;\t\t\t #latent heat of fusion of water in kJ/mol at 0 degree celsius\n",
+ "molar_mass = 18*10**-3;\t\t\t #molar mass of water in kg/mol\n",
+ "\n",
+ "# Calculations\n",
+ "T_L = T_water+273.15\n",
+ "T_H = T_amb+273.15\n",
+ "COP = (T_L)/(T_H-T_L)\n",
+ "Q_L = ((m/3600)/molar_mass)*(lambda_fusion)\n",
+ "W = (Q_L)/(COP);\t\t\t \n",
+ "T1 = T_source+273.15;\t\t\n",
+ "T2 = T_amb+273.15\n",
+ "n_heatengine = (T1-T2)/T1\n",
+ "Q1 = W/n_heatengine;\t\n",
+ "energy_ratio = (Q1+Q_L)/Q_L;\n",
+ "\n",
+ "# Results\n",
+ "print \" The minimum power required to operate the refrigerator = %0.2f kW\"%(W);\n",
+ "print \" The maximum possible efficiency of the heat engine = %0.4f \"%(n_heatengine);\n",
+ "print \" Ratio of the energy rejected to the ambient atmosphere to the\\\n",
+ " energy absorbed from the water = %0.4f \"%(energy_ratio);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The minimum power required to operate the refrigerator = 67.82 kW\n",
+ " The maximum possible efficiency of the heat engine = 0.1608 \n",
+ " Ratio of the energy rejected to the ambient atmosphere to the energy absorbed from the water = 1.9107 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No : 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 800.\t\t\t #temperature of reservoir 1 in K\n",
+ "T2 = 400.\t\t\t #temperature of reservoir 2 in K\n",
+ "Q1 = 1000.\t\t\t #energy absorbed from reservoir maintained at T1 in kJ\n",
+ "Q2 = 400.\t\t\t #energy absorbed from reservoir maintained at T2 in kJ\n",
+ "W = 1000.\t\t\t #work delivered by the heat engine in kJ\n",
+ "T3 = 300.\t\t\t #temperature of the sink in K\n",
+ "\n",
+ "# Calculations\n",
+ "Q3 = (Q1+Q2)-W\n",
+ "clausius_inequality = (Q1/T1)+(Q2/T2)-(Q3/T3)\n",
+ "\n",
+ "# Results\n",
+ "print \" The LHS of the Clausius inequality = %0.4f \"%(clausius_inequality);\n",
+ "if clausius_inequality<0 or clausius_inequality == 0:\n",
+ " print \" The given process does not violate the second law of thermodynamics, therefore the claim is correct\"\n",
+ "else:\n",
+ " print \" This is a violation of the second law of thermodynamics, and hence the claim cannot be justified\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The LHS of the Clausius inequality = 0.9167 \n",
+ " This is a violation of the second law of thermodynamics, and hence the claim cannot be justified\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No : 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T_system = 200.;\t\t\t #temperature of the contents of reactor in degree celsius\n",
+ "t = 15. \t\t\t #operation time of agitator in minutes\n",
+ "P = 750. \t \t\t #power of the operating motor in W\n",
+ "\n",
+ "# Calculations\n",
+ "dQ = P*t*60*10**-3\n",
+ "T = T_system+273.15\n",
+ "del_S = dQ/T;\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The change in the entropy of the reactor contents = %0.4f kJ/K \"%(del_S);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in the entropy of the reactor contents = 1.4266 kJ/K \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No : 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "P = 0.101325;\t\t\t #pressure in the piston cylinder assembly in MPa\n",
+ "T1 = 300.;\t\t\t #temperature of the piston cylinder assembly in K\n",
+ "T2 = 400;\t\t\t #final temperature of the piston cylinder assembly in K\n",
+ "a = 45.369;\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g) in J/molK\n",
+ "b = 8.688*10**-3;\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g) in J/molK\n",
+ "e = 9.619*10**5;\t\t\t #coefficients to compute isobaric molar heat capacity of CO2(g) in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "del_S = (a*math.log(T2/T1))+(b*(T2-T1))+((e)*((1./T2**2)-(1./T1**2)))\n",
+ "\n",
+ "# Results\n",
+ "print \" The change in entropy of CO2 = %.4f J/molK\"%(del_S);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in entropy of CO2 = 9.2447 J/molK\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No : 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 1. \t\t\t #amount of saturated liquid water in kg\n",
+ "T_initial = 100.\t\t #initial temperature of water in degree celsius\n",
+ "T_body = 500.\t\t\t #temperature of body which is brought into contact with the cylinder in degree celsius\n",
+ "hfg = 2256.94\t\t\t #enthalpy of vaporization taken from steam tables corresponding to T1 in kJ/kg\n",
+ "\n",
+ "# Calculations\n",
+ "T = T_initial+273.15\n",
+ "del_S = hfg/T;\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The change in entropy of water = %0.4f kJ/kgK\"%(del_S);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in entropy of water = 6.0483 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No : 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m_steel = 10. \t\t\t #mass of steel casting in kg\n",
+ "T_steel = 800.\t \t\t #temperature of steel casting in degree celsius\n",
+ "m_water = 100.\t\t \t #mass of water used for quenching in kg\n",
+ "T_water = 30.\t\t\t #temperature of water used for quenching in degree celsius\n",
+ "Cp_steel = 0.461;\t\t\t #heat capacity of steel in kJ/kgK\n",
+ "Cp_water = 4.23;\t\t\t #heat capacity of water in kJ/kgK\n",
+ "\n",
+ "# Calculations\n",
+ "Ti_steel = T_steel+273.15\n",
+ "Ti_water = T_water+273.15\n",
+ "T_final = ((m_steel*Cp_steel*Ti_steel)+(m_water*Cp_water*Ti_water))/((m_steel*Cp_steel)+(m_water*Cp_water));\n",
+ "del_S_steel = m_steel*Cp_steel*math.log(T_final/Ti_steel)\n",
+ "del_S_water = m_water*Cp_water*math.log(T_final/Ti_water)\n",
+ "\n",
+ "# Results\n",
+ "print \" The change in entropy of steel = %0.4f kJ/K\"%(del_S_steel);\n",
+ "print \" The change in entropy of water = %f kJ/K\"%(del_S_water);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in entropy of steel = -5.7031 kJ/K\n",
+ " The change in entropy of water = 11.427392 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No : 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 2.\t \t\t #volume of insulated tank in m**3\n",
+ "Ta = 400.\t\t\t #temperature of gas in compartment (a) in K\n",
+ "Pa = 3.\t\t \t #pressure of gas in compartment (a) in MPa\n",
+ "Tb = 600.\t\t\t #temperature of gas in compartment (b) in K\n",
+ "Pb = 1.\t\t\t #pressure of gas in compartment (b) in MPa\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Va = V/2\n",
+ "Vb = V/2\n",
+ "Na = (Pa*10**6*Va)/(R*Ta)\n",
+ "Nb = (Pb*10**6*Vb)/(R*Tb)\n",
+ "T = ((Na*Ta)+(Nb*Tb))/(Na+Nb)\n",
+ "N = Na+Nb;\t\t\t \n",
+ "P = ((N*R*T)/V)*10**-6\n",
+ "Cp = (5./2)*R;\t\t\t\n",
+ "del_S = ((Na*((Cp*math.log(T/Ta))-(R*math.log(P/Pa))))+(Nb*((Cp*math.log(T/Tb))-(R*math.log(P/Pb)))))*10**-3; # Calculations of the change in entropy using Eq.(5.43) in kJ/K\n",
+ "\n",
+ "# Results\n",
+ "print \" Entropy change of the gas = %0.2f kJ/K\"%(del_S);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy change of the gas = 2.19 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.12 Page No : 177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "N = 1.\t \t\t #amount of air to be separated into its components in kmol\n",
+ "P = 0.1\t\t \t #pressure of air in MPa\n",
+ "T = 300.\t\t\t #temperature of air in K\n",
+ "per_oxygen = 21.\t\t\t #percentage of oxygen in air\n",
+ "per_nitrogen = 79.\t\t\t #percentage of nitrogen in air\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "x1 = per_nitrogen/100\n",
+ "x2 = per_oxygen/100;\n",
+ "W = (T*N*10**3*R*((x1*math.log (x1))+(x2*math.log (x2))))*10**-3\n",
+ "\n",
+ "# Results\n",
+ "print \" Minimum work to be done to separate 1kmol of air at 0.1MPa and 300K into pure oxygen\\\n",
+ " and nitrogen at the same temperature and pressure = %0.2f kJ\"%(abs(W));"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Minimum work to be done to separate 1kmol of air at 0.1MPa and 300K into pure oxygen and nitrogen at the same temperature and pressure = 1281.91 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.13 Page No : 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "m_ice = 10.\t \t\t #mass of the block of ice in kg\n",
+ "T_ice = 0.\t\t \t #temperature of the ice in degree celsius\n",
+ "m_water = 100.\t\t\t #mass of watre in the tank in kg\n",
+ "T_water = 30.\t\t\t #temperature of the water in the tank in degree celsius\n",
+ "Cp = 4.23;\t\t\t #heat capacity of water in kJ/kgK\n",
+ "lambda_melting = 333.44\t\t\t #latent heat of melting of ice in kJ/kg\n",
+ "\n",
+ "# Calculations\n",
+ "Ti_ice = T_ice+273.15\n",
+ "Ti_water = T_water+273.15\n",
+ "T_final = ((m_water*Cp*Ti_water)+(m_ice*Cp*Ti_ice)-(m_ice*lambda_melting))/((m_ice*Cp)+(m_water*Cp))\n",
+ "del_S_ice = ((m_ice*lambda_melting)/(Ti_ice))+(m_ice*Cp*math.log (T_final/Ti_ice));\t\t\t \n",
+ "del_S_water = m_water*Cp*math.log (T_final/Ti_water)\n",
+ "del_S_G = del_S_ice+del_S_water;\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The change in entropy of ice = %f kJ/K\"%(del_S_ice);\n",
+ "print \" The change in entropy of water = %f kJ/K\"%(del_S_water);\n",
+ "print \" The entropy generated = %f kJ/K\"%(del_S_G);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in entropy of ice = 15.211650 kJ/K\n",
+ " The change in entropy of water = -14.035033 kJ/K\n",
+ " The entropy generated = 1.176617 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.14 Page No : 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 3.\t\t\t #pressure of superheated steam in MPa\n",
+ "T_enter = 300.\t\t\t #entrance temperature of superheated steam in degree celsius\n",
+ "T_exit = 45.\t\t\t #final temperature at which the steam leaves in degree celsisus\n",
+ "m = 1. \t\t\t #mass flow rate of steam in kg/s\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "si = 6.5422\n",
+ "hi = 2995.1\n",
+ "sf = 0.6383\n",
+ "hf = 188.35\n",
+ "sg = 8.1661;\t\t\t #entropy of saturated vapour in kJ/kgK\n",
+ "hg = 2583.3;\t\t\t #entahlpy of saturayed vapour in kJ/kg\n",
+ "\n",
+ "Xe = (si-sf)/(sg-sf)\n",
+ "he = ((1-Xe)*hf)+(Xe*hg)\n",
+ "Ws = -m*(he-hi);\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The power Results from the turbine = %0.1f kW\"%(Ws);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power Results from the turbine = 928.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.15 Page No : 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "Pi = 3.\t\t\t #pressure of dry saturated steam when it enters the nozzle in bar\n",
+ "Pe = 2.\t\t\t #pressure of dry saturated steam at the exit in bar\n",
+ "\n",
+ "# Calculations\n",
+ "#From steam tables corresponding to Pi\n",
+ "si = 6.9909;\t\t\t #entropy of steam at the entrance in kJ/kgK\n",
+ "hi = 2724.7;\t\t\t #entahlpy of steam at the entrance in kJ/kg\n",
+ "\n",
+ "#From steam tables corresponding to Pe\n",
+ "sf = 1.5301;\t\t\t #entropy of saturated liquid in kJ/kgK\n",
+ "hf = 504.70;\t\t\t #enthalpy of saturated liquid in kJ/kg\n",
+ "sg = 7.1268;\t\t\t #entropy of saturated vapour in kJ/kgK\n",
+ "hg = 2706.3;\t\t\t #entahlpy of saturayed vapour in kJ/kg\n",
+ "\n",
+ "se = 6.9909\n",
+ "Xe = (se-sf)/(sg-sf)\n",
+ "he = ((1-Xe)*hf)+(Xe*hg)\n",
+ "Ve = math.sqrt (2*(hi-he)*10**3)\n",
+ "\n",
+ "# Results\n",
+ "print \" The exit velocity of steam = %f m/s\"%(Ve);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The exit velocity of steam = 379.103198 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.16 Page No : 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "N_glycerol = 100.\t\t\t #molar flow rate of glycerol in mol/s\n",
+ "Ti_gly = 227.\t\t\t #inlet temperature of glycerol in degree celsius\n",
+ "Te_gly = 40.\t\t\t #outlet temperature of glycerol in degree celsius\n",
+ "Ti_water = 25.\t\t\t #inlet temperature of cooling water in degree celsius\n",
+ "Te_water = 50.\t\t\t #outlet temperature of cooling water in degree celsius\n",
+ "Cp_gly = 280.\t\t\t #heat capacity of glycerol in J/molK\n",
+ "Cp_water = 77.\t\t\t #heat capacity of water in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Ti_gly = Ti_gly+273.15\n",
+ "Te_gly = Te_gly+273.15\n",
+ "Ti_water = Ti_water+273.15\n",
+ "Te_water = Te_water+273.15\n",
+ "\n",
+ "N_water = -(N_glycerol*Cp_gly*(Te_gly-Ti_gly))/(Cp_water*(Te_water-Ti_water));\n",
+ "del_S_gly = N_glycerol*Cp_gly*math.log (Te_gly/Ti_gly)*10**-3\n",
+ "del_S_water = N_water*Cp_water*math.log (Te_water/Ti_water)*10**-3\n",
+ "S_G = del_S_gly+del_S_water\n",
+ "\n",
+ "# Results\n",
+ "print \" The rate at which entropy is generated in the heat exchanger = %0.3f kJ/K s\"%(S_G);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rate at which entropy is generated in the heat exchanger = 3.754 kJ/K s\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.17 Page No : 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T_i = 150.\t\t\t #temperature of saturated steam taken up by the device in degree celsius\n",
+ "T_e = 200.\t\t\t #temperature of superheated steam delivered by the device in degree celsius\n",
+ "P_e = 0.2\t\t\t #pressure of superheated steam delivered by the device in MPa\n",
+ "me2 = 0.949\t\t\t #mass of superheated steam leaving the device in kg\n",
+ "me1 = 0.051\t\t\t #mass of saturated liquid leaving the device in kg\n",
+ "T_liq = 100.\t\t #temperature of saturated liquid leaving the device in degree celsius\n",
+ "mi = 1. \t\t #mass of saturated steam fed to the device in kg\n",
+ "\n",
+ "# Calculations\n",
+ "#From steam tables corresponding to T_i\n",
+ "hi = 2745.4 \t\t\t #enthalpy of saturated vapour in kJ/kg\n",
+ "si = 6.8358;\t\t\t #entropy of saturated vapour in kJ/kgK\n",
+ "\n",
+ "#For saturated liquid at T_liq\n",
+ "he1 = 419.06;\t\t\t #enthalpy of saturated liquid in kJ/kg\n",
+ "se1 = 1.3069;\t\t\t #entropy of saturated vapour in kJ/kgK\n",
+ "\n",
+ "#For superheated steam at P_e and T_e\n",
+ "he2 = 2870.5;\t\t\t #enthalpy of superheated steam in kJ/kg\n",
+ "se2 = 7.5072;\t\t\t #entropy of superheated steam in kJ/kgK\n",
+ "\n",
+ "LHS = mi*hi;\n",
+ "RHS = (me1*he1)+(me2*he2);\n",
+ "\n",
+ "S_G = (me1*se1)+(me2*se2)-(mi*si);\n",
+ "\n",
+ "# Results\n",
+ "print \" The LHS of the equation applied to the flow device to check if the first law of thermodynamics is satisfied = %0.1f kJ\"%(LHS);\n",
+ "print \" The RHS of the equation applied to the flow device to check if the first law of thermodynamics is satisfied = %0.1f kJ\"%(RHS);\n",
+ "print \" The entropy generated by applying the second law of thermodynamics to the flow device = %0.4f kJ/kgK\"%(S_G);\n",
+ "if int(LHS) == int(RHS) and S_G>0 or S_G == 0 :\n",
+ " print \" As the first and second law of thermodynamics are satisfied, the device is theoretically feasible \"\n",
+ "else:\n",
+ " print \" As both the first and second law or either the first or second law of thermodynamics \\\n",
+ " are not satisfied, the device is not feasible \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The LHS of the equation applied to the flow device to check if the first law of thermodynamics is satisfied = 2745.4 kJ\n",
+ " The RHS of the equation applied to the flow device to check if the first law of thermodynamics is satisfied = 2745.5 kJ\n",
+ " The entropy generated by applying the second law of thermodynamics to the flow device = 0.3552 kJ/kgK\n",
+ " As the first and second law of thermodynamics are satisfied, the device is theoretically feasible \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.18 Page No : 185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pi = 30.\t\t\t #pressure of superheated steam entering the turbine in bar\n",
+ "Ti = 300.\t\t\t #temperature of superheated steam entering the turbine in degree celsius\n",
+ "Pe = 0.1\t\t\t #pressure at which steam exits the turbine in bar\n",
+ "Xe = 0.9\t\t\t #quality of steam at the exit (no unit)(for the actual turbine)\n",
+ "\n",
+ "# Calculations\n",
+ "#For superheated steam at Pi and Ti\n",
+ "hi = 2995.1;\t\t\t #enthalpy of superheated steam at the entrance in kJ/kg\n",
+ "si = 6.5422;\t\t\t #entropy of superheated steam at the entrance in kJ/kgK\n",
+ "\n",
+ "#For steam at Pe\n",
+ "hf = 191.83;\t\t\t #enthalpy of saturated liquid in kJ/kg\n",
+ "hg = 2584.8;\t\t\t #enthalpy of saturated vapour in kJ/kg\n",
+ "sf = 0.6493;\t\t\t #entropy of saturated liquid in kJ/kgK\n",
+ "sg = 8.1511;\t\t\t #entropy of saturated vapour in kJ/kgK\n",
+ "\n",
+ "X2 = (si-sf)/(sg-sf)\n",
+ "h2 = (hf*(1-X2))+(X2*hg)\n",
+ "he = (hf*(1-Xe))+(Xe*hg)\n",
+ "n_T = (hi-he)/(hi-h2)\n",
+ "\n",
+ "# Results\n",
+ "print \" The isentropic efficiency of the turbine = %f \"%(n_T);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The isentropic efficiency of the turbine = 0.703395 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.19 Page No : 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Ti = 25.\t\t\t #temperature of air taken in by the adiabatic air compressor in degree celsius\n",
+ "Pi = 0.1\t\t\t #pressure of air taken in by the adiabatic air compressor in MPa\n",
+ "Pe = 1.\t \t\t #discharge pressure of air in MPa\n",
+ "n_c = 0.8\t\t\t #isentropic efficiency of the compressor (no unit)\n",
+ "gaamma = 1.4\t\t #ratio of molar specific heat capacities (no unit)\n",
+ "R = 8.314\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Ti = Ti+273.15\n",
+ "Te = Ti*(((Pe*10**6)/(Pi*10**6))**((gaamma-1)/gaamma))\n",
+ "W_s = (((R*gaamma)/(gaamma-1))*(Te-Ti))*10**-3;\t\t\t\n",
+ "Ws = W_s/n_c\n",
+ "Te_actual = ((Ws*10**3*(gaamma-1))/(R*gaamma))+Ti\n",
+ "\n",
+ "# Results\n",
+ "print \" The exit temperature of air = %0.2f K\"%(Te_actual);\n",
+ "print \" The power consumed by the compressor = %f kW/mol\"%(Ws);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The exit temperature of air = 645.01 K\n",
+ " The power consumed by the compressor = 10.093262 kW/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.20 Page No : 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Ti = 30.\t\t\t #temperature of saturated liquid water in degree celsius\n",
+ "m = 500.\t\t\t #mass flow rate of water being pumped in kg/s\n",
+ "P2 = 3. \t\t\t #preesure maintained in the boiler in MPa\n",
+ "n_p = 0.75;\t\t\t #isentropic efficiency of the pump (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "#For saturated liquid water at Ti\n",
+ "vf = 0.0010043\n",
+ "P1 = 4.241;\t\t\n",
+ "\n",
+ "Ws_m = (vf*((P2*10**6)-(P1*10**3)))*10**-3\n",
+ "Ws_act_m = Ws_m/n_p;\t\t\t \n",
+ "P = ((Ws_act_m*10**3)*m)*10**-6;\n",
+ "\n",
+ "# Results\n",
+ "print \" The power consumed by the pump = %d MW\"%(P);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power consumed by the pump = 2 MW\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5.21 Page No : 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pi = 3.\t\t\t #pressure of dry saturated steam entering the nozzle in bar\n",
+ "Xe = 0.98\t\t #quality of steam exiting the nozzle (no unit)\n",
+ "Pe = 2.\t\t\t #pressure of steam exiting the nozzle in bar\n",
+ "\n",
+ "# Calculations\n",
+ "#For steam at Pi\n",
+ "hi = 2724.7\n",
+ "he = 2652.8\n",
+ "V2_2_s = hi-he\n",
+ "\n",
+ "#For steam at Pe\n",
+ "hf = 504.70\n",
+ "hg = 2706.3\n",
+ "he_act = ((1-Xe)*hf)+(Xe*hg)\n",
+ "V2_2 = hi-he_act;\t\t\t\n",
+ "n_N = (V2_2)/(V2_2_s)\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The isentropic efficiency of the nozzle = %0.3f \"%(n_N);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The isentropic efficiency of the nozzle = 0.868 \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch6.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch6.ipynb
new file mode 100755
index 00000000..cf3f1f12
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch6.ipynb
@@ -0,0 +1,214 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Thermodynamic potentials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No : 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 0.1;\t\t\t #mass of superheated steam in the piston cylinder assembly in kg\n",
+ "P1 = 1.\t \t\t #initial pressure of superheated steam in MPa\n",
+ "T1 = 300.\t\t\t #initial temperature of superheated steam in degree celsius\n",
+ "P2 = 0.1\t\t\t #pressure of steam after expansion in MPa\n",
+ "T2 = 200.\t\t\t #temperature of steam after expansion in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "#For steam at P1 and T1:\n",
+ "h1 = 3052.1\n",
+ "v1 = 0.2580\n",
+ "\n",
+ "#For steam at P2 and T2:\n",
+ "h2 = 2875.4\n",
+ "v2 = 2.1720\n",
+ "\n",
+ "del_u = (((h1*10**3)-(P1*10**6*v1))-((h2*10**3)-(P2*10**6*v2)))*10**-3\n",
+ "W = m*(del_u)\n",
+ "\n",
+ "# Results\n",
+ "print \" The work done by steam = %0.2f kJ\"%(W);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work done by steam = 13.59 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No : 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 3.\t \t\t #pressure of superheated steam in MPa\n",
+ "Ti = 300.\t\t\t #temperature at which the steam enters the turbine in degree celsius\n",
+ "m = 1.\t\t \t #mass flow rate of steam in kg/s\n",
+ "Te = 60.\t\t\t #temperature of dry saturated steam when it leaves the turbine in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "#For steam at P and Ti:\n",
+ "h1 = 2995.1\t\t\t #specific entahlpy of steam in kJ/kg\n",
+ "\n",
+ "#For saturated steam at Te:\n",
+ "h2 = 2609.7\t\t\t #specific enthalpy of saturated vapour in kJ/kg\n",
+ "\n",
+ "Ws = m*(h1-h2)\t\t # Calculations of the power Results of the turbine using Eq.(6.83) in kW\n",
+ "\n",
+ "# Results\n",
+ "print \" The power Results of the turbine = %0.1f kW\"%(Ws);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power Results of the turbine = 385.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No : 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 0.1 \t\t\t #mass of superheated steam in the piston cylinder assembly in kg\n",
+ "P1 = 3.\t \t\t #initial pressure of superheated steam in MPa\n",
+ "T1 = 300.\t\t\t #initial temperature of superheated steam in degree celsius\n",
+ "T0 = 300.\t\t\t #temperature of the reservoir which is placed in thermal contact with the piston-cylinder assembly in degree celsius\n",
+ "P2 = 0.1\t\t\t #pressure of steam after expansion in MPa\n",
+ "\n",
+ "#For steam at P1 and T1:\n",
+ "h1 = 2995.1\n",
+ "v1 = 0.08116\n",
+ "s1 = 6.5422\n",
+ "\n",
+ "#For steam at P2 and T2:\n",
+ "h2 = 3074.5\n",
+ "v2 = 2.6390\n",
+ "s2 = 8.2166\n",
+ "\n",
+ "# Calculations\n",
+ "T0 = T0+273.15\n",
+ "\n",
+ "W = m*(h1-h2-(((P1*v1)-(P2*v2))*10**3)-(T0*(s1-s2)))\n",
+ "\n",
+ "# Results\n",
+ "print \" The maximum work obtained from steam = %0.2f kJ\"%(W);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum work obtained from steam = 90.07 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.12 Page No : 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "P1 = 0.1\t\t\t #pressure at which air enters the compressor in MPa\n",
+ "T1 = 300.\t\t\t #temperature at which air enters the compressor in K\n",
+ "P2 = 1. \t\t\t #pressure at which air leaves the compressor in MPa\n",
+ "T2 = 300.\t\t\t #temperature at which air leaves the compressor in K\n",
+ "T0 = 300.\t\t\t #ambient temperature in K\n",
+ "N = 1. \t\t\t #molar flow rate of air in mol/s\n",
+ "gaamma = 1.4\t\t #ratio of specific heat capacities (no unit)\n",
+ "R = 8.314\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "Ws = (-N*T0*(-R*math.log (P2/P1)))*10**-3\n",
+ "\n",
+ "# Results\n",
+ "print \" The minimum power required to compress one mole per second of air = %0.3f kW\"%(Ws);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The minimum power required to compress one mole per second of air = 5.743 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch7.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch7.ipynb
new file mode 100755
index 00000000..879f7b43
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch7.ipynb
@@ -0,0 +1,255 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Thermodynamic property relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.10 Page No : 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T2 = 150. \t\t\t #temperature at which water it is desired to boil water in degree celsius\n",
+ "P1 = 0.10133\t\t\t #ambient pressure in MPa\n",
+ "T1 = 100.\t \t\t #temperature at which water boils corresponding at pressure P1 in degree celsius\n",
+ "del_hv = 2256.94\t\t #enthalpy of vaporization in kJ/kg\n",
+ "R = 8.314;\t\t \t #universal gas constant in J/molK\n",
+ "M = 18*10**-3;\t\t\t #molar mass of water in kg/mol\n",
+ "\n",
+ "# Calculations\n",
+ "T1 = T1+273.15\n",
+ "T2 = T2+273.15\n",
+ "P2 = P1*(math.exp(((del_hv*10**3*M)*((1./T1)-(1./T2)))/(R)))\n",
+ "\n",
+ "# Results\n",
+ "print \" The approximate pressure at which the boiler is to be operated = %0.3f MPa\"%(P2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The approximate pressure at which the boiler is to be operated = 0.476 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No : 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 60. \t\t\t #mass of the person who wants to skate in kg\n",
+ "T = -2.\t\t\t #temperature of the ice in degree celsius\n",
+ "A = 15.\t\t\t #area of contact between the skate edges and ice in mm**2\n",
+ "vs = 1.091*10**-3;\t\t\t #specific volume of ice in m**3/kg (at Tref)\n",
+ "vf = 1.0*10**-3;\t\t\t #specific volume of water in m**3/kg (at Tref)\n",
+ "del_hf = 6.002;\t\t \t #enthalpy of melting of ice in kJ/mol\n",
+ "g = 9.81;\t\t\t #accleration due to gravity in m/s**2\n",
+ "Tref = 0. \t\t\t #reference temperature at which the specific enthalpy of ice and water are taken in degree celsius\n",
+ "\n",
+ "# Calculations\n",
+ "Tref = Tref+273.15\n",
+ "del_P = ((m*g)/(A*10**-6))*10**-6\n",
+ "del_v = (vf-vs)*(18*10**-3);\t\n",
+ "del_T = (del_P*10**6)/((del_hf*10**3)/(Tref*del_v));\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The temperature of ice originally = %d degree celsius \"%(T);\n",
+ "print \" The reduction in melting point of ice due to the additional pressure,computed using the Clayperon equation = %0.2f degree celsius \"%(del_T);\n",
+ "if del_T<T :\n",
+ " print \" The ice can melt due to the additional pressure and therefore it will be possible to skate \"\n",
+ "else:\n",
+ " print \" The ice will not melt and therefore it will be difficult to skate \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The temperature of ice originally = -2 degree celsius \n",
+ " The reduction in melting point of ice due to the additional pressure,computed using the Clayperon equation = -2.93 degree celsius \n",
+ " The ice can melt due to the additional pressure and therefore it will be possible to skate \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No : 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 100.\t \t\t #temperature of water in degree celsius\n",
+ "del_hv1 = 2256.94;\t\t\t #enthalpy of vaporization at T1 in kJ/kg\n",
+ "T2 = 150. \t\t\t #temperature at which the enthalpy of vaporization is to be determined in degree celsius\n",
+ "Cp_f = 4.26\t \t\t #isobaric heat capacity of liquid in kJ/kgK\n",
+ "Cp_g = 1.388\t\t\t #isobaric heat capacity of vapour in kJ/kgK\n",
+ "\n",
+ "# Calculations\n",
+ "del_hv2 = ((Cp_g-Cp_f)*(T2-T1))+del_hv1\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy of vaporization at 150 degree celsius = %0.2f kJ/kg\"%(del_hv2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy of vaporization at 150 degree celsius = 2113.34 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.13 Page No : 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 100. \t\t\t #temperature of water in degree celsius\n",
+ "del_hv1 = 2256.94 \t\t\t #enthalpy of vaporization at T1 in kJ/kg\n",
+ "T2 = 150. \t\t \t #temperature at which the enthalpy of vaporization is to be determined in degree celsius\n",
+ "del_hv_kirchoff = 2113.34\t\t\t #enthalpy of vaporization predicted by the Kirchhoff relation taken from Example 7.12 for comparison, in kJ/kg\n",
+ "del_hv_steam_tables = 2113.25\t\t\t #enthalpy of vaporization taken from the steam tables corresponding to T2,for comparison, in kJ/kg\n",
+ "Tc = 647.3 \t\t\t #critical temperature of water in K\n",
+ "\n",
+ "# Calculations\n",
+ "T1 = T1+273.15\n",
+ "T2 = T2+273.15\n",
+ "Tr1 = T1/Tc\n",
+ "Tr2 = T2/Tc\n",
+ "del_hv2 = del_hv1*(((1-Tr2)/(1-Tr1))**0.38)\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy of vaporization at 150 degree celsius using \";\n",
+ "print \" Watson correlation \\t = %f kJ/kg\"%(del_hv2);\n",
+ "print \" Kirchhoffs relation \\t = %f kJ/kg\"%(del_hv_kirchoff);\n",
+ "print \" From steam tables \\t = %f kJ/kg\"%(del_hv_steam_tables);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy of vaporization at 150 degree celsius using \n",
+ " Watson correlation \t = 2090.687877 kJ/kg\n",
+ " Kirchhoffs relation \t = 2113.340000 kJ/kg\n",
+ " From steam tables \t = 2113.250000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No : 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 373.15 \t\t\t #normal boiling point of water in K (temperature at which the enthalpy of vaporization is to be determined)\n",
+ "Pc = 221.2\t \t\t #critical pressure of water in bar\n",
+ "Tc = 647.3\t\t \t #critical temperature of water in K\n",
+ "R = 8.314\t\t\t #universal gas constant in J/molK\n",
+ "del_hvn_steam_tables = 2256.94\t\t\t #enthalpy of vaporization at the normal boiling point taken from the steam tables, for comparison, in kJ/kg\n",
+ "\n",
+ "# Calculations\n",
+ "Tbr = T/Tc\t\t\t\n",
+ "del_hvn = ((1.093*R*Tc*(Tbr*((math.log(Pc)-1.013)/(0.930-Tbr))))*10**-3)/(18*10**-3);\n",
+ "err = abs((del_hvn-del_hvn_steam_tables)/del_hvn_steam_tables)*100\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy of vaporization at the normal boiling point \";\n",
+ "print \" Using Riedels correlation \\t = %f kJ/kg\"%(del_hvn);\n",
+ "print \" From the steam tables \\t \\t = %f kJ/kg\"%(del_hvn_steam_tables);\n",
+ "print \" Error \\t \\t \\t \\t = %f %% \"%(err);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy of vaporization at the normal boiling point \n",
+ " Using Riedels correlation \t = 2337.179008 kJ/kg\n",
+ " From the steam tables \t \t = 2256.940000 kJ/kg\n",
+ " Error \t \t \t \t = 3.555212 % \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch8.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch8.ipynb
new file mode 100755
index 00000000..1e8782d9
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch8.ipynb
@@ -0,0 +1,600 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Thermodynamic properties of real gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No : 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215;\t\t\t #pressure of n-octane vapour in MPa\n",
+ "a = 3.789;\t\t\t #van der Waals constant in Pa (m**3/mol)**2\n",
+ "b = 2.37*10**-4;\t\t\t #van der Waals constant in m**3/mol\n",
+ "v = 15.675*10**-3;\t\t\t #volume occupied by n-octane vapour taken from Example (3.8) in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "dep_h = (P*10**6*v)-(R*T)-(a/v)\n",
+ "dep_s = R*math.log ((P*10**6*(v-b))/(R*T));\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for n-octane vapour = %0.2f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for n-octane vapour = %0.4f J/mol K\"%(dep_s);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for n-octane vapour = -428.74 J/mol\n",
+ " The entropy departure for n-octane vapour = -0.5757 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Page No : 276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T = 100. \t\t\t #temperature of carbon dioxide in degree celsius\n",
+ "P = 10. \t \t\t #pressure of carbon dioxide in MPa\n",
+ "A0 = 0.5073;\t\t\t #Beattie-Bridgman constant for carbon dioxide in (Pa m**3)/mol**2\n",
+ "B0 = 104.76*10**-6;\t\t\t #Beattie-Bridgman constant for carbon dioxide in m**3/mol\n",
+ "a = 71.32*10**-6;\t\t\t #Beattie-Bridgman constant for carbon dioxide in m**3/mol\n",
+ "b = 72.35*10**-6;\t\t\t #Beattie-Bridgman constant for carbon dioxide in m**3/mol\n",
+ "C = 660.0;\t\t \t #Beattie-Bridgman constant for carbon dioxide in (m**3 K**3)/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "T = T+273.15\n",
+ "A1 = (R*T) \n",
+ "A2 = (B0*R*T)-A0-((C*R)/T**2);\t\t\t \n",
+ "A3 = (a*A0)-(b*B0*R*T)-((B0*C*R)/T**2);\t\n",
+ "A4 = ((b*C*B0*R)/T**2);\t\t\t \n",
+ "vguess = 0.01\n",
+ "tolerance = 1e-6\n",
+ "\n",
+ "def solver_func(vi):\n",
+ " return (P*10**6)-((A1/vi)+(A2/vi**2)+(A3/vi**3)+(A4/vi**4))\n",
+ "\n",
+ "v = fsolve(solver_func,vguess)\n",
+ "\n",
+ "Z = (P*10**6*v)/(R*T)\n",
+ "\n",
+ "dep_h = (((B0*R*T)-(2*A0)-((4*C*R)/(T**2)))*(1./v))+((((3./2)*a*A0)-(b*B0*R*T)-((5*B0*C*R)/(2*(T**2))))*(1./(v**2)))+((2*b*C*B0*R)/((T**2)*(v**3)));\n",
+ "\n",
+ "# Results\n",
+ "print \" Molar volume of CO2 at %0.f MPa and %0.2f K = %.2e m**3/mol \"%(P,T,v);\n",
+ "print \" The compressibility factor = %.4f \"%(Z);\n",
+ "print \" The enthalpy departure for carbon dioxide using the Beattie-Bridgman equation of state = %.f J/mol\"%(dep_h);\n",
+ "\n",
+ "# Note: Answer is different because of rounding off error. Please check manually."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Molar volume of CO2 at 10 MPa and 373.15 K = 2.33e-04 m**3/mol \n",
+ " The compressibility factor = 0.7518 \n",
+ " The enthalpy departure for carbon dioxide using the Beattie-Bridgman equation of state = -3210 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No : 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 353.15 \t \t\t #temperature of carbon dioxide in degree celsius\n",
+ "P = 10. \t \t \t #pressure of carbon dioxide in MPa\n",
+ "B0 = 104.76*10**-6;\t\t\t #Beattie-Bridgman constant for carbon dioxide in m**3/mol\n",
+ "b = 72.35*10**-6;\t\t\t #Beattie-Bridgman constant for carbon dioxide in m**3/mol\n",
+ "C = 660.0;\t\t\t #Beattie-Bridgman constant for carbon dioxide in (m**3 K**3)/mol\n",
+ "R = 8.314 \t\t\t #universal gas constant in J/molK\n",
+ "v = 0.233*10**-3 \t\t #volume calculated in Example (8.3) in m**3/mol\n",
+ "Z = 0.751;\t\t\t #compressibility factor as calculated in Example (8.3) (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "A1 = ((B0*R)+((2*C*R)/(T**3)))\n",
+ "dep_s = (R*math.log (Z))-(A1*(1./v))+(((b*B0*R)-((2*C*B0*R)/(T**3)))*(1./(2*(v**2))))+((2*b*C*B0*R)/(3*(T**3)*(v**3)));\n",
+ "\n",
+ "# Results\n",
+ "print \" The entropy departure for carbon dioxide using the Beattie-\\\n",
+ "Bridgman equation of state = %.f J/mol K\"%(dep_s);\n",
+ "\n",
+ "# Note: Answer is varies because of rounding off error. Please check manually."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The entropy departure for carbon dioxide using the Beattie-Bridgman equation of state = -7 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page No : 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215;\t\t\t #pressure of n-octane vapour in MPa\n",
+ "a = 4.426;\t\t\t #Redlich-Kwong constant taken from Example(3.9) in (m**6 Pa mol**-2)\n",
+ "b = 164.3*10**-6;\t\t\t #Redlich-Kwong constant taken from Example(3.9) in m**3/mol\n",
+ "Z = 0.9308;\t\t\t #compressibility factor taken from Example(3.9) (no unit)\n",
+ "B = 9.9306*10**-3;\t\t\t #value of B, used in the Cardan's method in Example (3.9)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "dep_h = (R*T*(Z-1))-(((3*a)/(2*b))*math.log ((Z+B)/Z))\n",
+ "dep_s = (R*math.log(Z-B))-((a/(2*b*T))*math.log((Z+B)/Z))\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for n-octane vapour using the generalized Redlich\\\n",
+ "-Kwong equation of state = %0.2f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for n-octane vapour using the generalized Redlich\\\n",
+ "-Kwong equation of state = %0.4f J/mol K\"%(dep_s);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for n-octane vapour using the generalized Redlich-Kwong equation of state = -674.98 J/mol\n",
+ " The entropy departure for n-octane vapour using the generalized Redlich-Kwong equation of state = -1.0195 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No : 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 427.85\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215\t\t\t #pressure of n-octane vapour in MPa\n",
+ "S = 1.0786\t\t\t #constant used in the SRK equation of state,from Example(3.15)\n",
+ "alpha = 1.3079\t\t #constant used in the SRK equation of state,from Example(3.15)\n",
+ "a = 5.0180\t\t\t #constant used in the SRK equation of state,from Example(3.15) in (m**6 Pa mol**-2)\n",
+ "b = 1.6426*10**-4\t\t\t #constant used in the SRK equation of state,from Example(3.15) in m**3/mol\n",
+ "B = 9.9282*10**-3\t\t\t #factor used in the Cardan's method for solving the SRK equation of state,from Example(3.15) (no unit)\n",
+ "Z = 0.9191;\t\t\t #compressibility factor taken from Example (3.15) (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "\n",
+ "# Calculations\n",
+ "da_dT = (-a*S)/(math.sqrt (alpha*T*Tc))\n",
+ "dep_h = (R*T*(Z-1))+((((T*da_dT)-a)/b)*math.log ((Z+B)/Z));\t\t\t \n",
+ "dep_s = (R*math.log (Z-B))+((1./b)*(da_dT)*math.log ((Z+B)/Z));\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for n-octane vapour using the SRK equation of state = %f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for n-octane vapour using the SRK equation of state = %0.4f J/mol K\"%(dep_s);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for n-octane vapour using the SRK equation of state = -884.335509 J/mol\n",
+ " The entropy departure for n-octane vapour using the SRK equation of state = -1.4188 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No : 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 427.85\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215\t\t\t #pressure of n-octane vapour in MPa\n",
+ "S = 0.9457\t\t\t #constant used in the Peng-Robinson equation of state,from Example(3.16)\n",
+ "alpha = 1.2677\t\t #constant used in the Peng-Robinson equation of state,from Example(3.16)\n",
+ "a = 5.2024\t\t\t #constant used in the Peng-Robinson equation of state,from Example(3.16) in (m**6 Pa mol**-2)\n",
+ "b = 1.4750*10**-4\t #constant used in the Peng-Robinson equation of state,from Example(3.16) in m**3/mol\n",
+ "B = 8.9151*10**-3\t #factor used in the Cardan's method for solving the Peng-Robinson equation of state,from Example(3.16) (no unit)\n",
+ "Z = 0.9151\t\t\t #compressibility factor taken from Example (3.16) (no unit)\n",
+ "R = 8.314\t\t\t #universal gas constant in J/molK\n",
+ "Tc = 569.4\t\t\t #critical temperature of n-octane in K\n",
+ "\n",
+ "# Calculations\n",
+ "da_dT = (-a*S)/(math.sqrt (alpha*T*Tc))\n",
+ "\n",
+ "dep_h = (R*T*(Z-1))+(((((T*da_dT)-a)/(2*math.sqrt(2)*b)))*(math.log ((Z+(B*(1+math.sqrt (2))))/(Z+(B*(1-math.sqrt (2)))))));\n",
+ "dep_s = (R*math.log (Z-B))+((1./(2*math.sqrt (2)*b))*(da_dT)*(math.log ((Z+(B*(1+math.sqrt (2))))/(Z+(B*(1-math.sqrt (2)))))));\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for n-octane vapour using the Peng-Robinson \\\n",
+ " equation of state = %0.1f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for n-octane vapour using the Peng-Robinson\\\n",
+ " equation of state = %0.3f J/mol K\"%(dep_s);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for n-octane vapour using the Peng-Robinson equation of state = -890.1 J/mol\n",
+ " The entropy departure for n-octane vapour using the Peng-Robinson equation of state = -1.398 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No : 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 339.7\t\t\t #temperature of ethylene in K\n",
+ "P = 30.7\t\t\t #pressure of ethylene in bar\n",
+ "Tc = 283.1\t\t\t #critical temperature of ethylene in K\n",
+ "Pc = 51.17\t\t\t #critical pressure of ethylene in bar\n",
+ "w = 0.089\t\t\t #acentric factor (no unit)\n",
+ "R = 8.314\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Pr = P/Pc\n",
+ "Tr = T/Tc\n",
+ "del_h0 = 0.45\n",
+ "del_h1 = 0.18\n",
+ "del_s0 = 0.26\n",
+ "del_s1 = 0.20\n",
+ "dep_h = ((del_h0)+(w*del_h1))*R*Tc\n",
+ "dep_s = ((del_s0)+(w*del_s1))*R;\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for ethylene using the Edmister charts = %0.3f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for ethylene using the Edmister charts = %0.4f J/mol K\"%(dep_s);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for ethylene using the Edmister charts = 1096.868 J/mol\n",
+ " The entropy departure for ethylene using the Edmister charts = 2.3096 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No : 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 339.7;\t\t\t #temperature of ethylene in K\n",
+ "P = 30.7;\t\t\t #pressure of ethylene in bar\n",
+ "Tc = 283.1;\t\t\t #critical temperature of ethylene in K\n",
+ "Pc = 51.17;\t\t\t #critical pressure of ethylene in bar\n",
+ "w = 0.089;\t\t\t #acentric factor (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Pr = P/Pc\n",
+ "Tr = T/Tc\n",
+ "del_h0 = 0.474\n",
+ "del_h1 = 0.232\n",
+ "del_s0 = 0.277\n",
+ "del_s1 = 0.220\n",
+ "dep_h = ((del_h0)+(w*del_h1))*R*Tc\n",
+ "dep_s = ((del_s0)+(w*del_s1))*R\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for ethylene using the Lee-Kesler data = %f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for ethylene using the Lee-Kesler data = %f J/mol K\"%(dep_s);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for ethylene using the Lee-Kesler data = 1164.249733 J/mol\n",
+ " The entropy departure for ethylene using the Lee-Kesler data = 2.465766 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No : 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 339.7;\t\t\t #temperature of ethylene in K\n",
+ "P = 1. \t\t\t #pressure of ethylene in bar\n",
+ "Tc = 283.1;\t\t\t #critical temperature of ethylene in K\n",
+ "Pc = 51.17;\t\t\t #critical pressure of ethylene in bar\n",
+ "w = 0.089;\t\t\t #acentric factor (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Pr = P/Pc\n",
+ "Tr = T/Tc\n",
+ "dep_h = R*Tc*Pr*((0.083-(1.097/(Tr**1.6)))+(w*(0.139-(0.894/(Tr**4.2)))))\n",
+ "dep_s = -Pr*R*((0.675/(Tr**2.6))+(w*(0.722/(Tr**5.2))));\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure for ethylene using the generalized virial coefficient \\\n",
+ "correlation = %f J/mol\"%(dep_h);\n",
+ "print \" The entropy departure for ethylene using the generalized virial coefficient \\\n",
+ "correlation = %e J/mol K\"%(dep_s);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure for ethylene using the generalized virial coefficient correlation = -35.011078 J/mol\n",
+ " The entropy departure for ethylene using the generalized virial coefficient correlation = -7.232682e-02 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No : 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215\t\t\t #pressure of n-octane vapour in MPa\n",
+ "T_ref = 0.\t\t\t #reference state saturated liquid temperature in degree celsius\n",
+ "h0 = 0. \t\t\t #enthalpy of saturated liquid in J/mol (reference state)\n",
+ "s0 = 0. \t\t\t #entropy of saturated liquid in J/molK (reference state)\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "w = 0.398;\t\t\t #acentric factor (no unit)\n",
+ "NBP = 398.8;\t\t\t #normal boiling point of n-octane (saturated liquid)\n",
+ "Cp = [6.907,741.770*10**-3,-397.204*10**-6,82.629*10**-9,0]\t\t\t #coefficients to compute the isobaric molar heat capacity, where Cp = a+bT+cT**2+dT**3+eT**-2,in J/molK\n",
+ "S = 0.9457;\t\t\t #value of S taken from Example (3.16)\n",
+ "b = 1.4750*10**-4;\t\t\t #value of the Peng-Robinson constant in m**3/mol from Example (3.16)\n",
+ "v = 15.14*10**-3;\t\t\t #volume of saturated vapour in m**3/mol from Example (3.16)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "P_amb = 101.325;\t\t\t #pressure at which the normal boiling point is computed in kPa\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "#Step a: Vaporization of n-octane at T_ref\n",
+ "T_ref = T_ref+273.15\n",
+ "\n",
+ "del_hv = ((R*math.log ((Pc*10**5)/(P_amb*10**3)))/((1./NBP)-(1./Tc)))*10**-3;\n",
+ "P2 = P_amb* math.exp (((del_hv*10**3)/(R))*((1./NBP)-(1./T_ref)))\n",
+ "Tbr = NBP/Tc\n",
+ "\t\t\t\n",
+ "del_hvn = (1.093*R*Tc*(Tbr*(((math.log (Pc))-1.013)/(0.930-Tbr))))*10**-3;\n",
+ "Tr2 = T_ref/Tc\n",
+ "\n",
+ "del_ha = ((del_hvn*10**3)*(((1-Tr2)/(1-Tbr))**(0.38)))*10**-3;\n",
+ "del_sa = (del_ha*10**3)/T_ref\n",
+ "\n",
+ "alpha = (1+(S*(1-math.sqrt (Tr2))))**2\n",
+ "a = (0.45724*(R**2)*(Tc**2)*alpha)/(Pc*10**5)\n",
+ "\n",
+ "A = (a*P2*10**3)/(R*T_ref)**2\n",
+ "B = (b*P2*10**3)/(R*T_ref);\t\n",
+ "alpha = -1+B;\t\t\t \n",
+ "beeta = A-(2*B)-(3*B**2);\n",
+ "gaamma = -(A*B)+(B**2)+(B**3);\t\t\t \n",
+ "p = beeta-(alpha**2)/3;\t\t\t \n",
+ "q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4)+(((p)**3)/27);\t\t\t\n",
+ "\n",
+ "if D>0:\n",
+ " Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3)\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3)\n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Za = [Z1 ,Z2, Z3];\n",
+ " Z = max(Za);\n",
+ "else:\n",
+ " theta = math.cos((-(q)/2)*(math.sqrt((-27)/(((p)**3)))))\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\t \n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3)\n",
+ " Za = [Z1, Z2, Z3];\n",
+ " Z = max(Za);\n",
+ "da_dT = (-a*S)/(cmath.sqrt(alpha*T_ref*Tc));\t\t\t \n",
+ "\n",
+ "dep_h = (R*T_ref*(Z-1))+(((((T_ref*da_dT)-a)/(2*math.sqrt(2)*b)))*(math.log ((Z+(B*(1+math.sqrt (2))))/(Z+(B*(1-math.sqrt (2)))))));\n",
+ "dep_s = (R*math.log (Z-B))+((1./(2*math.sqrt (2)*b))*(da_dT)*(math.log ((Z+(B*(1+math.sqrt (2))))/(Z+(B*(1-math.sqrt (2)))))));\n",
+ "del_hb = -dep_h\n",
+ "del_sb = -dep_s\n",
+ "\n",
+ "del_hc = ((Cp[0]*(T-T_ref))+(((Cp[1])/2)*((T**2)-(T_ref**2)))+(((Cp[2])/3)*((T**3)-(T_ref**3)))+(((Cp[3])/4)*((T**4)-(T_ref**4)))-((Cp[4])*((1./T)-(1./T_ref))))*10**-3;\n",
+ "del_sc = ((Cp[0])*math.log (T/T_ref))+((Cp[1])*(T-T_ref))+(((Cp[2])/2)*((T**2)-(T_ref**2)))+(((Cp[3])/3)*((T**3)-(T_ref**3)))-(((Cp[4])/2)*((1./(T**2))-(1./(T_ref**2))))-(R*math.log((P*10**6)/(P2*10**3)))\t\t\t \n",
+ "\n",
+ "Z = 0.9151\n",
+ "da_dT = (-a*S)/(cmath.sqrt (alpha*T*Tc));\t\t\t \n",
+ "\n",
+ "del_hd = (R*T*(Z-1))+((((T*da_dT)-a)/(2*math.sqrt(2)*b))*math.log ((Z+(B*(1+math.sqrt (2))))/(Z+(B*(1-math.sqrt (2))))));\n",
+ "\n",
+ "del_sd = (R*math.log (Z-B))+((1./(2*math.sqrt(2)*b))*(da_dT)*(math.log ((Z+(B*(1+math.sqrt (2))))/(Z+(B*(1-math.sqrt (2)))))));\n",
+ "\n",
+ "h = h0+del_ha+(del_hb*10**-3)+del_hc+(del_hd*10**-3)\n",
+ "s = s0+del_sa+del_sb+del_sc+del_sd;\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy of n-octane vapour at 427.85K and 0.215MPa using the Peng-Robinson equation\\\n",
+ " of state =\",h, \"kJ/mol\"\n",
+ "print \" The entropy of n-octane vapour at 427.85K and 0.215MPa using the Peng-Robinson\\\n",
+ " equation of state = \",s,\" J/mol K\"\n",
+ "print \" The volume of n-octane vapour at 427.85K and 0.215MPa using the Peng-Robinson\\\n",
+ " equation of state =\",v,\" m**3/mol\"\n",
+ "\n",
+ "\n",
+ "#THE VOLUME OF n-OCTANE VAPOUR AS COMPUTED IN EXAMPLE 3.16 IS 15.14*10**-3 m**3/mol AND NOT \n",
+ "#15.41*10**-3 m**3/mol AS PRINTED IN THIS EXAMPLE IN THE TEXTBOOK.\n",
+ "# So ANSWER WOULD BE DIFFERENT\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy of n-octane vapour at 427.85K and 0.215MPa using the Peng-Robinson equation of state = (76.8343786515+0.000518888144511j) kJ/mol\n",
+ " The entropy of n-octane vapour at 427.85K and 0.215MPa using the Peng-Robinson equation of state = (207.222784016-0.000740500199878j) J/mol K\n",
+ " The volume of n-octane vapour at 427.85K and 0.215MPa using the Peng-Robinson equation of state = 0.01514 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch9.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch9.ipynb
new file mode 100755
index 00000000..9efdc810
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch9.ipynb
@@ -0,0 +1,1125 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Multicomponent mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page No : 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "per_ethanol = 60.\t\t\t #mole percent of ethanol in a ethanol-water system\n",
+ "per_water = 40. \t\t\t #mole percent of water in a ethanol-water system\n",
+ "v1 = 57.5*10**-6\t\t\t #partial molar volume of ethanol in the ethanol-water system in m**3\n",
+ "rho = 849.4;\t \t\t #density of the mixture in kg/m**3\n",
+ "M_ethanol = 46*10**-3\t\t\t #molar mass of ethanol in kg/mol\n",
+ "M_water = 18*10**-3 \t\t\t #molar mass of ethanol in kg/mol\n",
+ "\n",
+ "# Calculations\n",
+ "X1 = per_ethanol/100\n",
+ "X2 = per_water/100\n",
+ "M = (X1*M_ethanol)+(X2*M_water)\n",
+ "v = M/rho\n",
+ "v2 = (v-(X1*v1))/(X2);\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The partial molar volume of water = %f m**3/mol\"%(v2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The partial molar volume of water = 0.000016 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.2 Page No : 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 3.\t\t\t #volume of mixture to be prepared in m**3\n",
+ "per_ethanol = 60.\t\t\t #mole percent of ethanol in a ethanol-water system\n",
+ "per_water = 40.\t\t\t #mole percent of water in a ethanol-water system\n",
+ "v1 = 57.5*10**-6;\t\t\t #partial molar volume of ethanol in the ethanol-water system in m**3/mol\n",
+ "v2 = 16*10**-6\t\t\t #partial molar volume of water in the ethanol-water system in m**3/mol\n",
+ "v1_pure = 57.9*10**-6\t\t\t #molar volume of pure ethanol in m**3/mol\n",
+ "v2_pure = 18*10**-6\t\t\t #molar volume of pure water in m**3/mol\n",
+ "\n",
+ "# Calculations\n",
+ "X1 = per_ethanol/100;\t\t\t # Calculations of the mole fraction of ethanol (no unit)\n",
+ "X2 = per_water/100;\t\t\t # Calculations of the mole fraction of water (no unit)\n",
+ "v = (X1*v1)+(X2*v2);\t\t\t # Calculations of the molar volume of the solution using Eq.(9.10) in m**3/mol\n",
+ "N = V/v\t \t\t # Calculations of the mole number of solution required in mol\n",
+ "N1 = N*X1\t\t\t # Calculations of the mole number of ethanol in solution in mol\n",
+ "N2 = N*X2;\t\t\t # Calculations of the mole number of water in solution in mol\n",
+ "V1 = N1*v1_pure;\t\t\t # Calculations of the volume of pure ethanol required in m**3\n",
+ "V2 = N2*v2_pure;\t\t\t # Calculations of the volume of pure water required in m**3\n",
+ "\n",
+ "# Results\n",
+ "print \" The volume of pure ethanol required = %0.3f m**3\"%(V1);\n",
+ "print \" The volume of pure water required = %0.3f m**3\"%(V2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The volume of pure ethanol required = 2.548 m**3\n",
+ " The volume of pure water required = 0.528 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No : 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215;\t\t\t #pressure of n-octane vapour in MPa\n",
+ "a = 3.789;\t\t\t #van der Waals constant in Pa(m**3/mol)**2\n",
+ "b = 2.37*10**-4;\t\t\t #van der Waals constant in m**3/mol\n",
+ "v = 15.675*10**-3;\t\t\t #molar volume of n-octane saturated vapour taken from Example 3.8 in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Z = (P*10**6*v)/(R*T)\t\t\t # Calculations of the compressibility factor (no unit)\n",
+ "# Calculations of the fugacity coefficient (f/P) using the expression derived in Example 9.3 (no unit)\n",
+ "phi = math.exp(Z-1-math.log (((P*10**6)*(v-b))/(R*T))-a/(R*T*v));\n",
+ "f = (P*10**6*phi)*10**-6\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of n-octane vapour = %0.2f \"%(phi);\n",
+ "print \" The fugacity of n-octane vapour = %0.4f MPa\"%(f);\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of n-octane vapour = 0.95 \n",
+ " The fugacity of n-octane vapour = 0.2043 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No : 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 427.85;\t\t\t #temperature of n-octane vapour in K\n",
+ "P = 0.215;\t\t\t #pressure of n-octane vapour in MPa\n",
+ "Tc = 569.4;\t\t\t #critical temperature of n-octane in K\n",
+ "Pc = 24.97;\t\t\t #critical pressure of n-octane in bar\n",
+ "w = 0.398;\t\t\t #acentric factor (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "Tr = T/Tc\n",
+ "Pr = (P*10**6)/(Pc*10**5)\n",
+ "log_phi0 = -0.032;\t\n",
+ "log_phi1 = -0.025;\n",
+ "phi = round(log_phi0 + 0.398*log_phi1,3)\n",
+ "phie = 1.1014\n",
+ "f = P*phie\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of n-octane vapour = %.3f \"%(phi);\n",
+ "print \" The fugacity of n-octane vapour = %.4f MPa\"%(f);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of n-octane vapour = -0.042 \n",
+ " The fugacity of n-octane vapour = 0.2368 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No : 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 339.7\t\t\t #temperature of ethylene in K\n",
+ "P = 1.\t \t\t #pressure of ethylene in bar\n",
+ "Tc = 283.1\t\t\t #critical temperature of ethylene in K\n",
+ "Pc = 51.17\t\t\t #critical pressure of ethylene in bar\n",
+ "w = 0.089\t\t\t #acentric factor (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "Tr = T/Tc\n",
+ "Pr = P/Pc\n",
+ "B0 = 0.083-(0.422/(Tr**1.6))\n",
+ "B1 = 0.139-(0.172/(Tr**4.2))\n",
+ "phi = math.exp((B0+(w*B1))*(Pr/Tr))\n",
+ "f = P*phi\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of ethylene = %0.4f \"%(phi);\n",
+ "print \" The fugacity of ethylene = %0.4f bar\"%(f);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of ethylene = 0.9963 \n",
+ " The fugacity of ethylene = 0.9963 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.7 Page No : 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t \t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "Tc = [425.2,569.4];\t\t\t #critical temperature of n-butane and n-octane in K\n",
+ "Pc = [37.97,24.97];\t\t\t #critical pressure of n-butane and n-octane in bar\n",
+ "vc = [255.0*10**-6,486.0*10**-6];\t\t\t #critical molar volume of n-butane and n-octane in m**3/mol\n",
+ "Zc = [0.274,0.256];\t \t\t #compressibility factor of n-butane and n-octane corresponding to Tc,Pc (no unit)\n",
+ "w = [0.199,0.398];\t\t\t #acentric factor of n-butane and n-octane (no unit)\n",
+ "R = 8.314 \t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "K_12 = 1-((8*((vc[0]*vc[1])**(1./2)))/((((vc[0])**(1./3))+((vc[1])**(1./3)))**3))\n",
+ "Tc_12 = (((Tc[0])*(Tc[1]))**(1./2))*(1-K_12);\t\t\t \n",
+ "w_12 = (w[0]+w[1])/2\n",
+ "Zc_12 = (Zc[0]+Zc[1])/2\n",
+ "vc_12 = ((((vc[0])**(1./3))+((vc[1])**(1./3)))/2)**3\n",
+ "Pc_12 = ((Zc_12*R*Tc_12)/vc_12)*10**-6;\t\t\t \n",
+ "Tr_12 = T/Tc_12\n",
+ "B_12_0 = 0.083-(0.422/(Tr_12**(1.6)));\t\t\t \n",
+ "B_12_1 = 0.139-(0.172/(Tr_12**(4.2)));\t\t\t \n",
+ "B_12 = ((R*Tc_12)/(Pc_12*10**6))*(B_12_0+(w_12*B_12_1))\n",
+ "Tr1 = T/Tc[0]\n",
+ "B_11_0 = 0.083-(0.422/(Tr1**(1.6)));\t\t\t \n",
+ "B_11_1 = 0.139-(0.172/(Tr1**(4.2)));\t\t\t \n",
+ "B_11 = ((R*Tc[0])/(Pc[0]*10**5))*(B_11_0+(w[0]*B_11_1))\n",
+ "Tr2 = T/Tc[1]\n",
+ "B_22_0 = 0.083-(0.422/(Tr2**(1.6)))\n",
+ "B_22_1 = 0.139-(0.172/(Tr2**(4.2)))\n",
+ "B_22 = ((R*Tc[1])/(Pc[1]*10**5))*(B_22_0+(w[1]*B_22_1))\n",
+ "Bm = ((y1**2)*B_11)+((2*y1*y2)*B_12)+((y2**2)*B_22);\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The second virial coefficient for an equimolar mixture of n-butane and n-octane at\\\n",
+ " 600K = %.2e m**3/mol\"%(Bm);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The second virial coefficient for an equimolar mixture of n-butane and n-octane at 600K = -3.09e-04 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.8 Page No : 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "a = [1.3874,3.7890];\t\t\t #van der Waals constant of n-butane and n-octane in Pa(m**3/mol)**2\n",
+ "b = [0.1163*10**-3,0.237*10**-3];\t\t\t #van der Waals constant of n-butane and n-octane in m**3/mol\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "a_m = ((y1**2)*a[0])+((2*y1*y2)*math.sqrt(a[0]*a[1]))+((y2**2)*a[1])\n",
+ "b_m = (y1*b[0])+(y2*b[1])\t\t\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The van der Waals constant for an equimolar mixture of n-butane and n-octane,\\\n",
+ " a_m = %0.4f Pam**3/mol)**2\"%(a_m);\n",
+ "print \" The van der Waals constant for an equimolar mixture of n-butane and n-octane,\\\n",
+ " b_m = %f m**3/mol\"%(b_m);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The van der Waals constant for an equimolar mixture of n-butane and n-octane, a_m = 2.4405 Pam**3/mol)**2\n",
+ " The van der Waals constant for an equimolar mixture of n-butane and n-octane, b_m = 0.000177 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.9 Page No : 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t \t \t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16.\t \t \t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tc = [425.2,569.4];\t\t\t #critical temperature of n-butane and n-octane in K\n",
+ "Pc = [37.97,24.97];\t\t\t #critical pressure of n-butane and n-octane in bar\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "Tr1 = T/Tc[0]\n",
+ "Pr1 = P/Pc[0]\n",
+ "Z1_0 = 0.95\n",
+ "Tr2 = T/Tc[1]\n",
+ "Pr2 = P/Pc[1]\n",
+ "Z2_0 = 0.785\n",
+ "\n",
+ "Zm = (y1*Z1_0)+(y2*Z2_0)\n",
+ "vm = (Zm*R*T)/(P*10**5)\n",
+ "\n",
+ "P1 = y1*P\n",
+ "P2 = y2*P\n",
+ "Pr1 = P1/Pc[0]\n",
+ "Pr2 = P2/Pc[1]\n",
+ "Z1_0 = 0.97\n",
+ "Z2_0 = 0.91\n",
+ "Zm = (y1*Z1_0)+(y2*Z2_0)\n",
+ "vm_dalton = (Zm*R*T)/(P*10**5)\n",
+ "\n",
+ "P1 = ((Z1_0*y1*R*T)/(vm_dalton))*10**-2\n",
+ "P2 = ((Z2_0*y2*R*T)/(vm_dalton))*10**-2\n",
+ "Pr1 = P1/Pc[0]\n",
+ "Pr2 = P2/Pc[1]\n",
+ "Z1_0_new = 0.97\n",
+ "Z2_0_new = 0.91\n",
+ "if Z1_0_new == Z1_0 and Z2_0_new == Z2_0:\n",
+ " vm_new = vm_dalton;\t\t\t \n",
+ "else:\n",
+ " Zm = (y1*Z1_0_new)+(y2*Z2_0_new)\n",
+ " vm_new = (Zm*R*T)/(P*10**5);\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The molar volume of an equimolar mixture of n-butane and n-octane found using the\\\n",
+ " Amagats law of additive volumes = %0.4e m**3/mol\"%(vm);\n",
+ "print \" The molar volume of an equimolar mixture of n-butane and\\\n",
+ " n-octane found using the Daltons law of additive pressures = %0.2e m**3/mol\"%(vm_new);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The molar volume of an equimolar mixture of n-butane and n-octane found using the Amagats law of additive volumes = 2.7046e-03 m**3/mol\n",
+ " The molar volume of an equimolar mixture of n-butane and n-octane found using the Daltons law of additive pressures = 2.93e-03 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.10 Page No : 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16.\t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tc = [425.2,569.4];\t\t\t #critical temperature of n-butane and n-octane in K\n",
+ "Pc = [37.97,24.97];\t\t\t #critical pressure of n-butane and n-octane in bar\n",
+ "R = 8.314;\t \t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "Tcm = (y1*Tc[0])+(y2*Tc[1]);\t\t\t \n",
+ "Pcm = (y1*Pc[0])+(y2*Pc[1])\n",
+ "Trm = T/Tcm;\t\t\t \n",
+ "Prm = P/Pcm;\t\t\t \n",
+ "Zm0 = 0.9;\t\t\t \n",
+ "vm = (Zm0*R*T)/(P*10.**5)\n",
+ "\n",
+ "# Results\n",
+ "print \" The molar volume of an equimolar mixture of n-butane and n-octane using the\\\n",
+ " pseudocritical properties estimated through Kays rule = %0.2e m**3/mol\"%(vm);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The molar volume of an equimolar mixture of n-butane and n-octane using the pseudocritical properties estimated through Kays rule = 2.81e-03 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.11 Page No : 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tc = [425.2,569.4];\t\t\t #critical temperature of n-butane and n-octane in K\n",
+ "Pc = [37.97,24.97];\t\t\t #critical pressure of n-butane and n-octane in bar\n",
+ "vc = [255.0*10**-6,486.0*10**-6];\t\t\t #critical molar volume of n-butane and n-octane in m**3/mol\n",
+ "Zc = [0.274,0.256];\t\t\t #compressibility factor of n-butane and n-octane corresponding to Tc,Pc (no unit)\n",
+ "R = 8.314;\t \t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "Tcm = (y1*Tc[0])+(y2*Tc[1]);\t\t\t \n",
+ "Pcm = ((R*((y1*Zc[0])+(y2*Zc[1]))*Tcm)/((y1*vc[0])+(y2*vc[1])))*10**-5\n",
+ "Trm = T/Tcm\n",
+ "Prm = P/Pcm\n",
+ "Zm0 = 0.89\n",
+ "vm = (Zm0*R*T)/(P*10**5)\n",
+ "\n",
+ "# Results\n",
+ "print \" The molar volume of an equimolar mixture of n-butane and n-octane at 600K\\\n",
+ " and 16bar estimated using the Prausnitz-Gunn rule = %0.2e m**3/mol\"%(vm);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The molar volume of an equimolar mixture of n-butane and n-octane at 600K and 16bar estimated using the Prausnitz-Gunn rule = 2.77e-03 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.12 Page No : 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "a_m = 2.4405\t\t\t #van der Waals constant for the mixture as determined in Example 9.8 in Pa(m**3/mol)**2\n",
+ "b_m = 0.1767*10**-3\t\t #van der Waals constant for the mixture as determined in Example 9.8 in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "A = (a_m*P*10**5)/(R*T)**2\n",
+ "B = (b_m*P*10**5)/(R*T)\n",
+ "alpha = -1-B\n",
+ "beeta = A\n",
+ "gaamma = -(A*B)\n",
+ "p = beeta-((alpha**2)/3)\n",
+ "q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4)+(((p)**3)/27)\n",
+ "\n",
+ "if D>0 :\n",
+ " Z = (((-(q)/2)+(math.sqrt(D)))**(1./3))+(((-(q)/2)-(math.sqrt(D)))**(1./3))-(alpha/3);\t\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3)\n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3)\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3)\n",
+ " Za = [Z1 ,Z2, Z3];\n",
+ " Z = max(Za);\n",
+ "else:\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\t \n",
+ " theta = amath.cos((-(q)/2)*(1./r));\t\t\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3)\n",
+ " Za = [Z1, Z2, Z3];\n",
+ " Z = max(Za);\n",
+ "\n",
+ "vm = (Z*R*T)/(P*10**5)\n",
+ "\n",
+ "# Results\n",
+ "print \" The molar volume of an equimolar mixture of n-butane and n-octane at 600K and 16bar found \\\n",
+ " using the van der Waals equation of state = %e m**3/mol\"%(vm);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The molar volume of an equimolar mixture of n-butane and n-octane at 600K and 16bar found using the van der Waals equation of state = 2.780786e-03 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.13 Page No : 336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t\t \t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16.\t\t \t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Bm = -309.*10**-6;\t\t\t #second virial coefficient for the mixture taken from Example(9.7) in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "Zm = 1+((Bm*P*10**5)/(R*T))\n",
+ "vm = (Zm*R*T)/(P*10**5)\t\n",
+ "\n",
+ "# Results\n",
+ "print \" The molar volume of an equimolar mixture of n-butane and n-octane\\\n",
+ " found using the generalized virial coefficient correlation = %0.4e m**3/mol\"%(vm);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The molar volume of an equimolar mixture of n-butane and n-octane found using the generalized virial coefficient correlation = 2.8088e-03 m**3/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.14 Page No : 337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "am = 2.4405\t\t\t #van der Waals constant for the mixture taken from Example 9.8 in Pa(m**3/mol)**2\n",
+ "bm = 0.1767*10**-3;\t\t\t #van der Waals constant for the mixture taken from Example 9.8 in m**3/mol\n",
+ "vm = 2.8933*10**-3;\t\t\t #molar volume of the mixture taken from Example 9.12 in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "dep_h = ((P*10**5*vm)-(R*T)-(am/vm))*10**-3\n",
+ "dep_s = R*(math.log ((P*10**5*(vm-bm))/(R*T)))\n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure of an equimolar mixture of n-butane and n-octane = %0.3f kJ/mol\"%(dep_h);\n",
+ "print \" The entropy departure of an equimolar mixture of n-butane and n-octane = %0.3f J/mol K\"%(dep_s);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure of an equimolar mixture of n-butane and n-octane = -1.203 kJ/mol\n",
+ " The entropy departure of an equimolar mixture of n-butane and n-octane = -1.145 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.15 Page No : 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600. \t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t \t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tcm = 497.3;\t\t\t #pseudocritical temperature of mixture taken from Example(9.10) in K\n",
+ "Pcm = 31.47;\t\t\t #pseudocritical pressure of mixture taken from Example(9.10) in bar\n",
+ "Trm = 1.21;\t\t \t #pseudoreduced temperature of the mixture taken from Example(9.10) (no unit)\n",
+ "Prm = 0.51;\t\t\t #pseudoreduced pressure of the mixture taken from Example(9.10) (no unit)\n",
+ "w_butane = 0.199;\t\t #acentric factor for n-butane (no unit)\n",
+ "w_octane = 0.398;\t\t #acentric factor for n-octane (no unit)\n",
+ "R = 8.314;\t\t \t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "wm = (y1*w_butane)+(y2*w_octane)\n",
+ "del_h0 = 0.380;\t\t\t \n",
+ "del_h1 = 0.188;\t\t\t \n",
+ "del_s0 = 0.22;\t\t\t \n",
+ "del_s1 = 0.18;\t\t\t \n",
+ "dep_h = ((R*Tcm)*(del_h0+(wm*del_h1)))*10**-3;\t\t\t \n",
+ "dep_s = (R)*(del_s0+(wm*del_s1));\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure of an equimolar mixture of n-butane and n-octane using\\\n",
+ " the generalized compressibility factor correlation = %0.3f kJ/mol\"%(dep_h);\n",
+ "print \" The entropy departure of an equimolar mixture of n-butane and n-octane using \\\n",
+ "the generalized compressibility factor correlation = %f J/mol K\"%(dep_s);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure of an equimolar mixture of n-butane and n-octane using the generalized compressibility factor correlation = 1.803 kJ/mol\n",
+ " The entropy departure of an equimolar mixture of n-butane and n-octane using the generalized compressibility factor correlation = 2.275791 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.16 Page No : 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tc = [425.2,569.4];\t\t\t #critical temperature of n-butane and n-octane in K\n",
+ "Pc = [37.97,24.97];\t\t\t #critical pressure of n-butane and n-octane in bar\n",
+ "w = [0.199,0.398];\t\t\t #acentric factor of n-butane and n-octane (no unit)\n",
+ "Tr1 = 1.411;\t\t\t #reduced temperature of n-butane (no unit) taken from Example (9.7)\n",
+ "Tr2 = 1.054;\t\t\t #reduced temperature of n-octane (no unit) taken from Example (9.7)\n",
+ "Tr_12 = 1.24;\t\t\t #reduced temperature for computing the mixture interaction virial coefficient (no unit) taken from Example(9.7)\n",
+ "Pc_12 = 2.978;\t\t\t #Pc_ij in MPa taken from Example(9.7)\n",
+ "Tc_12 = 483.9;\t\t\t #Tc_ij in K taken from Example(9.7)\n",
+ "w_12 = 0.2985;\t\t\t # w_ij (no unit) taken from Example(9.7)\n",
+ "Bm = -309*10**-6;\t\t\t #second virial coefficient in m**3/mol taken from Example (9.7)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "dB0_dTr1 = 0.675/(Tr1**2.6);\t\t\t \n",
+ "dB0_dTr2 = 0.675/(Tr2**2.6);\t\t\t \n",
+ "dB1_dTr1 = 0.722/(Tr1**5.2);\t\t\t \n",
+ "dB1_dTr2 = 0.722/(Tr2**5.2);\t\t\t \n",
+ "dB0_dTr12 = 0.675/(Tr_12**2.6);\t\t\t \n",
+ "dB1_dTr12 = 0.722/(Tr_12**5.2);\t\t\t \n",
+ "dB1_dT = (R/(Pc[0]*10**5))*((dB0_dTr1)+(w[0]*(dB1_dTr1)));\t\t\t\n",
+ "dB2_dT = (R/(Pc[1]*10**5))*((dB0_dTr2)+(w[1]*(dB1_dTr2)));\t\t\t\n",
+ "dB12_dT = (R/(Pc_12*10**6))*((dB0_dTr12)+(w_12*(dB1_dTr12)));\t\t\t\n",
+ "dBm_dT = ((y1**2)*(dB1_dT))+((2*y1*y2)*(dB12_dT))+((y2**2)*(dB2_dT));\t\n",
+ "dep_h = ((Bm-(T*dBm_dT))*P*10**5)*10**-3\n",
+ "dep_s = -P*10**5*(dBm_dT);\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The enthalpy departure of an equimolar mixture of n-butane and n-octane\\\n",
+ " using the virial coefficient correlation = %f kJ/mol\"%(dep_h);\n",
+ "print \" The entropy departure of an equimolar mixture of n-butane and n-octane\\\n",
+ " using the virial coefficient correlation = %0.3f J/mol K\"%(dep_s);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy departure of an equimolar mixture of n-butane and n-octane using the virial coefficient correlation = -1.908476 kJ/mol\n",
+ " The entropy departure of an equimolar mixture of n-butane and n-octane using the virial coefficient correlation = -2.357 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.17 Page No : 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "a_m = 2.4405\t\t\t #van der Waals constant (a_m) in Pa(m**3/mol)**2 taken from Example(9.8)\n",
+ "b_m = 0.1767*10**-3\t\t #van der Waals constant (b_m) in m**3/mol taken from Example(9.8)\n",
+ "Z = 0.928;\t\t\t #compressibility factor taken from Example(9.12)\n",
+ "vm = 2.8933*10**-3;\t\t #molar volume of the equimolar mixture in m**3/mol taken from Example(9.12)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "phi = math.exp(Z-1-math.log ((P*10**5*(vm-b_m))/(R*T))-(a_m/(R*T*vm)));\t\t\t\n",
+ "f = phi*P;\t\t\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of an equimolar mixture of n-butane and n-octane\\\n",
+ " using the van der Waals equation of state = %0.4f \"%(phi);\n",
+ "print \" The fugacity of an equimolar mixture of n-butane and n-octane using the van der Waals \\\n",
+ "equation of state = %0.2f bar\"%(f);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of an equimolar mixture of n-butane and n-octane using the van der Waals equation of state = 0.9018 \n",
+ " The fugacity of an equimolar mixture of n-butane and n-octane using the van der Waals equation of state = 14.43 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.18 Page No : 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16.\t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tcm = 497.3;\t\t\t #pseudocritical temperature of mixture in K taken from Example(9.10)\n",
+ "Pcm = 31.47;\t\t\t #pseudocritical pressure of mixture in bar taken from Example(9.10)\n",
+ "Trm = 1.21;\t\t\t #pseudoreduced temperature of the mixture (no unit) taken from Example(9.10)\n",
+ "Prm = 0.51;\t\t\t #pseudoreduced pressure of the mixture (no unit) taken from Example(9.10)\n",
+ "w = [0.199,0.398];\t\t\t #acentric factor of n-butane and n-octane (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "wm = (w[0]+w[1])/2\n",
+ "log_phi0 = -0.042\n",
+ "log_phi1 = 0.01\n",
+ "phi = 10**(log_phi0+(wm*log_phi1));\t\t\n",
+ "f = P*phi;\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of an equimolar mixture of n-butane and n-octane \\\n",
+ "using the pseudocritical constants method = %0.3f \"%(phi);\n",
+ "print \" The fugacity of an equimolar mixture of n-butane and n-octane using\\\n",
+ " the pseudocritical constants method = %f bar\"%(f);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of an equimolar mixture of n-butane and n-octane using the pseudocritical constants method = 0.914 \n",
+ " The fugacity of an equimolar mixture of n-butane and n-octane using the pseudocritical constants method = 14.625307 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.19 Page No : 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Bm = -309.*10**-6;\t\t\t #second virial coefficient in m**3/mol taken from Example (9.7)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "phi = math.exp((Bm*P*10**5)/(R*T))\n",
+ "f = phi*P;\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of an equimolar mixture of n-butane and n-octane using\\\n",
+ " the virial coefficient correlation = %.3f \"%(phi);\n",
+ "print \" The fugacity of an equimolar mixture of n-butane and n-octane using\\\n",
+ " the virial coefficient correlation = %f bar\"%(f);\n",
+ "\n",
+ "# Note : answers in book is wrong please check manually."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of an equimolar mixture of n-butane and n-octane using the virial coefficient correlation = 0.906 \n",
+ " The fugacity of an equimolar mixture of n-butane and n-octane using the virial coefficient correlation = 14.490290 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.20 Page No : 344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "Tc = [425.2,569.4];\t\t\t #critical temperature of n-butane and n-octane in K\n",
+ "Pc = [37.97,24.97];\t\t\t #critical pressure of n-butane and n-octane in bar\n",
+ "R = 8.314;\t \t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "a1 = (0.42748*R**2*Tc[0]**2.5)/(Pc[0]*10**5*math.sqrt(T))\n",
+ "a2 = (0.42748*R**2*Tc[1]**2.5)/(Pc[1]*10**5*math.sqrt(T))\n",
+ "b1 = (0.08664*R*Tc[0])/(Pc[0]*10**5);\t\t\t \n",
+ "b2 = (0.08664*R*Tc[1])/(Pc[1]*10**5);\t\t\t \n",
+ "\n",
+ "a = ((y1**2)*a1)+(2*y1*y2*math.sqrt(a1*a2))+((y2**2)*a2)\n",
+ "b = (y1*b1)+(y2*b2)\n",
+ "\n",
+ "A = (a*P*10**5)/(R*T)**2\n",
+ "B = (b*P*10**5)/(R*T);\t\n",
+ "alpha = -1.\t\t\t \n",
+ "beeta = A-B-B**2\n",
+ "gaamma = -(A*B)\n",
+ "p = beeta-(alpha**2)/3\n",
+ "q = ((2*alpha**3)/27)-((alpha*beeta)/3)+gaamma\n",
+ "D = (((q)**2)/4)+(((p)**3)/27)\n",
+ "\n",
+ "if D>0:\n",
+ " Z = ((-q/2)+(math.sqrt(D)))**(1./3)+((-q/2)-(math.sqrt(D)))**(1./3)-(alpha/3);\t\t\t #One real root given by Eq.(3.32)\n",
+ "elif D == 0:\n",
+ " Z1 = ((-2*(q/2))**(1./3))-(alpha/3)\n",
+ " Z2 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Z3 = ((q/2)**(1./3))-(alpha/3);\n",
+ " Za = [Z1, Z2, Z3];\n",
+ " Z = max(Za);\n",
+ "else:\n",
+ " r = math.sqrt((-(p**3)/27));\t\t\n",
+ " theta = amath.cos((-(q)/2)*(1./r));\t\n",
+ " Z1 = (2*(r**(1./3))*math.cos(theta/3))-(alpha/3);\n",
+ " Z2 = (2*(r**(1./3))*math.cos(((2*math.pi)+theta)/3))-(alpha/3)\n",
+ " Z3 = (2*(r**(1./3))*math.cos(((4*math.pi)+theta)/3))-(alpha/3);\n",
+ " Za = [Z1, Z2, Z3];\n",
+ " Z = max(Za);\n",
+ "\n",
+ "phi1 = math.exp(((b1/b)*(Z-1))-math.log(Z-B)+((a/(b*R*T))*((b1/b)-(2*math.sqrt(a1/a)))*math.log((Z+B)/Z)));\n",
+ "\n",
+ "phi2 = math.exp(((b2/b)*(Z-1))-math.log(Z-B)+((a/(b*R*T))*((b2/b)-(2*math.sqrt(a2/a)))*math.log((Z+B)/Z)));\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of n-butane in the equimolar mixture using the\\\n",
+ " Redlich-Kwong Equation of state = %0.4f \"%(phi1);\n",
+ "print \" The fugacity coefficient of n-octane in the equimolar mixture using the\\\n",
+ " Redlich-Kwong Equation of state = %0.4f \"%(phi2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of n-butane in the equimolar mixture using the Redlich-Kwong Equation of state = 0.9644 \n",
+ " The fugacity coefficient of n-octane in the equimolar mixture using the Redlich-Kwong Equation of state = 0.8326 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.21 Page No : 346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 600.\t\t\t #temperature of the equimolar n-butane and n-octane mixture in K\n",
+ "P = 16. \t\t\t #pressure of the equimolar n-butane and n-octane mixture in bar\n",
+ "B_11 = -131*10**-6\t\t\t #pure component (n-butane) second virial coefficient in m**3/mol taken from Example(9.7)\n",
+ "B_22 = -577*10**-6\t\t\t #pure component (n-octane) second virial coefficient in m**3/mol taken from Example(9.7)\n",
+ "B_12 = -264*10**-6\t\t\t #mixture interaction virial coefficient in m**3/mol taken from Example(9.7)\n",
+ "Bm = -309*10**-6\t\t\t #second virial coefficient in m**3/mol taken from Example(9.7)\n",
+ "R = 8.314 \t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "y1 = 0.5\n",
+ "y2 = 0.5\n",
+ "Zm = (1./2)*(1+math.sqrt(1+((4*Bm*P*10**5)/(R*T))))\n",
+ "phi1 = math.exp((((2*P*10**5)/(Zm*R*T))*((y1*B_11)+(y2*B_12)))-math.log(Zm))\n",
+ "phi2 = math.exp((((2*P*10**5)/(Zm*R*T))*((y1*B_12)+(y2*B_22)))-math.log(Zm))\n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity coefficient of n-butane in the equimolar mixture using the\\\n",
+ " Virial Equation of state = %0.3f \"%(phi1);\n",
+ "print \" The fugacity coefficient of n-octane in the equimolar mixture using the Virial\\\n",
+ " Equation of state = %f \"%(phi2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity coefficient of n-butane in the equimolar mixture using the Virial Equation of state = 0.976 \n",
+ " The fugacity coefficient of n-octane in the equimolar mixture using the Virial Equation of state = 0.830827 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 9.22 Page No : 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 427.85 \t\t\t #temperature of n-octane vapour in K\n",
+ "Psat = 0.215;\t\t\t #saturation pressure of n-octane vapour at T in MPa\n",
+ "P = 1.\t\t \t #pressure at which the fugacity of liquid n-octane is to be determined in MPa\n",
+ "f_sat = 0.2368;\t\t\t #fugacity of n-octane vapour at T and Psat taken from Example(9.5) in MPa\n",
+ "vl = 0.2003*10**-3;\t\t\t #molar volume of n-octane liquid at T and Psat taken from Example(3.16) in m**3/mol\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "f_l = (0.2368*math.exp((vl*(P-Psat)*10**6)/(R*T)));\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print \" The fugacity of liquid n-octane at 427.85K and 1MPa = %0.4f MPa\"%(f_l);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fugacity of liquid n-octane at 427.85K and 1MPa = 0.2475 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_gE-RTx1x2_vs_x1.png b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_gE-RTx1x2_vs_x1.png
new file mode 100755
index 00000000..90bbaf61
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_gE-RTx1x2_vs_x1.png
Binary files differ
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_ln(gamma1-gamma2)_vs_x1.png b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_ln(gamma1-gamma2)_vs_x1.png
new file mode 100755
index 00000000..b7a97cb1
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/Plot_of_ln(gamma1-gamma2)_vs_x1.png
Binary files differ
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/T-x-y_diagram.png b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/T-x-y_diagram.png
new file mode 100755
index 00000000..f231eb76
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/T-x-y_diagram.png
Binary files differ
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/pressureVSvol3.png b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/pressureVSvol3.png
new file mode 100755
index 00000000..9e02c340
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/screenshots/pressureVSvol3.png
Binary files differ