diff options
Diffstat (limited to 'Engineering_&_Chemical_Thermodynamics')
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/README.txt | 10 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch1.ipynb | 164 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch2.ipynb | 1120 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch3.ipynb | 661 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch4.ipynb | 434 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch5.ipynb | 313 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch6.ipynb | 519 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch7.ipynb | 197 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch8.ipynb | 942 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/ch9.ipynb | 1019 | ||||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/screenshots/graphical_determination.png | bin | 0 -> 19756 bytes | |||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/screenshots/least-squares-linear-fit.png | bin | 0 -> 13684 bytes | |||
-rwxr-xr-x | Engineering_&_Chemical_Thermodynamics/screenshots/partial.png | bin | 0 -> 14760 bytes |
13 files changed, 5379 insertions, 0 deletions
diff --git a/Engineering_&_Chemical_Thermodynamics/README.txt b/Engineering_&_Chemical_Thermodynamics/README.txt new file mode 100755 index 00000000..86222029 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/README.txt @@ -0,0 +1,10 @@ +Contributed By: Vaibhav Shah +Course: mca +College/Institute/Organization: IIT +Department/Designation: Developer +Book Title: Engineering & Chemical Thermodynamics +Author: M. D. Koretsky +Publisher: Wiley India Pvt. Ltd., New Delhi +Year of publication: 2010 +Isbn: 978-81-265-2449-5 +Edition: 2
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch1.ipynb b/Engineering_&_Chemical_Thermodynamics/ch1.ipynb new file mode 100755 index 00000000..b3ff4f91 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch1.ipynb @@ -0,0 +1,164 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 1 : Measured thermodynamic Properties and Other Basic Concepts" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.3 Page No : 28" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P = 1.4 ; \t\t\t# [MPa]\n", + "T = 333. \t\t\t#[K]\n", + "T1 = 320. \t\t\t#[K]\n", + "T2 = 360. \t\t\t#[K]\n", + "P_low = 1. \t\t\t#[MPa]\n", + "P_high = 1.5\n", + "V_cap_T1_P1 = 0.2678\n", + "V_cap_T2_P1 = 0.2873\n", + "V_cap_T1_P1_5 = 0.1765\n", + "V_cap_T2_P1_5 = 0.1899\n", + "\n", + "# Calculations\n", + "#At P = 1 MPa\n", + "V_cap_T333_P1 = V_cap_T1_P1 + (V_cap_T2_P1 - V_cap_T1_P1)*((T - T1)/(T2- T1))\n", + "\n", + "#Similarly at P=1.5 MPa\n", + "V_cap_T333_P1_5 = V_cap_T1_P1_5 + (V_cap_T2_P1_5 - V_cap_T1_P1_5)*((T - T1)/(T2 - T1))\n", + "\n", + "#At T=333*C\n", + "V_cap_P1_5 = V_cap_T333_P1_5 ;\n", + "V_cap_P1 = V_cap_T333_P1 ;\n", + "V_cap_P1_4 = V_cap_P1 + (V_cap_P1_5 - V_cap_P1)*((P - P_low)/(P_high - P_low)) ; \t\t\t#[m**3/kg]\n", + "\n", + "# Results\n", + "print 'Required specific volume = %.5f m**3/kg'%(V_cap_P1_4);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Required specific volume = 0.19951 m**3/kg\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.4 Page No : 29" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P = 1.4 ; \t\t\t#[MPa]\n", + "P_low = 1 ;\t\t\t#[MPa]\n", + "P_high = 1.5;\t\t\t#[MPa]\n", + "\n", + "#At T=333*C from interpolation we have\n", + "v_cap_P1_5 = 0.18086 ;\t\t\t#[m**3/kg]\n", + "v_cap_P1 = 0.27414 ;\t\t\t#[m**3/kg]\n", + "\n", + "# Calculations\n", + "#Molar volume is inversely proportional to pressure\n", + "v_cap_P1_4 = v_cap_P1 +(v_cap_P1_5 - v_cap_P1)*((1/P - 1/P_low)/(1/P_high - 1/P_low));\n", + "x=(0.19951-v_cap_P1_4)/v_cap_P1_4*100 ;\n", + "\n", + "# Results\n", + "print 'Specific volume m**3/kg) = %g m**3/kg'%(v_cap_P1_4);\n", + "print 'Percentage difference = %.1f %%'%(x);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Specific volume m**3/kg) = 0.194186 m**3/kg\n", + "Percentage difference = 2.7 %\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.5 page no : 29" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# variables\n", + "V1 = 1 # volume\n", + "m1 = 2.5 # water\n", + "Vv = 5.042 # m**3/kg\n", + "Vt = .001023 # m**3/kg\n", + "T_44632 = 145 # C\n", + "T_39278 = 150 # C\n", + "\n", + "# Calculations\n", + "v1 = V1/m1 \n", + "x1 = (v1 - Vt)/(Vv - Vt)\n", + "\n", + "T2 = T_44632 + ( T_39278 - T_44632) * (( 0.4 - 0.44632)/(0.39278 - 0.44632))\n", + "\n", + "# Restuls\n", + "print \"Approximately %.f %% of the mass of water in the vapor\"%(round(x1,2)*100)\n", + "print \"Temperature T2 = %.1f C\"%T2\n", + "\n", + "# Note : Answer in book is wrong. Please calculate manually.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Approximately 8 % of the mass of water in the vapor\n", + "Temperature T2 = 149.3 C\n" + ] + } + ], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch2.ipynb b/Engineering_&_Chemical_Thermodynamics/ch2.ipynb new file mode 100755 index 00000000..e1006ddc --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch2.ipynb @@ -0,0 +1,1120 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2 : The First law of Thermodynamics" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.1 Page No : 38" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "z1 = 10. \t\t\t#[m]\n", + "z2 = 0. \t\t\t#[m],Taking ground as state 2,reference\n", + "v1 = 0.\n", + "g = 9.81 #m/s\n", + "\n", + "#From conservation of total energy we get\n", + "# (1/2*m*v2**2-1 / 2*m*v1**2)+(m*g*z2 - m*g*z1) = 0\n", + "# 1/2*m*v2**2 - m*g*z1 = 0\n", + "v2 = math.sqrt(2 * g * z1) ; \t\t\t#[m/s]\n", + "\n", + "# Results\n", + "print 'Final velocity = %.f m/s'%(v2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Final velocity = 14 m/s\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.2 Page No : 41" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "V2 = 14. \t\t\t# [m/s]\n", + "u_cap_l1 = 104.86 ; \t\t\t#[kJ/kg],at 25*C internal energy of saturated water\n", + "u_cap_l_t25 = 104.86 ; \t\t\t#[kJ/kg], From steam table \n", + "u_cap_l_t30 = 125.77 ; \t\t\t#[kJ/kg], From steam table\n", + "T1 = 25. \t\t \t#[*C]\n", + "T2 = 30. \t\t \t #[*C]\n", + "\n", + "# Calculations\n", + "#For unit mass change in kinetic energy\n", + "Delta_e_cap_k = 1./2 * V2**2 * 10**-3 ; \t\t\t#[kJ/kg]\n", + "Delta_u_cap = Delta_e_cap_k ;\n", + "#For final state of water:\n", + "u_cap_l2 = Delta_u_cap + u_cap_l1 ;\n", + "\n", + "x = (u_cap_l2 - u_cap_l_t25) / (u_cap_l_t30 - u_cap_l_t25) ;\n", + "T_unknown = T1 + x*(T2 - T1) ;\n", + "\n", + "# Results\n", + "print 'Final temperature of water = %.2f degreeC'%(T_unknown);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Final temperature of water = 25.02 degreeC\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.3 Page No : 43" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "import scipy.integrate\n", + "\n", + "# Variables\n", + "P_ex = 1*10**5 ; \t\t\t#[Pa]}\n", + "\n", + "# Calculations\n", + "#To calculte work done\n", + "def f(x):\n", + " return 1\n", + " \n", + "I = scipy.integrate.quadrature(f,10,15.2)[0]\n", + "W = -P_ex * I * 10**-3 ; \t\t\t#[J]\n", + "\n", + "# Results\n", + "print 'Work done = %g J'%(W);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Work done = -520 J\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.4 page no : 57" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.integrate import quad\n", + "\n", + "# Variables\n", + "V = 1.0 # m**3\n", + "m = 10 # kg\n", + "p1p2 = .2\n", + "u1 = 2600.3 #kJ/kg\n", + "P1 = 20\n", + "v1 = 0.1\n", + "\n", + "# Calculations\n", + "v = V/m\n", + "v2 = (p1p2*v**1.5)**(1./1.5)\n", + "\n", + "def fun(v):\n", + " return P1*v1**1.5/v**1.5\n", + "\n", + "w = -quad(fun,0.1,.0342)[0]\n", + " \n", + "u2 = 3045.8 + (3144.5 - 3045.8) * (v2 - .03279)/(.03564 - .03279)\n", + "T2 = 500 + (550 - 500) * (v2 - .03279)/(.03564 - .03279)\n", + "\n", + "# results\n", + "print \"The specific volume of initial state = %.2f m**3/kg\"%v\n", + "print \"V2 = %.4f m**3/kg\"%v2\n", + "print \"Work done = %.f kJ/kg\"%(w*100)\n", + "print \"U2 = %.1f kJ/kg\"%u2\n", + "print \"T2 = %.f C\"%T2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The specific volume of initial state = 0.10 m**3/kg\n", + "V2 = 0.0342 m**3/kg\n", + "Work done = 284 kJ/kg\n", + "U2 = 3094.6 kJ/kg\n", + "T2 = 525 C\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.5 Page No : 63" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# variables\n", + "#From steam table specific enthalpy at state1 and state2 are\n", + "h_cap_1 = 3373.6 \t\t\t#[kJ/kg]\n", + "h_cap_2 = 2675.5 \t\t\t#[kJ/kg]\n", + "m_dot1 = 10. \t\t\t#[kg/s],As we are dealing with steady state\n", + "m_dot2 = 10. \t \t\t#[kg/s]\n", + "\n", + "# Calculations\n", + "Ws_dot = m_dot1 * (h_cap_2 - h_cap_1) ; \t\t\t#[kW]\n", + "\n", + "# Results\n", + "print 'Power generated = %g kW'%(Ws_dot);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power generated = -6981 kW\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.6 Page No : 64" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "h_cap_in = 3241.\t\t#[kJ/kg] , From steam table\n", + "P_final = 10. \t\t\t#[MPa]\n", + "\n", + "# Calculations and Results\n", + "u_cap_2 = h_cap_in ;\n", + "T2 = 600. ; \t\t\t# From steam table .No calculation is involved .\n", + "print 'a) The final temperature of the system = %g *C'%(T2);\n", + "\n", + "u_cap_2 = h_cap_in ;\n", + "# So temperature is T2 = 600*C (From table).\n", + "#Solution(b)\n", + "print \"(b) The temperature of the fluid increases in the system due to the receipent of flow work .\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) The final temperature of the system = 600 *C\n", + "(b) The temperature of the fluid increases in the system due to the receipent of flow work .\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.7 Page No : 72" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy.integrate.quadrature \n", + "\n", + "# Variables\n", + "n = 2. \t\t\t#[mol]\n", + "A = 3.470 ;\n", + "B = 1.450*10**-3 ;\n", + "D = 0.121*10**5 ;\n", + "T1 = 473. ; \t\t\t#[K]\n", + "T2 = 773. ; \t\t\t#[K]\n", + "\n", + "# Calculations and Results\n", + "def f(T):\n", + " return 8.314*(A + B*T + D*T**-2)\n", + " \n", + "Delta_h = scipy.integrate.quadrature(f,T1,T2)[0]\n", + "\n", + "Q = n * Delta_h ;\n", + "\n", + "print 'a)Heat required = %d J'%(Q);\n", + "\n", + "#From steam table\n", + "h_cap_1 = 2827.9 ; \t\t\t#[kJ/kg]\n", + "h_cap_2 = 3478.4 ; \t\t\t#[kJ/kg]\n", + "m = 2*0.018 ; \t\t\t#[kg]\n", + "\n", + "Delta_h_cap = (h_cap_2 - h_cap_1) * 10**3 ; \t\t\t#[J/kg]\n", + "Q = m * Delta_h_cap;\n", + "print 'b)Heat required = %g J'%(Q);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)Heat required = 21981 J\n", + "b)Heat required = 23418 J\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.8 Page No : 73" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "T1 = 298.;\n", + "T2_start = 300.;\n", + "A = 3.355;\n", + "B = 0.575*10**-3;\n", + "D = -0.016*10**5;\n", + "\n", + "# Calculations\n", + "def f(T):\n", + " return 8.314*(A*T + B/2*T**2 - D/T)\n", + "\n", + "for T2_start in range(300,1000+1,100):\n", + " del_h = f(T2_start) - f(T1);\n", + " Cp = del_h /(T2_start - 298);\n", + " print 'At temperatureK %g, Molar heat capacity J/molK, %.2f'%(T2_start,Cp); \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "At temperatureK 300, Molar heat capacity J/molK, 29.17\n", + "At temperatureK 400, Molar heat capacity J/molK, 29.45\n", + "At temperatureK 500, Molar heat capacity J/molK, 29.71\n", + "At temperatureK 600, Molar heat capacity J/molK, 29.97\n", + "At temperatureK 700, Molar heat capacity J/molK, 30.22\n", + "At temperatureK 800, Molar heat capacity J/molK, 30.46\n", + "At temperatureK 900, Molar heat capacity J/molK, 30.71\n", + "At temperatureK 1000, Molar heat capacity J/molK, 30.95\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.9 Page No : 73" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "n_dot_air = 10. ; \t\t\t#[mol/min]\n", + "C_bar_P_900 = 30.71 ; \t\t\t#[J/molK]\n", + "C_bar_P_600 = 29.97 ; \t\t\t#[J/molK]\n", + "T1 = 600. ; \t\t\t#[K]\n", + "T2 = 900. ; \t\t\t#[K]\n", + "T_ref = 298. ; \t\t\t#[K]\n", + "\n", + "# Calculations\n", + "# Q_dot = n_dot_air * (h_900 - h_600)...........Eqn E2.8A\n", + "Q_dot = n_dot_air * (C_bar_P_900 * (T2 - T_ref) - C_bar_P_600 * (T1 - T_ref)); \n", + "\n", + "# Results\n", + "print 'Heat rate required = %.3f J/min'%(Q_dot/1000);\n", + "\n", + "# note: answer may vary because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat rate required = 94.365 J/min\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.10 Page No : 74" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "P1 = 100000. ; \t\t\t # [N/m**2]\n", + "T1 = 298. ; \t\t \t#[K]\n", + "V1 = 0.1 * 0.1 ; \t\t\t# [m**3]\n", + "T2 = 373. ; \t\t\t # [N]\n", + "P_ext = 100000. ; \t\t\t#[N/m**2]\n", + "k = 50000. \t\t\t#[N/m]\n", + "A = 0.1 ; \t\t \t#[m**2]\n", + "\n", + "# Calculations and Results\n", + "a = k / (T2 * A**2) ;\n", + "b = (P_ext / T2) - k * V1 / (A**2 * T2) ;\n", + "c = -P1 * V1 / T1 ;\n", + "V2 = (-b + math.sqrt ( b**2 - (4*a*c))) / (2 * a) ;\n", + "W = -P_ext * (V2 - V1) - ( k * (V2 - V1)**2)/(2 * A**2);\t\t\t#From eqn E2.9C\n", + "\n", + "print 'a) Work required = %.f J '%(W);\n", + "\n", + "\n", + "A = 3.355 ;\n", + "B = 0.575 * 10**-3 ;\n", + "D = -0.016 * 10**5 ;\n", + "P1 = 10**5 ; \t\t\t#[N/m**2]\n", + "V1 = 0.01 ; \t\t\t#[m**3]\n", + "R = 8.314 ;\n", + "T1 = 298 ;\n", + "\n", + "n = (P1 * V1) / (R * T1) ;\n", + "def f(T):\n", + " return R*((A - 1) * T + B/2 * T**2 -D/T)\n", + "\n", + "del_u = f(373) - f(298) ;\n", + "del_U = n * del_u ;\n", + "Q = del_U - W;\n", + "print 'b).Heat transfered = %.f J'%(Q);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Work required = -166 J \n", + "b).Heat transfered = 803 J\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.11 Page No : 78" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "n_dot = 10. \t \t\t#[mol/s]\n", + "T1 = 298.2 \t\t\t#[K]\n", + "T2 = 342. \t\t\t #[K]\n", + "T3 = 373.2 \t\t \t#[K]\n", + "Cp_298_342 = 216.3 \t\t\t#[J/molK]\n", + "A = 3.025 \n", + "B = 53.722 * 10**-3\n", + "C = -16.791 * 10**-6\n", + "del_h_vap = 28.88 \t\t\t#[kJ/mol]\n", + "\n", + "# Calculations\n", + "del_h_1 = Cp_298_342 * (T2 - T1) * 10**-3 ; \t\t\t#[kJ/mol]\n", + "del_h_2 = del_h_vap ;\n", + "def f(T):\n", + " return 8.314*(A*T + (B/2)*(T**2) + (C/3)*(T**3))* 10**-3 ;\n", + "\n", + "del_h_3 = f(T3) - f(T2) ;\n", + "Q = n_dot * (del_h_1 + del_h_2 + del_h_3) ;\n", + "\n", + "print 'Rate of heat supplied = %d kJ/s'%(Q );\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Rate of heat supplied = 435 kJ/s\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.12 Page No : 79" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "m_1_v = 4.3 \t\t\t#[kg]\n", + "m_1_l = 50. \t\t\t#[kg]\n", + "u_cap_1_v = 2437.9 \t\t\t#[kJ/kg],From steam table\n", + "u_cap_1_l = 191.8 \t\t\t#[kJ/kg],From steam table\n", + "v_cap_1_v = 14.67 \t \t\t#[m**3],From steam table\n", + "v_cap_1_l = 0.001 \t\t \t#[m**3],From steam table\n", + "\n", + "# Calculations\n", + "V2 = m_1_l * v_cap_1_l + m_1_v * v_cap_1_v ;\n", + "m_2_v = m_1_l + m_1_v ;\n", + "v_cap_2_v = V2 / m_2_v ; \t\t\t#[m**3/kg]\n", + "P2= 0.15 \t\t\t#[MPa]\n", + "u_cap_2_v = 2519.6 \t\t\t#(kJ/kg)\n", + "Q = ((m_2_v * u_cap_2_v) -(m_1_l * u_cap_1_l + m_1_v * u_cap_1_v))*1000;\n", + "\n", + "# Results\n", + "print 'Minimum amount of heat required = %.2e J'%(Q);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Minimum amount of heat required = 1.17e+08 J\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.13 Page No : 83" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "del_h0_f_CO2 = -393.51 ; \t\t\t# [kJ/mol]\n", + "del_h0_f_H2 = 0 ; \t\t\t# [kJ/mol]\n", + "del_h0_f_H2O = -241.82 ; \t\t\t# [kJ/mol]\n", + "del_h0_f_CH3OH = -200.66 ; \t\t\t# [kJ/mol]\n", + "\n", + "# Calculations\n", + "del_h0 = del_h0_f_CO2 + 3 * del_h0_f_H2 - del_h0_f_H2O - del_h0_f_CH3OH ;\n", + "\n", + "# Results\n", + "print 'Enthalpy of reaction = %.f kJ/mol'%(del_h0);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enthalpy of reaction = 49 kJ/mol\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.14 page no : 84" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# variables\n", + "Vp = 3*10**6 *0.7*10**6\n", + "MW = 114.2 # g/mol\n", + "\n", + "\n", + "#Calculations\n", + "n = Vp/MW\n", + "H = -9.3 * 10**16 # J\n", + "Ep = 200 * 0.10*24*3600 # energy density\n", + "A = -H/Ep\n", + "\n", + "# Results\n", + "print \"a) Area A = %.1e m**2\"%A\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Area A = 5.4e+10 m**2\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.15 Page No : 85" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "from numpy import *\n", + "from scipy.integrate import *\n", + "\n", + "# Variables\n", + "del_h0_f_CO2 = -393.51 \t\t\t#[kJ/mol], From Appendix A.3 \n", + "del_h0_f_CO = -110.53 \t \t\t#[kJ/mol], From Appendix A.3\n", + "del_h0_f_H2O = -241.82 \t\t\t#[kJ/mol], From Appendix A.3\n", + "del_h0_f_C3H8 = -103.85 \t\t\t#[kJ/mol], From Appendix A.3\n", + "del_h0_f_O2 = 0. \t\t\t #[kJ/mol], From Appendix A.3\n", + "A_CO2 = 5.457 \t\t\t # From table E2.13\n", + "B_CO2 = 1.05 * 10**-3 \n", + "D_CO2 = -1.16 * 10**5 \n", + "A_CO = 3.379 \n", + "B_CO = 5.57 * 10**-4\n", + "D_CO = -3.1 * 10**3 \n", + "A_H2O = 3.470 \n", + "B_H2O = 1.45 * 10**-3\n", + "D_H2O = 1.21 * 10**4 \n", + "A_N2 = 3.280 \n", + "B_N2 = 5.93 * 10**-4 \n", + "D_N2 = 4.00 * 10**3 \n", + " \n", + "# Calculations \n", + "n_C3H8 = 10. \t\t\t#[mol]\n", + "n_N2 = (0.79/0.21) * (9.7/2) * n_C3H8 ; \t\t\t#[mol]\n", + "n_CO2 = 2.7 * n_C3H8 ; \t\t\t#[mol]\n", + "n_CO = 0.3 * n_C3H8 ; \t\t\t#[mol]\n", + "n_H2O = 4 * n_C3H8 ; \t\t\t#[mol]\n", + "n_O2 = (9.7 / 2)* n_C3H8 \t\t#[mol]\n", + "T_reff = 298. \t\t\t#[K]\n", + "del_H_rxn_298 = n_CO2 * del_h0_f_CO2 + n_CO * del_h0_f_CO + n_H2O * del_h0_f_H2O - n_C3H8 * del_h0_f_C3H8 - n_O2 * del_h0_f_O2 ; \t\t\t#[kJ]\n", + "\n", + "#The co-efficients of T2 in the equation of degree 3 are\n", + "a = 8.314*(n_CO2 * (B_CO2/2) + n_CO * (B_CO/2) + n_H2O * (B_H2O/2) + n_N2 * (B_N2/2));\n", + "b = 8.314*(n_CO2 * A_CO2 + n_CO * A_CO + n_H2O * A_H2O + n_N2 * A_N2) ;\n", + "d =8.314*(- n_CO2 * D_CO2 - n_CO * D_CO - n_H2O * D_H2O -n_N2 * D_N2) ;\n", + "c = (del_H_rxn_298 *1000) + 8.314 * (n_CO2 * (- T_reff * A_CO2 - B_CO2/2 * T_reff**2 + D_CO2/T_reff) + n_CO * (- T_reff * A_CO - B_CO/2 * T_reff**2 + D_CO/T_reff) + n_H2O * (- T_reff * A_H2O - B_H2O/2 * T_reff**2 + D_H2O/T_reff) + n_N2 * (-T_reff * A_N2 - B_N2/2 * T_reff**2 + D_N2/T_reff));\n", + "\n", + "T2=poly1d([a,b,c,d])\n", + "M = roots(T2);\n", + "\n", + "\n", + "# Results\n", + "print \"T2 = %.f [K]\"%(round(round(M[1]),-1))\n", + "\n", + "# Note: python has only 1 method to find roots so part 1-2 can be calculated same way here." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "T2 = 2350 [K]\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.16 pageno : 89" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# variables\n", + "\n", + "# Calculations\n", + "deltaH1rxn298 = (-393.51) - 1*(-110.53) -0 # Reaction 1\n", + "deltaH2rxn298 = 1*(-110.53) -0 - 0 # Reaction 2\n", + "E1 = 3\n", + "E2 = 1\n", + "\n", + "deltaHrxn = E1*deltaH1rxn298*1000 + E2*deltaH2rxn298*1000\n", + "nCO2 = 4 - E1 + E2\n", + "nO22 = 4 - (1./2*E1) - 1./2*E2\n", + "nCO22 = 0 + E1\n", + "nC2 = 2 - E2\n", + "s = 52000.\n", + "Q = deltaHrxn + s\n", + "\n", + "# Results\n", + "print \"extensive enthalpy of reaction %.2e J\"%deltaHrxn\n", + "print \"amount of energy transferred by heat %.1e J\"%Q" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "extensive enthalpy of reaction -9.59e+05 J\n", + "amount of energy transferred by heat -9.1e+05 J\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.18 Page No : 96" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import *\n", + "\n", + "# Variables\n", + "V1 = 350. \t\t \t#[m/s]\n", + "A = 3.355 \n", + "B = 0.575*10**-3\n", + "D = -0.016*10**5\n", + "Tin = 283. \t \t\t#[K]\n", + "MW = 29.*10**-3 ; \t\t\t#[kg/mol]\n", + "\n", + "ek = 1./2 * MW * V1**2 \n", + "a = B/2.\n", + "b = A ;\n", + "c = -(Tin * A + Tin**2*B/2 - (D/Tin) + ek/8.314)\n", + "d=-D \n", + "\n", + "T2=poly1d([a,b,c,d])#'T2',0);\n", + "M = roots(T2);\n", + "\n", + "\n", + "# Results\n", + "print \"Temperature T2 = %.f [K]\"%M[1]\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Temperature T2 = 344 [K]\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.19 Page No : 97" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "V_dot_2 = 0.001 ; \t\t\t#[m**3/kg]\n", + "v_cap_2 = 0.001 ; \t\t\t#[m**3/kg], Specific volume of water\n", + "z2 = 250. \t\t\t#[m] ; Taking ground as the reference level\n", + "e_cap_2 = 9.8 * z2 \t\t\t#[kg*m**2/s**2]\n", + "\n", + "# Calculations\n", + "m_dot_2 = V_dot_2 / v_cap_2 \t\t\t#[kg/s]\n", + "W_dot_s = m_dot_2 * e_cap_2 * 10**-3 ;\n", + "\n", + "# Results\n", + "print 'Minimum power required is = %.1f kW'%(W_dot_s);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Minimum power required is = 2.5 kW\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.20 Page No : 98" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "n_dot = 10. \t\t\t#[mol/min]\n", + "del_h_vap_CO2 = 10400. ; \t\t\t#[J/mol]\n", + "A_CO2 = 5.457 ; \t\t \t#From appendix A.3\n", + "B_CO2 = 1.045 * 10**-3 ;\n", + "D_CO2 = -1.157 * 10**5 ;\n", + "A_air = 3.355 ; \n", + "B_air = 0.575 * 10**-3 ;\n", + "D_air = -0.016 * 10**5 ;\n", + "T1 = 273. ; \t\t\t#[K]\n", + "T2 = 283. ; \t\t\t#[K]\n", + "T3 = 323. ; \t\t\t#[K]\n", + "T4 = 293. ; \t\t\t#{k}\n", + "\n", + "def f1(T):\n", + " return 8.314 * (A_CO2 * T + (B_CO2/2) * T**2 - D_CO2/T)\n", + "\n", + "sen_heat_CO2 = f1(T2) - f1(T1) ;\n", + "Q_dot = n_dot * (del_h_vap_CO2 + sen_heat_CO2) ; \t\t\t#[J/min]\n", + "\n", + "def f2(T):\n", + " return 8.314 * (A_air * T + B_air/2*T**2 - D_air /T)\n", + "\n", + "sen_heat_air = f2(T4) - f2(T3);\n", + "n_dot_air = - Q_dot / sen_heat_air ;\n", + "print 'Air required = %.F mol/min'%(n_dot_air); \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Air required = 123 mol/min\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.21 Page No : 100" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "m_dot_1 = 10. \t\t\t#[kg/s]\n", + "h_cap_1 = 3238.2 ;\t\t\t#[kJ/kg], Super heated steam at 500*C & 200bar\n", + "h_cap_2 = 93.3 ;\t\t\t#[kL/kg], subcooled liquid at 20*C & 100bar\n", + "h_cap_3 = 2724.7 ;\t\t\t#{kJ/kg}, Super heated vapour at 100bar \n", + "\n", + "# Calculations\n", + "m_dot_2 = m_dot_1 * (h_cap_1 - h_cap_3) / (h_cap_3 - h_cap_2);\n", + "\n", + "# Results\n", + "print 'Flow of liquid stream = %.2f kg/s'%(m_dot_2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Flow of liquid stream = 1.95 kg/s\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.22 Page No : 101" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "h_cap_st_1 = 2923.4 ; \t\t\t# [kJ/kg]\n", + "h_cap_200 = 2875.3 ; \t\t\t# {kJ/kg} , At 100kPa\n", + "h_cap_250 = 2974.3 ; \t\t\t# {kJ/kg} , At 100 kPa\n", + "del_T = 250.-200 ;\n", + "T1 = 200. \t\t\t#[K]\n", + "\n", + "# Calculations\n", + "h_cap_st_2 = h_cap_st_1 ;\t\t\t#Assumimg bulk kinetic energy of the stream and heat transfered is negligible\n", + "T2 = T1 + del_T * (h_cap_st_2 - h_cap_200) / (h_cap_250 - h_cap_200) ;\n", + "\n", + "# Results\n", + "print 'The exit temperature is = %d *C'%(T2) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The exit temperature is = 224 *C\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.23 Page No : 105" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from numpy import zeros\n", + "\n", + "# Variables\n", + "Cv = 3./2 * 8.314 ;\n", + "Cp = 5./2 * 8.314 ;\n", + "n = 1.; \n", + "R = 8.314 ; \n", + "T1 = 1000. ; \t\t\t#[K]\n", + "P1 = 10. ; \t \t\t#[bar]\n", + "T2 = 1000. ; \t\t\t#[K]\n", + "P2 = 0.1 ; \t\t\t#[bar]\n", + "T3 = 300. ; \t\t\t#[K]\n", + "T4 = 300. ; \t\t\t#[K]\n", + "\n", + "# Calculations and Results\n", + "k = Cp / Cv ;\n", + "P3 = P2 * (T3 / T2)**(k/(k-1)); \t\t\t#[bar]\n", + "P4 = P1 * (T4 / T1)**(k/(k-1)) ; \t\t\t#[bar]\n", + "\n", + "del_U_12 = 0 ; \t\t\t# As process 1-2 is isothermal \n", + "W_12 = n * R * T1 * math.log(P2 / P1);\n", + "Q_h_12 = W_12 ;\n", + "print 'a) 1) del_U = %d J'%(del_U_12) ;\n", + "print ' Work = %d J'%(W_12) ;\n", + "print ' Heat = %d J'%(Q_h_12) ;\n", + "\n", + "Q_23 = 0 ; \t\t\t# As adiabatic process\n", + "del_U_23 = n * Cv *(T3 - T2) ;\n", + "W_23 = del_U_23 ;\n", + "print ' 2) del_U = %g J'%(round(del_U_23,-1)) ;\n", + "print ' Work J = %d J'%(round(W_23,-1)) ;\n", + "print ' Heat J = %d J'%(Q_23) ;\n", + "\n", + "del_U_34 = 0 ; \t\t\t# As isothermal process\n", + "W_34 = n * R * T3 * math.log(P4 / P3) ; \t\t\t# Eqn E2.20.A\n", + "Q_c_34 = del_U_34 - W_34 ;\n", + "print ' 3) del_U = %g J'%(del_U_34) ;\n", + "print ' Work = %d J'%(W_34) ;\n", + "print ' Heat = %d J'%(Q_c_34) ;\n", + "\n", + "Q_41 = 0 ; \t\t\t# As adiabatic process\n", + "del_U_41 = n * Cv * (T1 - T4) ;\n", + "W_41 = del_U_41 ;\n", + "print ' 4) del_U = %g J'%(round(del_U_41,-1)) ;\n", + "print ' Work = %d J'%(round(W_41,-1)) ;\n", + "print ' Heat = %d J'%(Q_41) ;\n", + "\n", + "#Solution (c)\n", + "W_total = W_12 + W_23 + W_34 + W_41 ;\n", + "Q_absor = Q_h_12 ;\n", + "effi = W_total / Q_absor ;\n", + "print 'c) efficiency = %g'%(effi)\n", + "\n", + "#Solution (d)\n", + "x = 1 - T3 / T1 ;\n", + "print 'd) 1 - Tc/Th = %g'%(x);\n", + "print \" i.e Efficiency = 1 - Tc/Th\"\n", + "\n", + "#Solution (e)\n", + "print \"(e) The process can be made more efficient by raimath.sing Th or by lowering Tc .\"\n", + "print \"Table E2.20B\"\n", + "print \" T(K) P(bar) v(m**3/mol)\"\n", + "P = [P1 , P2 , P3 , P4 ] ;\n", + "T = [T1 , T2 , T3 , T4 ] ;\n", + "v = zeros(4)\n", + "for i in range(4):\n", + " v[i] = R * T[i] * 10**-5/ P[i] ;\n", + " print \" %6d %8.4f %.4f \"%(T[i],P[i],v[i]) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) 1) del_U = 0 J\n", + " Work = -38287 J\n", + " Heat = -38287 J\n", + " 2) del_U = -8730 J\n", + " Work J = -8730 J\n", + " Heat J = 0 J\n", + " 3) del_U = 0 J\n", + " Work = 11486 J\n", + " Heat = -11486 J\n", + " 4) del_U = 8730 J\n", + " Work = 8730 J\n", + " Heat = 0 J\n", + "c) efficiency = 0.7\n", + "d) 1 - Tc/Th = 0.7\n", + " i.e Efficiency = 1 - Tc/Th\n", + "(e) The process can be made more efficient by raimath.sing Th or by lowering Tc .\n", + "Table E2.20B\n", + " T(K) P(bar) v(m**3/mol)\n", + " 1000 10.0000 0.0083 \n", + " 1000 0.1000 0.8314 \n", + " 300 0.0049 5.0597 \n", + " 300 0.4930 0.0506 \n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch3.ipynb b/Engineering_&_Chemical_Thermodynamics/ch3.ipynb new file mode 100755 index 00000000..d04254c8 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch3.ipynb @@ -0,0 +1,661 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3 : Entropy and the Second law of Thermodynamics" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.2 Page No : 144" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "del_U = 0. ; \t\t\t# As no work or heat transfered across its boundaries during the process \n", + "T_1 = 500. ; \t\t\t# [K]\n", + "\n", + "# Calculations and Results\n", + "V1 = 1.6682 / 2 * 10**-3; \t\t\t# [m**3]\n", + "V2 = 2. * V1 ; \n", + "del_S_sur = 0 ; \t\t\t# As no heat transfered across its boundaries during the process \n", + "\n", + "\n", + "print \"(a)For an ideal gas u = u(T only)\"\n", + "print ' Final temperature = %g K '%(T_1);\n", + "\n", + "q_rev = 8.314 * T_1 * math.log(V2/V1) ;\n", + "del_S_sys = q_rev / T_1 ;\n", + "del_S_univ = del_S_sys + del_S_sur ;\n", + "\n", + "print 'b)Entropy change for universe = %.2f J/molK)'%(del_S_univ);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)For an ideal gas u = u(T only)\n", + " Final temperature = 500 K \n", + "b)Entropy change for universe = 5.76 J/molK)\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.3 Page No : 145" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "T_1_1 = 273. ;\t\t\t# {K}\n", + "T_1_2 = 373. ; \t\t\t#[K]\n", + "Cp = 24.5 ; \t\t\t# [J/molK]\n", + "del_S_sur = 0. ; \t\t\t#Since the system is isolated \n", + "\n", + "# Calculations\n", + "T2 = (T_1_1 + T_1_2)/2 ;\n", + "del_S = Cp / 2 * math.log(T2**2 / (T_1_1 * T_1_2)) ;\n", + "\n", + "# Results\n", + "print \"Entropy change for the system = %.2f J/mol K)\"%( del_S);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Entropy change for the system = 0.30 J/mol K)\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.4 Page No : 147" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "del_h_vap = 38.56 * 10**3 ; \t\t\t#[J/mol] , From Table \n", + "Tb = 78.2 + 273. \t\t\t#[K] ,From table\n", + "\n", + "# Calculations\n", + "del_S = - del_h_vap / Tb * 10**-3 ;\n", + "\n", + "# Results\n", + "print \"Change in entropy = %.4f kJ/mol K\"%(del_S);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in entropy = -0.1098 kJ/mol K\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.5 Page No : 149" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "P_1 = 300. * 10**3 \t\t#[N/m**2]\n", + "T_1 = 700. \t\t \t# [*C]\n", + "V_bar_1 = 20. ; \t\t\t #[m/s]\n", + "P_2 = 200. * 10**3 ; \t\t\t# [N/m**2]\n", + "h_cap_1 = 3927.1 * 10**3 ; \t\t# [J/kg] , From table\n", + "S_cap_1 = 8.8319 \t\t\t # [kJ/kgK] , From table\n", + "\n", + "# Calculations\n", + "S_cap_2 = S_cap_1 \t\t\t# Reverssible adiabatic process \n", + "T2 = 623. \t\t\t# [*C] ,From table by interpolation\n", + "h_cap_2 = 3754.7 * 10**3\t\t# [J/kgK] ,From table by interpolation\n", + "V_bar_2 = math.sqrt(2 * (h_cap_1 - h_cap_2) + V_bar_1**2) ; \n", + "\n", + "# Results\n", + "print 'The final temperature is %g C and the exit velocity is %.1f m/s'%(T2,V_bar_2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The final temperature is 623 C and the exit velocity is 587.5 m/s\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.6 page no : 150" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "m1 = 10 # kg/s\n", + "m2 = 1.95 # kg/s\n", + "s1 = 6.14 # kJ / kg K\n", + "s2 = .2945 # kJ / kg K\n", + "s3 = 5.6140 # kJ / kg K\n", + "\n", + "# Calculations\n", + "m3 = m1 + m2\n", + "dSdT = (m3 * s3) - (m1 *s1) + (m2*s2)\n", + "\n", + "#results\n", + "print \"dS/dTuniv = %.2f kW/k\"%dSdT\n", + "\n", + "# note : answer in book is wrong. " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "dS/dTuniv = 6.26 kW/k\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.7 Page No : 153" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "V_1 = 0.5 ; \t\t\t#[m**3]\n", + "P_1 = 150. ; \t\t\t#[kPa]\n", + "T_1 = 20. + 273.\t\t#[K]\n", + "P_2 = 400. ; \t\t\t# [kPa]\n", + "Cp = 2.5 * 8.314 ;\n", + "\n", + "\n", + "# Calculations and Results\n", + "Q = V_1 * (P_1 - P_2)\n", + "print \"a)Heat transferd = %g kJ\"%(Q);\n", + "del_S_sys = (P_1 * V_1) / T_1 * -math.log(P_2 / P_1) ;\n", + "print 'b)Entropy change of system = %.2f kJ/K '%(del_S_sys);\n", + "Q_surr = - Q ;\n", + "del_S_surr = Q_surr / T_1 ;\n", + "print ' Entropy change of surrounding = %.2f kJ/K '%(del_S_surr) ; \n", + "del_S_univ = del_S_sys + del_S_surr ;\n", + "print ' Entropy change of universe =%.2f kJ/K '%(del_S_univ) ;\n", + "\n", + "print \"c)Since entropy of the universe increases , the process is irreverssible .\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)Heat transferd = -125 kJ\n", + "b)Entropy change of system = -0.25 kJ/K \n", + " Entropy change of surrounding = 0.43 kJ/K \n", + " Entropy change of universe =0.18 kJ/K \n", + "c)Since entropy of the universe increases , the process is irreverssible .\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.8 Page No : 154" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "A = 3.355 \t\t\t# from table\n", + "B = 0.575 * 10**-3 ; \t\t\t# from table\n", + "D = -0.016 * 10**5 ; \t\t\t# from table\n", + "R = 8.314 ;\n", + "P1 = 1. \t\t\t#[bar]\n", + "P2 = 0.5 ; \t\t\t #[bar]\n", + "\n", + "# Calculations\n", + "def f(T):\n", + " return R * (A * math.log(T) + B * T + D / (2 * T**2))\n", + "\n", + "S1 = f(373.) - f(298.) ;\n", + "S2 = R * math.log(P1 / P2) ; \n", + "del_S = S1 - S2 ; \n", + "\n", + "# Results\n", + "print 'Entropy change = %.2f J/mol K'%(del_S);\n", + "\n", + "# Note : Answer may be different because of rouding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Entropy change = 0.88 J/mol K\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.9 Page No : 155" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Variables\n", + "P = 1. \t\t\t#[bar]\n", + "p_O2 = 0.5 ; \t\t\t#[bar]\n", + "p_N2 = 0.5 ; \t\t\t# [bar]\n", + "n_O2 = 1. \t\t\t#[mol]\n", + "n_N2 = 1. \t\t\t#[mol]\n", + "R = 8.314 \t\t\t# J/mol K\n", + "\n", + "# Calculations\n", + "del_S_1_O2 = -n_O2 * R * math.log(p_O2 / P) ;\n", + "del_S_1_N2 = -n_N2 * R * math.log(p_N2 / P) ; \n", + "del_S_2 = 0.\n", + "del_S = del_S_2 + del_S_1_O2 + del_S_1_N2 ;\n", + "\n", + "# Results\n", + "print \" Entropy of mixing = %.2f J/K\"%(del_S);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Entropy of mixing = 11.53 J/K\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.11 Page No : 157" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Variables\n", + "P_1 = 10. ; \t\t\t#[bar]\n", + "T_1 = 298. ; \t\t\t# [K]\n", + "P_2 = 1. ; \t\t\t#[bar]\n", + "T_2 = 298. ; \t\t\t# [K]\n", + "P_3 = 1. ; \t\t\t#[bar]\n", + "R = 8.314 ; \t\t\t# [J/mol K]\n", + "n = 4. ; \t\t\t#[mol]\n", + "X = 0.01 ;\n", + "\n", + "# Calculations\n", + "del_S_sys = - R * math.log(P_2 / P_1);\n", + "del_S_surr = - R * (1 - P_2 / P_1) ;\n", + "del_s_univ_1 = del_S_sys + del_S_surr ; \n", + "Del_S_univ_1 = n * del_s_univ_1 ;\n", + "\n", + "Del_S_univ_2 = 0 ;\n", + "n_3 = n * P_3 / P_1 ;\n", + "\n", + "n_out = n - n_3 ;\n", + "del_S_sys_3 = - n_out * R * math.log(X) ;\n", + "Del_S_univ_3 = del_S_sys_3\n", + "Del_S_univ = Del_S_univ_1 + Del_S_univ_2 + Del_S_univ_3 ;\n", + "\n", + "# Results\n", + "print \"Total entropy change of universe = %.2f J/K \"%(Del_S_univ) ;\n", + "print \"No matter how slow the leak , the driving force for the expansion is finite . \\\n", + "So the process canot be reverssible .\"\n", + "\n", + "# Note : answer is different becuase of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total entropy change of universe = 184.48 J/K \n", + "No matter how slow the leak , the driving force for the expansion is finite . So the process canot be reverssible .\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.12 Page No : 162" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "n_dot = 250. \t\t\t# [mol/s]\n", + "P_1 = 125. * 10**5 ; \t\t\t# [N/m**2]\n", + "V_cap_1 = 5. * 10**-4 \t\t\t# [m**3/mol]\n", + "P_2 = 8 * 10.**5 ; \t\t \t# [N/m**2]\n", + "\n", + "# Calculations\n", + "X = 3 * P_1**0.6667 * V_cap_1 * ( P_2**(1./3) - P_1**(1./3)) ;\n", + "W_dot_s = n_dot * X * 10**-6 \n", + "\n", + "# Results\n", + "print 'Power generated = %.1f MW'%(W_dot_s) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power generated = -2.8 MW\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.13 Page No : 163" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "Ws_real = -2.1 ; \t\t\t#[MW]\n", + "Ws_rev = -2.8 ; \t\t\t# [MW]\n", + "\n", + "# Calculations\n", + "n_tur = Ws_real / Ws_rev ;\n", + "\n", + "# Results\n", + "print \"Isentropic efficiency of turbine = %.2f %%\"%( n_tur * 100);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Isentropic efficiency of turbine = 75.00 %\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.14 Page No : 166" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P_1 = 10. * 10**6 ; \t\t\t# [N/m**2]\n", + "T_1 = 600. + 273 ; \t\t\t #[K]\n", + "T_H = T_1 ;\n", + "T_C = 100. + 273 ; \t\t\t #[K]\n", + "P_3 = 10. * 10**4 ; \t\t\t#[N/m**2]\n", + "P_4 = P_1 ;\n", + "h_cap_1 = 3625.3 ; \t\t\t# [kJ/kg],From steam table\n", + "S_cap_1 = 6.9028 ; \t\t\t#[kJ/kgK],From steam table\n", + "S_cap_2 = S_cap_1 ; \t\t\t#[kJ/kgK],From steam table\n", + "S_cap_v = 7.3593 ; \t\t\t#[kJ/kgK],From steam table\n", + "S_cap_l = 1.3025 ; \t\t\t#[kJ/kgK],From steam table\n", + "h_cap_l = 417.44 ;\t\t\t# [kJ/kg],From steam table\n", + "h_cap_v = 2675.5 ;\t\t\t# [kJ/kg],From steam table\n", + "V_cap_l = 10**-3 ; \t\t\t# [m**3/kg],From steam table\n", + "\n", + "# Calculations\n", + "X = (S_cap_2 - S_cap_l) / (S_cap_v - S_cap_l);\n", + "h_cap_2 = (1 - X) * h_cap_l + X * h_cap_v ;\n", + "W_cap_s = h_cap_2 - h_cap_1 ;\n", + "h_cap_3 = h_cap_l ;\n", + "\n", + "W_cap_c = V_cap_l * (P_4 - P_3) * 10**-3 ;\n", + "h_cap_4 = h_cap_3 + W_cap_c ;\n", + "W_net = W_cap_s + W_cap_c ; \t\t\t# [kJ/kg]\n", + "n_turb = ( -W_cap_s - W_cap_c) / (h_cap_1 - h_cap_4) ;\n", + "\n", + "# Results\n", + "print \"Efficiency of the Rankine cycle = %.1f %% \"%(n_turb * 100 );\n", + "n_carnot = 1 - T_C / T_H ;\n", + "print \"Efficiency of the Carnot cycle = %.1f %%\"%(n_carnot * 100);\n", + "print \"The Rankine efficiecy is lower than Carnot efficiency .\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Efficiency of the Rankine cycle = 34.7 % \n", + "Efficiency of the Carnot cycle = 57.3 %\n", + "The Rankine efficiecy is lower than Carnot efficiency .\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.15 Page No : 167" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "n_turb = 0.85 ;\n", + "n_comp = 0.85 ;\n", + "W_cap_s_rev = -1120. ; \t\t\t#[kJ/kg]\n", + "h_cap_1 = 3625.3 ; \t\t\t#[kJ/kg]\n", + "h_cap_l = 417.44 ; \t \t\t#[kJ/kg]\n", + "W_cap_c_rev = 9.9 ; \t\t\t#[kJ/kg]\n", + "\n", + "# Calculations\n", + "W_cap_s_act = n_turb * W_cap_s_rev ;\n", + "h_cap_2_act = W_cap_s_act + h_cap_1 ;\n", + "h_cap_3 = h_cap_l ;\n", + "W_cap_c_act = W_cap_c_rev / n_comp ;\n", + "h_cap_4_act = W_cap_c_act + h_cap_3 ;\n", + "W_cap_net = W_cap_s_act + W_cap_c_act ;\n", + "n_rank_act = (-W_cap_s_act - W_cap_c_act) / (h_cap_1 - h_cap_4_act) ;\n", + "\n", + "# Results\n", + "print \"W_cap_net = %.1f kJ/kg\"%(W_cap_net) ;\n", + "print \"Efficiency of Rankine cycle = %.1f %%\"%(n_rank_act*100) \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "W_cap_net = -940.4 kJ/kg\n", + "Efficiency of Rankine cycle = 29.4 %\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.16 Page No : 171" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P_1 = 120. * 10**3 ; \t\t\t#[N]\n", + "P_2 = 900. * 10**3 ; \t\t\t#[N]\n", + "h_4 = 25.486 \t\t\t#[kJ/mol], From table\n", + "h_1 = h_4 ;\n", + "h_2 = 39.295 ; \t\t \t#[kJ/mol], From table\n", + "S_2 = 177.89 ; \t\t \t#[kJ/molK], From table\n", + "S_3 = S_2 ; \t\t\t #[kJ/mol]\n", + "h_3 = 43.578 \t\t\t#[kJ/mol] , Enthalpy corresponding to S3 value which equales to S2\n", + "Q_dot_c_des = 10. \t \t\t#[kW]\n", + "\n", + "# Calculations\n", + "q_c = h_2 - h_1 ;\n", + "Q_dot_c = h_2 - h_1 ;\n", + "W_dot_c = h_3 - h_2 ;\n", + "COP = Q_dot_c / W_dot_c ;\n", + "n_dot = Q_dot_c_des / q_c ;\n", + "\n", + "# Results\n", + "print \"COP of the refrigerator is = %.2f \\nMass flow rate needed = %.3f mol/s\"%(COP,n_dot)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "COP of the refrigerator is = 3.22 \n", + "Mass flow rate needed = 0.724 mol/s\n" + ] + } + ], + "prompt_number": 11 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch4.ipynb b/Engineering_&_Chemical_Thermodynamics/ch4.ipynb new file mode 100755 index 00000000..dd2a21ec --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch4.ipynb @@ -0,0 +1,434 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4 : Equation of states and intermolecular forces" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.1 Page No : 220" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "from numpy import *\n", + "\n", + "# Variables\n", + "H2O = 1. ;\n", + "NH3 = 2. ;\n", + "CH4 = 3. ;\n", + "CH3Cl = 4. ;\n", + "CCl4 = 5. ;\n", + "\n", + "M_11 = 1.85\n", + "alp_12 = 14.80\n", + "I_13 = 12.62 ;\n", + "M_12 = 1.47\n", + "alp_22 = 22.20\n", + "I_23 = 10.07 ;\n", + "M_31 = 0.00\n", + "alp_32 = 26.00\n", + "I_33 = 12.61 ;\n", + "M_41 = 1.87\n", + "alp_42 = 45.30\n", + "I_43 = 11.26 ; \n", + "M_51 = 0.00\n", + "alp_52 = 105.0\n", + "I_53 = 11.47 ;\n", + "\n", + "# Calculations\n", + "k = 1.38 * 10**-16 ; \t\t\t#[ J/K]\n", + "T = 298. \t\t\t#[K]\n", + "A =[[M_11 , alp_12 , I_13, 0,0,0,0],[M_12 , alp_22 , I_23,0,0,0,0 ],[M_31 , alp_32 , I_33,0,0,0,0],[M_41 , alp_42 , I_43,0,0,0,0],[M_51 , alp_52 , I_53,0,0,0,0 ]]\n", + "print A\n", + "\n", + "print (\" Molecule M alp*10**25 I C*10**60 Cd_d Cind Cdis\") ;\n", + "for i in range(5):\n", + " A[i][4] = ceil( 2./3 * A[i][0]**4 / (k * T) * 10**-12) ;\n", + " A[i][5] = ceil(2 * A[i][1] * A[i][0]**2 * 10**-1) ; \n", + " A[i][6] = ceil(3./4 * A[i][1]**2 * A[i][2] * 1.6 * 10**-2) ;\n", + " A[i][3] = ceil(A[i][4] + A[i][5] + A[i][6]) ; \t\t\t# ....E4.1D\n", + "\n", + "\n", + "print \" H2O %8.2f %5.1f %5.2f %7d %7d %5d %d \"%(A[0][0],A[0][1],A[0][2],A[0][3],A[0][4],A[0][5],A[0][6]) ;\n", + "print \" NH3 %8.2f %5.1f %5.2f %7d %7d %5d %d \"%(A[1][0],A[1][1],A[1][2],A[1][3],A[1][4],A[1][5],A[1][6]) ;\n", + "print \" CH4 %8.2f %5.1f %5.2f %7d %7d %5d %d \"%(A[2][0],A[2][1],A[2][2],A[2][3],A[2][4],A[2][5],A[2][6]) ;\n", + "print \" CH3Cl %8.2f %5.1f %5.2f %7d %7d %5d %d \"%(A[3][0],A[3][1],A[3][2],A[3][3],A[3][4],A[3][5],A[3][6]) ;\n", + "print \" CCl4 %8.2f %5.1f %5.2f %7d %7d %5d %d \"%(A[4][0],A[4][1],A[4][2],A[4][3],A[4][4],A[4][5],A[4][6]) ;\n", + "\n", + "print \"Even though it is non polar , CCl4 exhibit the largest intermolecular forces . It is due to the large polarizability accociated with the four Cl atom in CCl4 .\"\n", + "\n", + "# Note : Answer are slightly different because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "[[1.85, 14.8, 12.62, 0, 0, 0, 0], [1.47, 22.2, 10.07, 0, 0, 0, 0], [0.0, 26.0, 12.61, 0, 0, 0, 0], [1.87, 45.3, 11.26, 0, 0, 0, 0], [0.0, 105.0, 11.47, 0, 0, 0, 0]]\n", + " Molecule M alp*10**25 I C*10**60 Cd_d Cind Cdis\n", + " H2O 1.85 14.8 12.62 235 190 11 34 \n", + " NH3 1.47 22.2 10.07 146 76 10 60 \n", + " CH4 0.00 26.0 12.61 103 0 0 103 \n", + " CH3Cl 1.87 45.3 11.26 509 199 32 278 \n", + " CCl4 0.00 105.0 11.47 1518 0 0 1518 \n", + "Even though it is non polar , CCl4 exhibit the largest intermolecular forces . It is due to the large polarizability accociated with the four Cl atom in CCl4 .\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.2 Page No : 222" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "C6_Ar_HCl_tab = 76 * 10**-60 ;\t\t\t#From table E4.2\n", + "C6_Ar_Ar_tab = 52 * 10**-60 ;\t\t\t#From table E4.2\n", + "C6_HCl_HCl_tab = 134 * 10**-60 ;\t\t\t#From table E4.2\n", + "\n", + "# Calculations\n", + "C6_Ar_HCl_gmean = math.sqrt(C6_Ar_Ar_tab * C6_HCl_HCl_tab) ; \t\t\t#[erg/cm**6]\n", + "x = (C6_Ar_HCl_gmean - C6_Ar_HCl_tab) / C6_Ar_HCl_tab * 100 ;\n", + "\n", + "# Results\n", + "print \"The geometric mean is different from that in table E4.2 by %d %%\"%(x)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The geometric mean is different from that in table E4.2 by 9 %\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.4 Page No : 230" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "Psat_wat_25 = 3.169 * 10**3 ;\t\t\t# From steam table\n", + "Psat_wat_50 = 1.235 * 10**4 ;\t\t\t# From steam table\n", + "Psat_wat_100 = 1.014 * 10**5 ;\t\t\t# From steam table\n", + "A =11.9673 ;\n", + "B = 3626.55 ;\n", + "C = -34.29 ;\n", + "T1 = 25 ; \t\t\t#[*C]\n", + "T2 = 50 ; \t\t\t#[*C]\n", + "T3 = 100 ; \t\t\t#[*C]\n", + "\n", + "# Calculations\n", + "M = [[T1, Psat_wat_25 , 0],[T2 , Psat_wat_50, 0],[T3 , Psat_wat_100, 0]]\n", + "#M = array(M)\n", + "\n", + "print (\" T(*C) Water(Pa) Methanol(Pa)\")\n", + "for i in range(3):\n", + " M[i][2] = math.exp(A - B / (M[i][0] + 273 + C)) * 10**5 ;\n", + " print \"%5d %7.3e %7.2e\"%(M[i][0],M[i][1],M[i][2])\n", + " #t.append(math.exp(A - B / (M[i][0] + 273 + C)) * 10**5)\n", + "#M.append(t)\n", + "\n", + "# Results\n", + "\n", + "print \"1) Water can form two hydrogen bonds . While CH4Oh can form only one . Thus at\\\n", + " a given temperature, water has stronger attractive forces in the liquid and a lower vapour pressure .\"\n", + "print \"2) Since the Maxwell-Boltzmann distribution depends exponentially on temperature,\\\n", + " Psat also increses exponentially with temperature .\"\n", + "\n", + "# Note: Answers may vary because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " T(*C) Water(Pa) Methanol(Pa)\n", + " 25 3.169e+03 1.68e+04\n", + " 50 1.235e+04 5.52e+04\n", + " 100 1.014e+05 3.53e+05\n", + "1) Water can form two hydrogen bonds . While CH4Oh can form only one . Thus at a given temperature, water has stronger attractive forces in the liquid and a lower vapour pressure .\n", + "2) Since the Maxwell-Boltzmann distribution depends exponentially on temperature, Psat also increses exponentially with temperature .\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.6 Page No : 236" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "Pc_B = 49.1 ; \t\t\t# [bar] , From table\n", + "Pc_T = 42.0 ; \t\t\t# [bar] , From table\n", + "Pc_C = 40.4 ; \t\t\t# [bar] , From table\n", + "Tc_B = 562 ; \t\t\t# [K] , From table\n", + "Tc_T = 594 ; \t\t\t# [K] , From table \n", + "Tc_C = 553 ; \t\t\t# [K] , From table\n", + "R = 8.314 ;\n", + "\n", + "# Calculations\n", + "A = [[Pc_B , Tc_B, 0,0],[Pc_T , Tc_T,0,0],[Pc_C , Tc_C,0,0]]\n", + "\n", + "# Results\n", + "print \" P_c T_c a b \"\n", + "for i in range(3):\n", + " A[i][2] = 27./64 * (R * A[i][1])**2 /( A[i][0] * 10**5) ;\n", + " A[i][3] = R * A[i][1] / (8 * A[i][0] * 10**5) ;\n", + " print \" %5.1f %5d %7.2f %7.2e\"%(A[i][0],A[i][1],A[i][2],A[i][3])\n", + "\n", + "print \"The attractive interactions of all three compounds are dominated by\\\n", + " print ersion interactions ( parameter a) , while size affects parameter b .\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " P_c T_c a b \n", + " 49.1 562 1.88 1.19e-04\n", + " 42.0 594 2.45 1.47e-04\n", + " 40.4 553 2.21 1.42e-04\n", + "The attractive interactions of all three compounds are dominated by print ersion interactions ( parameter a) , while size affects parameter b .\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.11 Page No : 246" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "B = 0.0486 * 10**-3 ;\n", + "T1 = 20 + 273 ; \t\t\t#[K]\n", + "T2 = 500 + 273 ; \t\t\t#[K]\n", + "v1 = 7.11 ; \t\t\t# [cm**3/mol]\n", + "\n", + "# Calculations\n", + "v2 = v1 * math.exp( B * (T2 - T1)) ;\n", + "\n", + "# Results\n", + "print \" Molar volume of solid state 2 = %.2f cm**3/mol\"%( v2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Molar volume of solid state 2 = 7.28 cm**3/mol\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.12 Page No : 248" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P_c = 37.9 * 10**5 ;\t\t\t#[N/m**2] , From compressibility chart\n", + "T_c = 425.2 \t\t\t# [K , From compressibility chart\n", + "P = 50. * 10**5 ; \t \t\t#N/m**2]\n", + "T = 333.2 ;\t\t\t #[K]\n", + "R = 8.314 ;\n", + "z_0 = 0.2148 ; \t\t\t\n", + "z_1 = -0.0855 ; \t\t\n", + "w = 0.199 ;\n", + "m = 10. ;\n", + "MW = 0.05812 ;\n", + "\n", + "# Calculations\n", + "a = (0.42748 * R**2 * T_c**2.5) / P_c ;\n", + "b = 0.08664 * R * T_c / P_c ;\n", + "A = P * T**(1./2) ;\n", + "B = -R * T**(3./2) ;\n", + "C = (a - P * T**(1./2) * b**2 - R * T**(3./2)*b) ;\n", + "D = - a * b;\n", + "\n", + "#mycoeff = [ D , C , B , A] ;\n", + "mycoeff = [ A,B,C,D]\n", + "#p = poly1d(mycoeff , \"v\" , \"coeff\" ); \n", + "M = roots(mycoeff);\n", + "\n", + "# Results\n", + "for i in range(3):\n", + " ans = sign(M[i])\n", + " if ans == 1:\n", + " V = m / MW *(M[i]) ;\n", + " #print \"Using Redlich Kwong equation the volume is = %.3f m**3\"%(V)\n", + "\n", + "z = z_0 + w * z_1 ; \n", + "v = z * R * T / P ;\n", + "V = m / MW * v ;\n", + "print \"Using compressibility chart the volume is = %.3f m**3\"%(V)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Using compressibility chart the volume is = 0.019 m**3\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.13 Page No : 253" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "T = 100. + 273 ; \t\t\t#[K]\n", + "P = 70. * 10**5 ; \t\t\t#[N/m**2]\n", + "P_c = 42.2 * 10 ** 5 ;\n", + "T_c = 370. ; \t\t\t#[K]\n", + "w = 0.153 \t \t\t# Interpolating from table C.1 and C.2\n", + "z_0 = 0.2822 ;\t\t \t# Interpolating from table C.1 and C.2\n", + "z_1 = - 0.0670 ;\t\t\t# Interpolating from table C.1 and C.2\n", + "m = 20. * 10**3 ;\t\t\t#[g]\n", + "MW = 44. ; \t\t \t#[g/mol]\n", + "R = 8.314 ;\n", + "\n", + "# Calculations and Results\n", + "P_r = P / P_c ;\n", + "T_r = T / T_c ;\n", + "z = z_0 + w * z_1 ;\n", + "V = m / MW *z * R * T / P ;\n", + "\n", + "print \"1) Volume = %.4f m**3 \"%( V )\n", + "\n", + "\n", + "T = 295. ;\t\t\t#[K]\n", + "n = 50. ; \t\t\t# [mol]\n", + "a = 0.42748 * R**2 * T_c**2.5 / P_c ;\n", + "b = 0.08664 * R * T_c / P_c ;\n", + "v = 0.1 ;\n", + "P = R * T / (v - b) - a / (T**0.5 * v * (v + b)) ;\n", + "x = P * n * 10**-6 ;\n", + "\n", + "print \"2) Pressure = %.1f MPa \"%( x )\n", + "\n", + "y1 = 0.4 ;\n", + "y2 = 1 - y1 ;\n", + "n = 50. ;\n", + "P_c = 48.7 * 10**5 ;\t\t\t#[N/m**2]\n", + "T_c = 305.5 ; \t\t\t#[K]\n", + "a1 = a ;\n", + "b1 = b ;\n", + "a2 = 0.42748 * R**2 * T_c**2.5 / P_c ;\n", + "b2 = 0.08664 * R * T_c / P_c ;\n", + "\n", + "a_mix = y1**2 * a1 + 2 * y1 * y2 * math.sqrt(a1 * a2) + y2**2 * a2 ;\n", + "b_mix = y1 * b1 + y2 * b2 ;\n", + "P = R * T / (v - b_mix) - a_mix /(T**0.5 * v * (v + b_mix));\n", + "x = P * n * 10**-6 ;\n", + "\n", + "print \"3) Pressure = %.2f MPa \"%( x )\n", + "\n", + "# Note : Answers are slightly different because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1) Volume = 0.0548 m**3 \n", + "2) Pressure = 1.2 MPa \n", + "3) Pressure = 1.22 MPa \n" + ] + } + ], + "prompt_number": 4 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch5.ipynb b/Engineering_&_Chemical_Thermodynamics/ch5.ipynb new file mode 100755 index 00000000..be3b6851 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch5.ipynb @@ -0,0 +1,313 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5 : The thermodynamic web" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.2 Page No : 278" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "T_c = 370. ; \t\t\t#[K]\n", + "P_c = 41.58 * 10**5 ;\t\t\t#[N/m**2]\n", + "R = 8.314 ;\n", + "V1 = 0.001 ;\t\t\t#[m**3]\n", + "V2 = 0.04 ; \t\t\t#[m**3]\n", + "q = 10400. ; \t\t\t#[J]\n", + "\n", + "# Calculations\n", + "a = 27./64 * (R **2)*(T_c)**2 / P_c ;\n", + "del_U = -0.96 * (1 / V2 - 1 / V1) ; \n", + "W = round(del_U - q,-1) ;\n", + "\n", + "# Results\n", + "print \" Work done for the expansion = %.f J/mol\"%(W) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Work done for the expansion = -9460 J/mol\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.4 Page No : 282" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.optimize import fsolve \n", + "from scipy.integrate import quad\n", + "import math \n", + "\n", + "# Variables\n", + "P_1 = 9.43 * 10**5 ; \t\t\t#[N/m**2]\n", + "P_2 = 18.9 * 10**5 ; \t\t\t#[N/m**2]\n", + "T_1 = 80 + 273 ; \t\t\t#[K]\n", + "T_2 = 120 + 273 ; \t\t\t#[K]\n", + "A = 1.935 ;\n", + "B = 36.915 * 10**-3 ;\n", + "C = -11.402 * 10**-6 ;\n", + "T_c = 425.2 ; \t\t\t# [K]\n", + "P_c = 37.9 * 10**5 ;\t\t\t#[N/m**2]\n", + "R = 8.314 ;\n", + "\n", + "\n", + "del_h_1 = 1368 ; \t\t\t#[J/mol]\n", + "del_h_3 = -2542 ; \t\t\t#[J/mol]\n", + "Ws = 2100. ; \t\t\t#[J/mol]\n", + "\n", + "a = 0.42748 * R**2 * T_c**2.5 / P_c ;\n", + "b = 0.08664 * R * T_c / P_c ;\n", + " \n", + "\n", + "def f1(v):\n", + " return R * T_1 / (v - b) - a / (math.sqrt(T_1) * v *(v + b)) - P_1;\n", + "\n", + "za= fsolve( f1,0.001)\n", + "\n", + "def f2(v):\n", + " return R * T_2 / (v - b) - a / (math.sqrt(T_2) * v *(v + b)) - P_2;\n", + "\n", + "zb= fsolve( f2,0.001)\n", + "v1 = zb\n", + "v2 = zb\n", + "def f3(v):\n", + " T = 353.15\n", + " return b*R*T/(v-b) + a/T**0.5 * (3./(2*b) * math.log(v/(v+b)) - 1./(v+b))\n", + " \n", + "delta_h1 = quad(f3,za,zb)\n", + "\n", + " \n", + "def f(T):\n", + " return R * ( A * T + B/2 * T**2 + C/3 * T**3) ;\n", + "\n", + "del_h_2 = f(T_2) - f(T_1) ;\n", + "del_h_total = del_h_1 + del_h_2 + del_h_3 ;\n", + "q = del_h_total - Ws ;\n", + "\n", + "# Results\n", + "print \"v1 = %.2e m**3/mol, v2 = %.2e m**3/mol\"%(za,zb ) ;\n", + "print \"The heat input = %.f J/mol\"%(q);\n", + "\n", + "# Note : answer is slightly different because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "v1 = 2.60e-03 m**3/mol, v2 = 1.27e-03 m**3/mol\n", + "The heat input = 1421 J/mol\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.6 Page No : 289" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from sympy import log\n", + "from sympy.solvers import solve\n", + "from sympy import Symbol\n", + "\n", + "#Variables\n", + "A = 2.104 ; \n", + "B = 2.98 * 10**-3 ;\n", + "R = 8.314 ;\n", + "Beta = 3.5 * 10**-5 ;\n", + "v = 7.1 * 10**-6 # m**3/mol\n", + "P2 = 10000*10**5 ; \t\t#[N/m**2]\n", + "P1 =1 ;\t\t\t #[N/m**2] \n", + "\n", + "#Calculations\n", + "T2 = Symbol('T2')\n", + "q = solve(A*R*log(T2/1000)+B*R*(T2-1000)-(Beta*v*(P2-P1)),T2)\n", + "\n", + "#Result \n", + "print \"Heat input = \",q,\"J/mol\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat input = [1005.88624122037] J/mol\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.7 page no : 296" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.integrate import quad\n", + "\n", + "# Variables ( same as example 5.4)\n", + "R = 8.314\n", + "Tc = 425.2 # K \n", + "Pc = 37.9 # bar \n", + "w = 0.199\n", + "T1 = 353.15 # K\n", + "Tc = 425.2 # K\n", + "P1 = 9.47 # bar\n", + "Pc = 38. # bar\n", + "T2 = 393.15 # K\n", + "P2 = 18.9 # bar\n", + "R = 8.314\n", + "\n", + "# calculations\n", + "T1r = T1/Tc\n", + "P1r = P1/Pc\n", + "T2r = T2/Tc\n", + "P2r = P2/Pc\n", + "\n", + "def f(T):\n", + " return 1.935 + 36.915 * 10**-3 * T - 11.402 * 10**-6 * T**2\n", + "\n", + "cpDt = R * quad(f,353,393)[0]\n", + "h2h1 = .536 * R*Tc +cpDt - .969*R*Tc\n", + "\n", + "# Results\n", + "print \"the heat capacity = %.f J/mol\"%cpDt\n", + "print \"h2 - h1 = %.f J/mol\"%h2h1\n", + "\n", + "# Note : answer is slightly differnt becuase of rounding off error. and this problem is same as 5.4" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the heat capacity = 4695 J/mol\n", + "h2 - h1 = 3164 J/mol\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.10 Page No : 302" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from scipy.integrate import quad\n", + "\n", + "# Variables\n", + "T_c = 126.2; \t \t\t#[K] , From appendix A.1\n", + "P_c = 33.8 * 10**5 ; \t\t\t#[N/m**2] , From appendix A.1\n", + "w = 0.039 ; \t\t \t# From appendix A.1\n", + "enth_dep_1 = -2.81 ; \t\t\t# From table C.1 Appendix C\n", + "A = 3.28 ;\t\t\t # From Appendix A.2\n", + "B = 0.593 * 10**-3 ;\t\t\t# From Appendix A.2\n", + "del_h_dep_l = -5.1 ; \n", + "del_h_dep_v = -0.1 ;\n", + "T1 = 151. \t\t\t#[K]\n", + "P1 = 100. * 10**5 ; \t \t\t#[N/m**2]\n", + "P2 = 1. * 10**5 ; \t\t \t#[N/m**2]\n", + "T2_r = 0.61 ; \t\t\t # From figure 5.4\n", + "\n", + "# Calculations\n", + "T1_r = T1 / T_c ;\n", + "P1_r = round(P1 / P_c) ;\n", + "P2_r = P2 / P_c ;\n", + "T2 = round(T2_r * T_c) ; \t\t\t#[K]\n", + "\n", + "def f(T):\n", + " #return A * T + B/2 * T**2 \n", + " return A + B*T\n", + "\n", + "ans = quad(f,151,T2)[0]\n", + "\n", + "x = 1. / T_c *ans\n", + "y = enth_dep_1 - x ;\n", + "\n", + "# Results\n", + "X = ( y - del_h_dep_l) / (del_h_dep_v - del_h_dep_l);\n", + "print \"Quality = %.2f\"%(X) ;\n", + "\n", + "# Note: answer is different because of quad is giving different value -1.9 instead of -1.28. " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Quality = 0.85\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch6.ipynb b/Engineering_&_Chemical_Thermodynamics/ch6.ipynb new file mode 100755 index 00000000..f7f5fdcf --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch6.ipynb @@ -0,0 +1,519 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6 : Multi component Phase Equillibrium" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.3 Page No : 330" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "from numpy import *\n", + "from matplotlib.pyplot import *\n", + "\n", + "\n", + "# Variables\n", + "slop = -4222.1 ;\n", + "R = 8.314 ;\n", + "\n", + "# Calculations\n", + "del_h_vap = -R * slop * 10**-3 ;\n", + "%pylab inline\n", + "\n", + "def f(x):\n", + " return -4222.1 * x + 17.556\n", + "\n", + "xdata = linspace(0.0032,0.004,8) ;\n", + "ydata = f(xdata) ;\n", + "plot(xdata,ydata) ;\n", + "xlabel(\"1/T[k**-1]\")\n", + "ylabel(\"Ln(Psat[kPa])\")\n", + "suptitle(\"least-squares linear fit\")\n", + "show()\n", + "\n", + "# Results\n", + "print \"Enthalpy of vapourisation of GaCH3)3 = %.1f kJ/mol\"%(del_h_vap) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['draw_if_interactive', 'new_figure_manager']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEhCAYAAACHjCx5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlclOX+//HXgCKaaJaCC6ZmiSwDDC6VpeCxck8rK800\nUdM2LU9ldrKyXEozPdqqp1I7ZYvY4pZLJ9E8kQuSmpb9ShRRW7RSQUiW6/fH/ZUjCcIowz3A+/l4\n8Dgwc889b+g0n677uj/X5TDGGERERNzgY3cAERGpeFQ8RETEbSoeIiLiNhUPERFxm4qHiIi4TcVD\nRETcpuIhZap27dpler4FCxZw6NChMj2nHYYMGcLixYsBuOuuu/j222/L9f1nzpxJSEgIgwYNYunS\npUydOhWAjz/+uNyzSOVQze4AUrk4HI4yPd/8+fOJiIigUaNGZXped51qhzrX38/hcBS89l//+leZ\n5SpKXl4evr6+hR6bO3cua9eupXHjxgD07t0bsIpH7969CQ0N9WgmqXw08hCPeeaZZ4iMjCQ0NJTH\nHnus4PEbbriBtm3b0qpVK2bPng1Abm4ugwYNwul0EhkZyQsvvMDixYvZsmULAwcOJCYmhuzs7ELn\nT09Pp1OnTrhcLpxOJxs2bABgzpw5tGzZkg4dOnDXXXcxatQooPB//cP/RkkZGRl07tyZNm3a0Lp1\naxYtWgTA3r17CQkJYciQIURHR5Oenl7k73Ts2DF69OhBVFQUTqeT999//6x/l7i4OLZu3VqQYfz4\n8bhcLlwuV8Eo66effqJXr15ERUURHR3NunXrANi0aRNXXXUVUVFRtGnThl27dgFWkb3hhhvo2rUr\n119/faH3u/vuu9mzZw/dunXjn//8JwsWLGDUqFEkJSWxdOlSHnnkEVwuF3v27CnVP1cRAIxIGapd\nu7YxxphPPvnEjBgxwhhjTF5enunVq5dZs2aNMcaYo0ePGmOMOXHihAkNDTU///yz2bhxo+nevXvB\neTIyMowxxsTFxZnk5OQi32vatGlm6tSphV6TlpZmmjRpYv744w+Tm5trOnbsaEaNGmWMMWbIkCEm\nISHhjKy5ubkmMzPTGGPMr7/+apo3b27y8/NNamqq8fHxMVu2bDnr7/TBBx+Ye+65p+C8x48fPyPr\nkCFDzOLFi8/4nRwOh/n000+NMcaMHTvWPPXUU8YYY2688UazYcMGY4wx+/btMy1btiw4d35+vjHG\nmDVr1phevXoZY4yZN2+eCQ4ONseOHSvyb9W8eXNz5MgRY4wx8+fPN/fff/8ZuUTcoctW4hGrV69m\n9erVuFwuADIzM9m7dy8Azz77LMuWLcPX15eDBw/yww8/EBYWxg8//MDo0aPp1q0b3bt3LziXKWYF\nnSuvvJJhw4aRlZVF7969iYmJYfny5Vx77bXUrVsXgFtuuYXvv//+rFlzcnJ48MEH+fLLL6levTq/\n/PJLwQigWbNmtGnT5qy/U2xsLOPGjWPcuHH06NGDTp06lfrv5OfnR7du3QBo06YNq1atAuCzzz4j\nNTW14Lg///yT48ePc/jwYW677Tb27duHj49PodHY9ddfT0BAQKnf+5Ti/r4iZ6PiIR7zxBNPMHTo\n0EKPrV69mg0bNpCcnIyfnx+dO3cmNzeXCy+8kJSUFFatWsXrr79OQkICb775JvC/eYaNGzdy9913\nAzBx4kR69erF+vXrWb58OcOHD+fBBx+kVq1ahT4MT//ex8eH/Px8APLz8zl58iQAb731FseOHWPH\njh04HA5atGhBbm4uABdccEGJvxNAcnIyy5cv56mnnqJz5848+eSTpfobVa9evch8DoeDzZs3U61a\n4X9FR44cSc+ePbn33nvZt28fcXFxBc/VqlWrVO/5V2U9TyVVg+Y8xCO6du3KvHnzCv7L+Oeff+bw\n4cNkZ2dTr149/Pz8+H//7//x1VdfAfDbb79hjOGmm27imWeeYcuWLQDUrFmTzMxMAK644gpSUlJI\nSUmhV69epKenExgYyLBhwxg2bBhbtmzhyiuv5PPPP+fo0aPk5eWRkJBQ8OEYHBxMcnIyAMuXLycn\nJweA7OxsAgMDcTgcrF+/nn379rn1O/3000/UqlWLgQMH8tBDD7F58+bz/vtde+21vPbaawU/79y5\nsyBrw4YNAavonYvTC+rpf18Rd2jkIWXq1Ad179692bVrFzExMfj5+VGjRg3ee+89unXrxksvvURo\naCihoaFcddVVAOzfv58hQ4YUnOfZZ58FYNCgQcTHx1OnTh2+/PJL/P39C475z3/+w/Tp06levToB\nAQG8+eabBAcHM378eGJiYmjYsCEREREFH5Z33303PXr0YNWqVXTr1q1gwnzgwIF07dqVqKgo2rZt\nW+jOo9P/q/yvv5O/vz8LFy7khx9+4OGHH6ZatWpUq1aNl156ye2/16nvT/382muvMXz4cObMmYMx\n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\nTYSHhxMeHs6MGTNKzGhHzoyMDKZNm+bWJQE7coJ16So6OpoOHTrw+eefe0XG+fPn89hjjwHWh8jJ\nkyeJi4vD6XSWeh03O/8d+uCDDxgwYIBX5uzatSt16tShUaNGNG/enEceeYQLL7zQK3Ke/s/d6XSy\nZMkS8vLySE1NJTk5mf3799uW85NPPiE4OJjIyMhC5zpw4ADBwcFnfb/Tebx4lKZREDinJUomT55M\nWloaQ4YMYcyYMYWe27VrF+PGjSu4k8sbc7Zv356dO3eydetWHnjgAY4ePep1OSdMmMCYMWOoVauW\nW+cs75yNGzfmwIEDfP3117z88ssMGjSIP/74w/aM8fHxPPjggwDk5eXx5Zdf8uGHH7Jp0yZWrFjB\np59+WuK57Pp3aOPGjdSqVavUI87yzvn222+TlZXFoUOHSE1NZfr06aVqMC7vf+533303DRo0IDIy\nkrvvvpsOHTqUKkNZ5jx1TFZWFlOmTOHpp5926/VF8XjxCA4OLlRl9+/fX6giFnXMqWpamtcC3H77\n7SQlJRV6/Y033si///1vWrRo4bU5T2ndujUtW7bku+++87qcmzZtYuzYsbRo0YJZs2YxZcoUXnnl\nFa/L6efnR506dQBr+B4REVHi37O8M15yySV06tSJiy66iJo1a9KjRw++/vrrs2a0I+cp7733Hrff\nfnuJ+ezKuWHDBm688UZ8fX1p0KABV199dakuB5V3zurVq/Pyyy+zc+dOVq1axYkTJ2jdunW55jz1\n+I8//sjevXuJioqiRYsWpKen06ZNG37++ediX1OsEmdtzlNWVpZp1qyZSU9PNydPnjRt27Y1ycnJ\nhY5JSEgwffv2NcYYk5ycbCIjI0t87Z49ewpeP3v2bNOvXz9jjDG///67iYyMNB9++KFX50xLSzO5\nubnGGGP27t1rGjVqZA4fPux1OU83YcIE88ILL5SY0Y6cR44cKZh8Tk1NNY0bNza//vqrV2U8ePCg\niY6ONidOnDA5OTnm2muvNR999JHX/S2NMSYvL880adLEpKamlpjPrpzTpk0z8fHxxhhjMjIyTGho\nqNmyZYvX5Txx4oQ5ceKEMcaYdevWmSuuuKLEjJ7MebqiJsxzcnLM/v37TbNmzczJkyeLzefx4mGM\nMStWrDDh4eEmNDTUTJkyxRhjzGuvvWZee+21gmPuu+8+ExYWZlwuV6FfsqjXGmPMjTfeaCIjI01o\naKjp0aOHOXjwoDHGmIkTJ5oLLrjAREdHF3yV9CFiR84FCxaYiIgI43Q6TWRkZKk+ROzIeTp3ikd5\n50xISDDh4eHG6XSaiIgIk5CQ4HUZjTHm7bffNuHh4aZVq1bmwQcfLFVGO3KuXbvWXHXVVaXOZ0fO\nzMxMc8stt5hWrVqZyy67zEycONErc6amppqQkBATFRVlrr/+epOWlmZrztO1aNGioHgYY8zkyZNN\naGioCQ8PNytXrjxrNjUJioiI27QOiIiIuE3FQ0RE3KbiISIiblPxEBERt6l4iIiI21Q8RETEbSoe\nIiLiNhUPqfSGDh1KUFAQTqez0ONfffUVLVq0KNi3IiAggNatW+NyubjzzjtZsGABDRo0YMSIEQDM\nnz+fUaNGnXF+Ywzr1q0rtE9DUY/91alF9AICAgo9PnPmTJo1a1bke4l4CxUPqfTi4+NZuXLlGY9/\n+umnzJgxg5SUFFJSUmjbti0LFy4kJSWFBQsWADBgwICCxTWLWqguOzub+Ph4du7cyY4dOxgyZEix\nj/1Vnz59ilyLacyYMTzzzDPn+2uLeJRH9zAX8QYdO3Zk7969Zzz++eef8/DDDxd67K8LLhS3AMPy\n5cuZPHkyy5Yt45VXXqFjx474+Piwfv16/P39i3zsr9q3b19sZi38IN5OIw+pkg4fPkz16tXPuGRU\nmmWwP/roI6ZOncqnn35KrVq1uP/++xk2bBhDhgzhvvvuIzs7u8jH3FHa5bhF7KKRh1RJq1evpmvX\nrm69xhjD559/zpYtW1izZk3BznFvvvlmwdzGfffdV+xjIpWJRh5SJa1cuZJu3bq59RqHw0HLli3J\nyMhg9+7dhZ6LjY0lNja22Mfy8vIKJubd3ZVRxBtp5CFVjjGG7du3ExUV5fbrmjVrxvPPP89NN93E\nokWLSr3Lnq+vLykpKecSV8QraeQhld6AAQPo0KEDu3fvpmnTpjz//PPExMS4fR6Hw4HD4SAkJIR3\n3nmHW265pVTbnhZn7NixNG3alKysLJo2bao7rKRC0X4eUuVMnjyZyy+/nFtvvfWsxy1YsIAtW7bw\n4osvllOy/5k/fz7Jycm2vLdIaWjkIVXO448/XmLhAKhZsyaffvppQZNgeZk5cybPPfccdevWLdf3\nFXGHRh4iIuI2jTxERMRtKh4iIuI2FQ8REXGbioeIiLhNxUNERNz2/wGUYsEM9PytpQAAAABJRU5E\nrkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x3453bd0>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enthalpy of vapourisation of GaCH3)3 = 35.1 kJ/mol\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.5 pageno : 332\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# variables\n", + "MWni = 58.69 #g/mol\n", + "Psni = 8900 # kg/m**3 \n", + "Sni = 1.75 # J/m**2 surface tension of solid Ni\n", + "deltaHfus = -17.48 # kJ/mol\n", + "Tm = 1728 #K\n", + "R = 2*10**-9\n", + "\n", + "\n", + "# calculations\n", + "Uni = MWni/(Psni*1000)\n", + "T = Tm*(1+((2*Uni*Sni)/(deltaHfus*R)))\n", + "\n", + "# results\n", + "print \"molar density of the solid %.1e m**3/mol\" %Uni\n", + "print \"T = %.f K\"%T\n", + "# incorrect answer in textbook" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "molar density of the solid 6.6e-06 m**3/mol\n", + "T = -1139085 K\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.8 Page No : 347" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline\n", + "\n", + "from numpy import zeros\n", + "from matplotlib.pylab import *\n", + "\n", + "# Variables\n", + "MW1 = 119.5 ;\n", + "MW2 = 58 ;\n", + "A = [0,4.77,9.83,14.31,19.38,23.27,25.53,25.07,21.55,13.56,0] ;\n", + "B = [0,.1 , .2 , .3 ,.4 ,.5 ,.6 ,.7 ,.8 ,.9,1] ;\n", + "\n", + "C = zeros(11)\n", + "D = zeros(11)\n", + "# Calculations\n", + "print \" For weight percent %.3f del_h_mix = %.1f J/mol\"%(C[0],D[0])\n", + "for i in range(1,11):\n", + " x1 = (B[i] / MW1) / (B[i]/MW1 + (1 - B[i]) / MW2) ;\n", + " x2 = 1 - x1 ;\n", + " MW = x1 * MW1 + x2 * MW2 ;\n", + " del_h_mix = - 1*(A[i]) * MW ;\n", + " C[i] = del_h_mix ;\n", + " D[i] = x1 ;\n", + " print \" For weight percent %.3f del_h_mix = %.1f J/mol\"%(x1,del_h_mix)\n", + "\n", + "xdata = D ;\n", + "ydata = C ;\n", + "plot(xdata ,ydata) ;\n", + "xlabel(\"xCHCI3\")\n", + "ylabel(\"delta Hmix[J/mol]\")\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + " For weight percent 0.000 del_h_mix = 0.0 J/mol\n", + " For weight percent 0.051 del_h_mix = -291.7 J/mol\n", + " For weight percent 0.108 del_h_mix = -635.6 J/mol\n", + " For weight percent 0.172 del_h_mix = -981.5 J/mol\n", + " For weight percent 0.244 del_h_mix = -1415.4 J/mol\n", + " For weight percent 0.327 del_h_mix = -1817.3 J/mol\n", + " For weight percent 0.421 del_h_mix = -2142.2 J/mol\n", + " For weight percent 0.531 del_h_mix = -2272.9 J/mol\n", + " For weight percent 0.660 del_h_mix = -2124.7 J/mol\n", + " For weight percent 0.814 del_h_mix = -1465.1 J/mol\n", + " For weight percent 1.000 del_h_mix = 0.0 J/mol\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['f']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 2, + "text": [ + "<matplotlib.text.Text at 0x361ce50>" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nEIIAAAAASUVORK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x3453b90>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.9, Page 349" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from sympy.solvers import solve\n", + "from sympy import Symbol\n", + "\n", + "#Variables\n", + "cp1 = 27.5 #J/mol-K\n", + "cp2 = 25 #J/mol-K\n", + "cp3 = 20 #J/mol-K\n", + "T1 = 4+273 #K\n", + "\n", + "#Calculations\n", + "#Since only species 2 and 3 are involved,\n", + "deltaH1_unmix = -160 #J\n", + "deltaH11_mix = 1100 #J\n", + "\n", + "deltaH_mix = deltaH1_unmix+deltaH11_mix #J\n", + "T2 = Symbol('T2')\n", + "Tf = solve(deltaH_mix+235*(T2-T1))\n", + "\n", + "#Result\n", + "print \"The final temperature is\",Tf,\"K\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The final temperature is [273] K\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.10 Page No : 353" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "A = [-32669,-31840,-28727,-26978,-24301,-20083,-13113] ;\n", + "B = [20 ,10 ,5 ,4 ,3 ,2 ,1] ;\n", + "\n", + "# Calculations and Results\n", + "C = zeros(7)\n", + "D = zeros(7)\n", + "\n", + "for i in range(7):\n", + " del_h_mix = A[i] / (1. + B[i]) ;\n", + " C[i] = del_h_mix ;\n", + " D[i] = 1. / (1 + B[i]) ;\n", + " print \"For mole fraction %.3f the entropy of mixing is %.0f J/mol\"%(D[i],C[i])\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "For mole fraction 0.048 the entropy of mixing is -1556 J/mol\n", + "For mole fraction 0.091 the entropy of mixing is -2895 J/mol\n", + "For mole fraction 0.167 the entropy of mixing is -4788 J/mol\n", + "For mole fraction 0.200 the entropy of mixing is -5396 J/mol\n", + "For mole fraction 0.250 the entropy of mixing is -6075 J/mol\n", + "For mole fraction 0.333 the entropy of mixing is -6694 J/mol\n", + "For mole fraction 0.500 the entropy of mixing is -6556 J/mol\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.12 Page No : 359" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "x1 = 0.3 ;\n", + "x2 = 1- x1 ;\n", + "B11 = -910. ;\n", + "B22 = -1330. ;\n", + "B12 = -2005. ;\n", + "T = 333. ; \t\t\t#[K]\n", + "P = 10. * 10**5 ;\n", + "R = 8.314 ;\n", + "\n", + "# Calculations and Results\n", + "v1 = round(R * T /P * 10**6 + B11,-1) ;\t\t\t#....E6.9A\n", + "print \" v1 = %g cm**3/mol\"%(v1)\n", + "\n", + "V_bar_1 = (R * T / P) * 10**6+ (x1**2 + 2 * x1 * x2) *3.12 * B11 + x2**2 * B12 - x2**2 * B22 ;\t\t\t#.....E6.9B\n", + "print \" V_bar_1 = %.f cm**3/mol\"%(V_bar_1) ;\n", + "\n", + "del_v_mix = x1 * x2 * (2 * B12 - B11 - B22) ;\t\t\t#.....E6.9C\n", + "print \" del_v = %.f cm**3/mol\"%(del_v_mix);\n", + "\n", + "# Note : answer are slightly different because of rounding error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " v1 = 1860 cm**3/mol\n", + " V_bar_1 = 990 cm**3/mol\n", + " del_v = -372 cm**3/mol\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.13 Page No : 360" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import zeros\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Variables\n", + "h_H2SO4 = 1.596 ; \t\t\t#[kJ/mol]\n", + "h_H2O = 1.591 ; \t\t\t#[kJ/mol]\n", + "C1 = -74.40 ;\n", + "C2 = 0.561 ;\n", + "A = [0 ,0.1 , 0.2 ,0.3 ,0.4 ,0.5 ,0.6 ,0.7 ,0.8 ,0.9 ,1] ;\n", + "B = [1 ,0.9 ,0.8 ,0.7 ,0.6 ,0.5 ,0.4 ,0.3 ,0.2 ,0.1 ,0] ;\n", + "\n", + "# Calculations\n", + "y_data_1 = zeros(11)\n", + "y_data_2 = zeros(11)\n", + "x_data = zeros(11)\n", + "for i in range(11):\n", + " H_bar_H2SO4 = h_H2SO4 + C1 * B[i]**2 - 2 * C2 * C1 * A[i] * B[i]**2 ;\n", + " H_bar_H2O = h_H2O + C1 * A[i]**2 -C2 * C1 * A[i]**2 * (1 - 2 * B[i]) ;\n", + " y_data_1[i] = H_bar_H2SO4 ;\n", + " y_data_2[i] = H_bar_H2O ;\n", + " x_data[i] = A[i] ;\n", + "\n", + "plot(x_data,y_data_1) ;\n", + "plot(x_data,y_data_2) ;\n", + "xlabel(\"xH2SO4\")\n", + "ylabel(\"Partial molar enthalpy (J/mol)\")\n", + "#suptitle(\"Partial molar enthalpies of water and sulfuric acid at 21\u00b0C.\")\n", + "m = y_data_1[5] ;\n", + "s = y_data_2[5] ;\n", + "print \"For equimolar mixture del_H_H2SO4 = %.1f kJ/mol del_H_H2O = %.1f kJ/mol\"%(m,s);\n", + "show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "For equimolar mixture del_H_H2SO4 = -6.6 kJ/mol del_H_H2O = -17.0 kJ/mol\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x3613750>" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.16 Page No : 365" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline\n", + "\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Variables\n", + "C1 = 1.596 ;\n", + "C2 = 1.591 ;\n", + "C3 = -74.40 ;\n", + "C4 = -0.561 ;\n", + "A = [ 0 ,0.1 ,0.2 ,0.3 ,0.4 ,0.5 ,0.6 ,0.7 ,0.8 ,0.9 ,1] ;\n", + "m = (-C1 + C2 + C3 * ( C4 * 0.25)) * 1000 ;\n", + "\n", + "# Calculations\n", + "C = zeros(11)\n", + "for i in range(11):\n", + " x_H2O = A[i] ;\n", + " x_H2SO4 = 1- x_H2O ;\n", + " h = C1 * x_H2SO4 + C2 * x_H2O + C3 * x_H2SO4 * x_H2O *(1 + C4 * x_H2SO4) ;\n", + " C[i] = h * 10**3;\n", + "\n", + "y1 = C[5]\n", + "\n", + "def f613(x):\n", + " return -m * (x - 0.5 ) + y1 ;\n", + "\n", + "F = zeros(11)\n", + "for i in range(11):\n", + " F[i] = f613(A[i]) ;\n", + "\n", + "# Results\n", + "plot(A,C);\n", + "plot(A,F)\n", + "plot(0.5,-12000,\"go\")\n", + "xlabel(\"XH2O\")\n", + "ylabel(\"h(J/mol)\")\n", + "suptitle(\"Graphical determination of values for the partial molar enthalpies of sulfuric acid and water\")\n", + "\n", + "print \"The partial molar property can be obtained by drawing tangent at mole fraction 0.5 .\"\n", + "\n", + "show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + "The partial molar property can be obtained by drawing tangent at mole fraction 0.5 .\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['draw_if_interactive']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f36783f0250>" + ] + } + ], + "prompt_number": 5 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch7.ipynb b/Engineering_&_Chemical_Thermodynamics/ch7.ipynb new file mode 100755 index 00000000..16e8e4f7 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch7.ipynb @@ -0,0 +1,197 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7 : Phase Equilibia 2 Fugacity" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.1 Page No : 397" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math \n", + "\n", + "# Variables\n", + "h_cap_H2O = 2676.0 ; \t\t\t#[kJ/kg],From steam table\n", + "S_cap_H2O = 7.3548 ; \t\t\t#[kJ/kgK],From steam table\n", + "h_cap_0_H2O = 2687.5 ; \t\t\t#[kJ/kg],From Appendix B\n", + "S_cap_0_H2O = 8.4479 ; \t\t\t#[kJ/kgK],From Appendix B\n", + "P_0_H2O = 10. ;\t\t\t#[kPa]\n", + "T = 373.15 ;\t\t\t#[K]\n", + "R = 8.314 / 18 ;\n", + "P_sys = 101.35 ;\t\t\t#[kPa]\n", + "\n", + "# Calculations\n", + "g_cap_H2O = h_cap_H2O - T * S_cap_H2O ;\n", + "g_cap_0_H2O = h_cap_0_H2O - T * S_cap_0_H2O ; \n", + "\n", + "f_H2O = P_0_H2O * math.exp((g_cap_H2O - g_cap_0_H2O ) / (R * T)) ;\n", + "\n", + "Sai_H2O = f_H2O / P_sys ;\n", + "\n", + "\n", + "# Results\n", + "print \"The fugacity = %.2f kPa The fugacity coefficient = %.3f\"%(f_H2O,Sai_H2O);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The fugacity = 99.73 kPa The fugacity coefficient = 0.984\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.3 Page No : 402" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P = 50. \t\t\t#[bar]\n", + "T = 25. + 273.2\t\t\t#[K]\n", + "P_c = 48.7 ; \t\t\t#[bar] , From Appendix A.1 Table C.7 & C.8\n", + "T_c = 303.5 ; \t\t\t#[K] , From Appendix A.1 Table C.7 & C.8\n", + "w = 0.099 ; \t\t\t# From Appendix A.1 Table C.7 & C.8\n", + "log_w_0 = -0.216 ;\t\t\t# By interpolation\n", + "log_w_1 = -0.060 ;\t\t\t# By interpolation\n", + "\n", + "# Calculations\n", + "X = log_w_0 + w * log_w_1 ;\n", + "sai_eth = 10**(X) ;\n", + "f_eth = sai_eth * P ;\n", + "\n", + "# Results\n", + "print \"Fugacity = %.f bar\"%(f_eth);\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fugacity = 30 bar\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.10 Page No : 435" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "gama_a_inf = 0.88 ;\n", + "gama_b_inf = 0.86 ;\n", + "R = 8.314 ;\n", + "T = 39.33 + 273 ;\n", + "\n", + "# Calculations\n", + "A_1 = R * T * math.log(gama_a_inf) ;\n", + "A_2 = R * T * math.log(gama_b_inf) ;\n", + "A = (A_1 + A_2) / 2 ;\n", + "\n", + "# Results\n", + "print \"The average value of two-suffix Margules parameter A = %.f J/mol\"%(A);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The average value of two-suffix Margules parameter A = -362 J/mol\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.13 Page No : 448" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "A_T1 = 1401. ; \t\t\t#[J/mol]\n", + "T1 = 10 + 273. ;\t\t\t#[K]\n", + "T2 = 60 + 273. ; \t\t\t#[K]\n", + "C = 3250. ;\n", + "A_T2_prev = 1143. ;\t\t\t#[J/mol]\n", + "\n", + "# Calculations and Results\n", + "A_T2 = T2 * (C *(1./T2 - 1./T1) + A_T1 / T1);\n", + "print \"Value of A at 60*C = %.f J/mol\"%(A_T2) ;\n", + "\n", + "x = (A_T2_prev - A_T2) / A_T2_prev* 100 ;\n", + "print \"The values differ by = %.f %%\"%(x)\n", + "\n", + "# Note: Answer may vary because of rounding off error. " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of A at 60*C = 1074 J/mol\n", + "The values differ by = 6 %\n" + ] + } + ], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch8.ipynb b/Engineering_&_Chemical_Thermodynamics/ch8.ipynb new file mode 100755 index 00000000..c1f9c289 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch8.ipynb @@ -0,0 +1,942 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8 : Phase Equilibria III Phase Diagrams" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.1 Page No : 470" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.optimize import fsolve \n", + "import math \n", + "\n", + "# Variables\n", + "A_C5H12 = 9.2131 ; \t\t\t#From table E8.2A\n", + "B_C5H12 = 2477.07 ; \t\t\t#From table E8.2A\n", + "C_C5H12 = -39.94 ; \t\t\t#From table E8.2A\n", + "A_C6H12 = 9.1325 ; \t\t\t#From table E8.2A\n", + "B_C6H12 = 2766.63 ; \t\t\t#From table E8.2A\n", + "C_C6H12 = -50.50 ; \t\t\t#From table E8.2A\n", + "A_C6H14 = 9.2164 ; \t\t\t#From table E8.2A\n", + "B_C6H14 = 2697.55 ; \t\t\t#From table E8.2A\n", + "C_C6H14 = -48.78 ; \t\t\t#From table E8.2A\n", + "A_C7H16 = 9.2535 ; \t\t\t#From table E8.2A\n", + "B_C7H16 = 2911.32 ; \t\t\t#From table E8.2A\n", + "C_C7H16 = -56.51 ; \t\t\t#From table E8.2A\n", + "x_C5H12 = 0.3 ;\n", + "x_C6H12 = 0.3 ;\n", + "x_C6H14 = 0.2 ;\n", + "x_C7H16 = 0.2 ;\n", + "\n", + "# Calculations\n", + "def f82(T):\n", + " return -1 + (x_C5H12 * math.exp(A_C5H12 - B_C5H12 / (T + C_C5H12)) + x_C6H12 *\\\n", + " math.exp(A_C6H12 - B_C6H12 / (T + C_C6H12)) + x_C6H14 * \\\n", + " math.exp(A_C6H14 - B_C6H14 / (T + C_C6H14)) + x_C5H12 * math.exp(A_C5H12 - B_C5H12 / (T \\\n", + " + C_C5H12)) + x_C7H16 * math.exp(A_C7H16 - B_C7H16 / (T + C_C7H16)));\n", + "\n", + "y =fsolve(f82,300)\n", + "\n", + "# Results\n", + "print \" The temperature at which the liquid develops the first bubble of vapour = %d K\"%(y); \n", + "\n", + "# Note : answer may vary because of fsolve function of python." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The temperature at which the liquid develops the first bubble of vapour = 317 K\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.2 Page No : 471" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.optimize import fsolve \n", + "import math \n", + "\n", + "# Variables\n", + "A_C5H12 = 9.2131 ; \t\t\t#From table E8.2A\n", + "B_C5H12 = 2477.07 ; \t\t\t#From table E8.2A\n", + "C_C5H12 = -39.94 ; \t\t\t#From table E8.2A\n", + "A_C6H12 = 9.1325 ; \t\t\t#From table E8.2A\n", + "B_C6H12 = 2766.63 ; \t\t\t#From table E8.2A\n", + "C_C6H12 = -50.50 ; \t\t\t#From table E8.2A\n", + "A_C6H14 = 9.2164 ; \t\t\t#From table E8.2A\n", + "B_C6H14 = 2697.55 ; \t\t\t#From table E8.2A\n", + "C_C6H14 = -48.78 ; \t\t\t#From table E8.2A\n", + "A_C7H16 = 9.2535 ; \t\t\t#From table E8.2A\n", + "B_C7H16 = 2911.32 ; \t\t\t#From table E8.2A\n", + "C_C7H16 = -56.51 ; \t\t\t#From table E8.2A\n", + "\n", + "y_C5H12 = 0.3 ;\n", + "y_C6H12 = 0.3 ;\n", + "y_C6H14 = 0.2 ;\n", + "y_C7H16 = 0.2 ;\n", + "P = 1 ; \t\t\t#[bar]\n", + "\n", + "# Calculations and Results\n", + "def f83(T):\n", + " return -1 + P * ( y_C5H12 / math.exp(A_C5H12 - B_C5H12 / (T + \n", + " C_C5H12)) + y_C6H12 / math.exp(A_C6H12 - B_C6H12 / (T + C_C6H12)) + \\\n", + " y_C6H14 / math.exp(A_C6H14 - B_C6H14 / (T + C_C6H14)) + y_C7H16 / math.exp(A_C7H16 - B_C7H16 / (T + C_C7H16)));\n", + "\n", + "y =fsolve(f83,300)\n", + "\n", + "print \"The temperature at which vapour develops the first drop of liquid = %.f K\"%(y) ;\n", + "\n", + "T = y ;\n", + "P_sat_C5H12 = math.exp(A_C5H12 - B_C5H12 / (T + C_C5H12)) ;\n", + "p_sat_C6H12 = math.exp(A_C6H12 - B_C6H12 / (T + C_C6H12)) ;\n", + "P_sat_C6H14 = math.exp(A_C6H14 - B_C6H14 / (T + C_C6H14)) ;\n", + "P_sat_C7H16 = math.exp(A_C7H16 - B_C7H16 / (T + C_C7H16)) ;\n", + "\n", + "x_C5H12 = y_C5H12 * P / P_sat_C5H12 ;\n", + "x_C6H12 = y_C6H12 * P / p_sat_C6H12 ;\n", + "x_C6H14 = y_C6H14 * P / P_sat_C6H14 ;\n", + "x_C7H16 = y_C7H16 * P / P_sat_C7H16 ;\n", + "\n", + "print \"x_C5H12 = %.3f x_C6H12 = %.3f x_C6H14 = %.3f x_C7H16 = %.3f\"%(x_C5H12,x_C6H12,x_C6H14,x_C7H16) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The temperature at which vapour develops the first drop of liquid = 349 K\n", + "x_C5H12 = 0.091 x_C6H12 = 0.345 x_C6H14 = 0.159 x_C7H16 = 0.405\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.3 Page No : 471" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.integrate import *\n", + "from numpy import *\n", + "import math \n", + "\n", + "# Variables\n", + "P_a_sat = 0.53 ; \t\t\t#[bar]\n", + "P_b_sat = 0.16 ; \t\t\t#[bar]\n", + "X = 1./3 ;\n", + "Y = 1- X ;\n", + "x_a_feed = 0.5 ;\n", + "x_b_feed = 0.5 ;\n", + "\n", + "# Calculations\n", + "a = Y * -(x_a_feed + x_b_feed) + Y**2 ;\n", + "b = X * Y *(P_a_sat + P_b_sat) - (x_a_feed * P_b_sat + x_b_feed * P_a_sat)*X ;\n", + "c = P_a_sat * P_b_sat * X**2;\n", + "\n", + "k=poly1d([a,b,c])#'k',0);\n", + "#P = c + b*k**1 + a*k**2 ;\n", + "M = roots(k);\n", + "\n", + "# Results\n", + "for i in range(2):\n", + " ans = sign(M[0]) ;\n", + " if ans == 1:\n", + " print \" Pressure = %.2f bar\"%(M[i]) ; \n", + " Xa = x_a_feed / (P_a_sat / M[0] * X + Y) ;\t\t\t#....E8.4D\n", + " Ya = Xa * P_a_sat / M[0] \t\t\t#.....E8.4B\n", + " print \" Xa = %.2f Ya = %.1f\"%(Xa,Ya);\n", + " break\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure = 0.31 bar\n", + " Xa = 0.40 Ya = 0.7\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.5 Page No : 476" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.optimize import fsolve \n", + "import math \n", + "\n", + "# Variables\n", + "P1_sat = 0.72 ; \t\t\t#[bar]\n", + "P2_sat = 0.31 ; \t\t\t#[bar]\n", + "A = 3590. ;\n", + "B = -1180. ;\n", + "R = 8.314 ;\n", + "T = 70. + 273 ;\t\t\t#[K]\n", + "\n", + "# Calculations\n", + "def f85(x1):\n", + " return -.48 + ( x1 * math.exp((A + 3*B) * (1 - x1)**2 / (R * T) - \n", + " 4 * B * (1 - x1)**3 / (R * T)) * P1_sat) / ( x1 * math.exp((A + 3*B) * \n", + " (1 - x1)**2 / (R * T) -4 * B * (1 - x1)**3 / (R * T)) * P1_sat +(1 - x1) * \n", + " math.exp((A - 3*B) * x1**2 / (R * T) -4 * B * x1**3 / (R * T)) * P2_sat ) ; \n", + "\n", + "y = fsolve(f85,0.1)[0]\n", + "x1 = y ;\n", + "P = ( x1 * math.exp((A + 3*B) * (1 - x1)**2 / (R * T) - 4 * B * \n", + "(1 - x1)**3 / (R * T)) * P1_sat) + (1 - x1) * math.exp((A - 3*B) * x1**2 / \n", + "(R * T) -4 * B * x1**3 / (R * T)) * P2_sat ;\n", + "\n", + "# Results\n", + "print \"The value of x1 = %.3f\"%(y) ;\n", + "print \"Pressure = %.2f bar\"%(P) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of x1 = 0.114\n", + "Pressure = 0.55 bar\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.7 Page No : 488" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "P = 0.223 ; \t\t\t#[bar]\n", + "P_a_sat = 0.156 ; \t\t\t# [bar]\n", + "P_b_sat = 0.124 ; \t\t\t#[bar]\n", + "R = 8.314 ;\n", + "T = 50 + 273 ;\n", + "Xa = 0.554 ;\n", + "Xb = 1 - Xa ;\n", + "\n", + "# Calculations\n", + "gama_a = P / P_a_sat ;\n", + "A1 = R * T * math.log(gama_a) / (Xb**2) * 10**-3 ;\n", + "gama_b = P / P_b_sat ;\n", + "A2 = R * T * math.log(gama_b) / (Xa**2) * 10**-3 ; \n", + "\n", + "A = math.ceil((A1 + A2) / 2) ;\n", + "\n", + "# Results\n", + "print \"Value of two suffix Marguels parameter = %.1f kJ/mol\"%(A);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of two suffix Marguels parameter = 5.0 kJ/mol\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.9 Page No : 491" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "R = 8.314 ;\n", + "T = 10 + 273 ; \t\t\t#[K]\n", + "A_B = 9.2806 ; \t\t\t# From Appendix A , Table A1.1\n", + "B_B = 2788.5 ; \t\t\t# From Appendix A , Table A1.1\n", + "C_B = -52.36 ; \t\t\t# From Appendix A , Table A1.1\n", + "A_C = 9.1325 ; \t\t\t# From Appendix A , Table A1.1\n", + "B_C = 2766.63 ; \t\t\t# From Appendix A , Table A1.1\n", + "C_C = -50.50 ; \t\t\t# From Appendix A , Table A1.1\n", + "\n", + "x1 = [0 ,0.0610 ,0.2149 ,0.3187 ,0.4320 ,0.5246 ,0.6117 ,0.7265 ,0.8040 ,0.8830 ,0.8999 ,1] ; \t\t\t#From table E8.9A\n", + "P_exp = [6344 ,6590 ,6980 ,7140 ,7171 ,7216 ,7140 ,6974 ,6845 ,6617 ,6557 ,6073] ; \t\t\t#From table E8.9A\n", + "\n", + "P_1_sat = 6072.15 ; \t\t\t#[Pa]\n", + "P_2_sat = 6344 ; \t\t\t#[Pa] \n", + "\n", + "A = [1390 ,1391 ,1392 ,1393 ,1394 ,1395 ,1396 ,1397 ,1398 ,1399 ,1400 ,1401 ,1402 ,1403 ,1404 ,1405 ,1406 ,1407 ,1408 ,1409 ,1410 ] ;\n", + "\n", + "C = zeros([21,12])\n", + "for k in range(21):\n", + " y = A[k] ;\n", + " P = zeros(12)\n", + " for i in range(12):\n", + " P[i] = x1[i] * math.exp( y / (R * T ) * (1 - x1[i])**2) * P_1_sat+(1 - x1[i]) * math.exp(y / (R * T ) * x1[i]**2) * P_2_sat ;\n", + " C[k,i] = (P[i] - P_exp[i])**2 ;\n", + "\n", + "R = zeros(21)\n", + "for k in range(21):\n", + " y = 0 ;\n", + " for i in range(12):\n", + " y = y + C[k,i] ; \n", + " R[k] = y ;\n", + "\n", + "\n", + "k = 100000. ;\n", + "for i in range(21):\n", + " K = R[i] ; \n", + " if K < k:\n", + " k = K ;\n", + "\n", + "for i in range(21):\n", + " if R[i] == k :\n", + " print \"The two suffix Margules co-efficient is = %g J/mol\" %(A[i]) ; \n", + "\n", + "#Note : answer may vary because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The two suffix Margules co-efficient is = 1401 J/mol\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.10 Page No : 494" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "R = 8.314 ;\n", + "T = 10 + 273.15\t\t\t#[K]\n", + "A_B = 9.2806 ; \t\t\t# From Appendix A , Table A1.1\n", + "B_B = 2788.5 ; \t\t\t# From Appendix A , Table A1.1\n", + "C_B = -52.36 ; \t\t\t# From Appendix A , Table A1.1\n", + "A_C = 9.1325 ; \t\t\t# From Appendix A , Table A1.1\n", + "B_C = 2766.63 ; \t\t\t# From Appendix A , Table A1.1\n", + "C_C = -50.50 ; \t\t\t# From Appendix A , Table A1.1\n", + "\n", + "x1 = [0,0.0610 ,0.2149 ,0.3187 ,0.4320 ,0.5246 ,0.6117 ,0.7265 ,0.8040 ,0.8830 ,0.8999 ,1] ; \t\t\t#From table E8.9A\n", + "P_exp = [6344 ,6590 ,6980 ,7140 ,7171 ,7216 ,7140 ,6974 ,6845 ,6617 ,6557 ,6073] ; \t\t\t#From table E8.9A\n", + "\n", + "P_1_sat = 6073. ; \t\t\t#[Pa]\n", + "P_2_sat = 6344. ; \t\t\t#[Pa] \n", + "A = linspace(1390,1410,21) ;\n", + "B = linspace(60,80,21)\n", + "w = 1 / (R * T) ;\n", + "S = zeros([21,21])\n", + "for k in range(21):\n", + " y = A[k] ;\n", + " for i in range(21):\n", + " z = B[i] ;\n", + " P = zeros(12)\n", + " R = zeros(12)\n", + " for j in range(12):\n", + " P[j] = x1[j] * math.exp((y + 3 * z) * (1 - (x1[j]))**2 *w-4*z*(1-x1[j])**3* w )* P_1_sat + (1-x1[j])*exp((y -3*z)*(x1[j])**2 * w + 4 * z * (x1[j]**3) * w )*P_2_sat ;\n", + " R[j] =(P[j] - P_exp[j])**2 ;\n", + " m = 0 ;\n", + " for l in range(12):\n", + " m = m + R[l]\n", + " S[k,i] = m ;\n", + "\n", + "D = zeros(21)\n", + "for i in range(21):\n", + " k = S[i,0]\n", + " for l in range(1,21):\n", + " if S[i,l] < k:\n", + " k = S[i,l]\n", + " D[i] = k ;\n", + "\n", + "a = D[0] ;\n", + "for i in range(2,21):\n", + " if D[i] < a:\n", + " a = D[i] ;\n", + "\n", + "# Results\n", + "for i in range(21):\n", + " if D[i] == a :\n", + " for l in range(21):\n", + " if S[i,l] == a:\n", + " print \" A = %g J/mol\"%(A[i]);\n", + " print \" B = %g J/mol\"%(B[l]) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " A = 1397 J/mol\n", + " B = 69 J/mol\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.11 Page No : 494" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline\n", + "\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Given\n", + "R = 8.314 ;\n", + "T = 10 + 273.15 ; \t\t\t#[K]\n", + "x1 = [0 ,0.0610 ,0.2149 ,0.3187 ,0.4320 ,0.5246 ,0.6117 ,0.7265 ,0.8040 ,0.8830 ,0.8999 ,1] ; \t\t\t#From table E8.9A\n", + "P_exp = [6344 ,6590 ,6980 ,7140 ,7171 ,7216 ,7140 ,6974 ,6845 ,6617 ,6557 ,6073 ,6073] ; \t\t\t#From table E8.9A\n", + "y1 = [ 1 ,0.0953 ,0.2710 ,0.3600 ,0.4453,0.5106 ,0.5735 ,0.6626 ,0.7312 ,0.8200 ,0.8382, 0 ] ;\t\t\t#From table E8.9A\n", + "P_1_sat = 6073. ; \t\t\t#[Pa]\n", + "P_2_sat = 6344. ; \t\t\t#[Pa]\n", + "\n", + "n = 0 ;\n", + "x2 = zeros(11)\n", + "y2 = zeros(11)\n", + "g_E = zeros(11)\n", + "ydata = zeros(11)\n", + "xdata = zeros(11)\n", + "for i in range(1,11):\n", + " x2[i] = 1 - x1[i] ;\n", + " y2[i] = 1 - y1[i] ;\n", + " g_E[i] = R * T *( x1[i] * math.log (( y1[i] * P_exp[i]) / (x1[i]* P_1_sat)) + x2[i] * math.log((y2[i] * P_exp[i]) / (x2[i] * P_2_sat)) ) ;\n", + " n = n + g_E[i] / ((x1[i] * x2[i]) * 10) ;\n", + " ydata[i-1] = (g_E[i]/(x1[i]*x2[i]));\n", + " xdata[i-1] = x1[i] - x2[i] ;\n", + "\n", + "m= 0\n", + "n=0\n", + "o = 0\n", + "p= 0\n", + "N = 10\n", + "for i in range(1,11):\n", + " m = m + g_E[i] * (2 * x1[i] - 1) / ( x1[i] * x2[i]) ;\n", + " n = n + g_E[i] / ( x1[i] * x2[i]) ;\n", + " o = o + (2 * x1[i] - 1) ;\n", + " p = p + (2 * x1[i] - 1)**2 ;\n", + "\n", + "x_bar = o / N ;\n", + "y_bar = n / N ;\n", + "a1 = (N * m - n * o)/(N * p - o**2) ;\n", + "a0 = y_bar - a1 * x_bar ;\n", + "\n", + "ydata2 = zeros(11)\n", + "for i in range(11):\n", + " ydata2[i] = a0 + a1*xdata[i] ;\n", + "\n", + "# Results\n", + "plot(xdata,ydata,\"+\") ;\n", + "plot(xdata,ydata2) ;\n", + "xlabel(\"x1-x2\")\n", + "ylabel(\"g**E/x1x2 [J/mol]\")\n", + "#suptitle(\"Fit of g E /x 1 x 2 vs. x 1 2 x 2 for benzene (1)\u2013cyclohexane (2) at 10\u00b0C to straight line\")\n", + "ylim(1320,1500)\n", + "\n", + "print \" From average, the value of A = %d J/mol\"%(n/10) ;\n", + "print \" From linear regression best fit line the values of A and B are \\\n", + " %.1f J/mol & %.1f J/mol respectively .\"%(a0, a1) ;\n", + "\t\t\t#Readers can refer figure E8.11 .\n", + "show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + " From average, the value of A = 1408 J/mol" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " From linear regression best fit line the values of A and B are 1401.3 J/mol & 76.1 J/mol respectively .\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nncaELhOo7VDb1rGEuCOLnZL9BhcXFyZOnMjEiRPJz89nz549Zs9MiOos+XQyEfoIkk4n8ab/m6wa\nu4r7at1n61hCWESJ5dGnTx8SEq6fufOpp54iNjbW9FjPnj1JSkqyfDpRI1W1q9IdOHuASH0kOw07\neb336ywfvZw6tSr3NkIh7lWJ5ZGTk2P6+9ChQ8Uek9VDwpJuLYnKutrq8LnDRG2JYuvJrbze+3WW\njFyCk6OTrWMJYRWyy4cQZvot6zeitkSxOW0z/+z1T2KGxVCvdj1bxxLCqkosj0uXLrFy5UqUUqa/\nAdN9IayhMq2mOn7+ODO2ziD+93im9pzKF49/QYP7Gtg6lhA2UeLeVhMmTDCdW0cpddt5dm49V5Wt\nyd5WwlJO/HWCmVtnsuboGqb0mMKUnlNoeF9DW8cSokJYfFfdyk7KQ1S0kxdPMmvrLFb+tpIXur/A\ny71epnGdxraOJSpQVT6OqKJY5NxWf//731FK8dxzz5U7mBBVTealTP6x9h90/aIrzvWdOf7icaIe\njpLiqIYq4rIWNVWJ5XHy5En69OnDsGHD8PPz4+TJk9bMJYTV/XHlD15c9yLen3vTqE4jjr5wlFmP\nzKKpU1NbRxOi0ilxg7leryczM5ODBw/i6+tLUVER48ePt2Y2IaziTPYZ5ibM5dv93xKuC+e3F36j\nRb0Wto4lLKSqHUdUWd11m8fTTz/NrFmzePvtt/niiy+smctsss1DmOtczjnm/TqP6ORoQr1Deb33\n67Rs0NLWsYQVVcXT31Q0i2zziIqKwtnZmaib67mMwsPDcXZ2xtPT0zQ2bdo0vL298fDwoG/fvpw4\ncQK4fkDiqFGjcHd3p3379sWuRZ6YmIhOp0Or1TJlyhSzcwhxq6zcLN7Y9Abun7hzrfAaB/9xkPcH\nvi/FIYQZ7loeM2bMQCnFzJkzzZ5wWFgY8fHxxcbeeOMN9u/fz6FDhxg9erSplJYuXYqjoyNHjhzh\nwIEDfPPNN6ZiCQsLIzo6msOHD3Py5ElWrVpldhYhAC7kXWDa5ml0/Lgjl65eYt+z+/go6CNcGrrY\nOpqwEVlNVX4W22Du7+9PkyZNio3Vr1/f9Hd2djYtW17/pafRaMjJyaGoqIicnBxq165N06ZNycjI\nwGg0otPpAAgJCSEuLs6sHEJcvHqRSH0kHT7qwNnssyQ+k8hnj3+GppHG1tGEjUl5lJ/VN5i/9dZb\n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\njh0DYNOmTbi7u9s005w5c8jMzCQtLY1ly5bxyCOP3HNxVEQupRQTJ06kc+fOt51ep6KU5XMbFBTE\nkiVLAEhKSsLBwQEXFxeL5ClrpoyMDEaOHMnixYst+pk2J9OJEydIS0sjLS2NUaNG8dlnn1msOMqa\nafDgwSQkJFBUVERubi47duyw6L+3smRq27YtmzZtAuDs2bOkpKTQpk2bu0+44rftW8fKlSuVq6ur\nqlOnjnJ2dlYDBw5USil16tQpFRQUZHreunXrlFarVe7u7mrOnDkWzXT+/HnVv39/5enpqR599FH1\n119/3TFTRESEateunerQoYMaO3asysvLs3mmffv2qW7duqnOnTurQYMGqQsXLtg80w16vd4qe1uV\nJde2bduUnZ2d8vb2Vl26dFFdunRRP//8c4VnudPn9vPPP1eff/656TnPP/+86ty5s9LpdCXucWjN\nTBMnTlRNmzY1/Xfp3r27zTPdbMKECeqHH36oFJnmz5+vOnfurNq3b6/+9a9/2TzTmTNnVP/+/ZW7\nu7vq0KFDmfYAlYMEhRBCmK1arLYSQghhXVIeQgghzCblIYQQwmxSHkIIIcwm5SGEEMJsUh5CCCHM\nJuUhRAUYOHAgTZo0Kdep4zds2EDXrl1NpzNfv369BRIKUbEq9elJhKgqXnvtNXJzc8t2HYRbPPDA\nA6xfv57mzZtz+PBhAgMDOX36tMVP4ifEvZAlDyHMsGfPHry9vbl27Ro5OTl4eHiQkpLCI488Qv36\n9e/62lWrVpnOoHz69Gk6duzIuXPn8PLyMp0uXKvVYjQauXr1qsXfixD3QpY8hDBD9+7dGTp0KNOm\nTSMvL4+nnnqKzp07l+m1I0aMYOXKlXz88cesX7+eGTNm3HbyxRUrVuDt7Y2Tk5Ml4gtRYeT0JEKY\nqaCggG7duuHk5MSOHTtMq5f0ej0LFixgzZo1Jb724sWLaLVa/Pz8+P7774s9lpKSwtChQ9m4cSNu\nbm4WfQ9C3CtZbSWEmbKyssjJySE7O5u8vDzT+K3bKHbv3o1Op0On07F27Vrg+umwHRwcOHv2bLGz\nQRsMBkaMGEFsbKwUh6gSpDyEMNOzzz7LrFmzGDduHK+//rpp/NaFeF9fX5KTk0lOTubxxx+nsLCQ\niRMnsmzZMjp16sS///1v4PrSyODBg5k7dy69evWy6nsRorxktZUQZvj2229Zs2YN33//PUajET8/\nP9555x0iIiL47bffyM7O5v777yc6OppHH3202GtnzpzJpUuXePfdd8nOzqZ79+6sWrWKFStWMHfu\nXNq3b2967saNG2nWrJm1354QZSblIYQQwmyy2koIIYTZpDyEEEKYTcpDCCGE2aQ8hBBCmE3KQwgh\nhNmkPIQQQphNykMIIYTZpDyEEEKY7f8BfWbvvZfeqaEAAAAASUVORK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x3713c10>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.12 Page No : 500" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "H_O2 = 44253.9\t\t\t#[bar] , From table 8.1\n", + "p_O2 = 0.21 \t\t\t#[bar]\n", + "\n", + "# Calculations\n", + "x_O2 = p_O2 / H_O2 ;\n", + "v_H2O = 1/(1/0.001 * 1/0.018 * 0.001 );\n", + "_O2_ = x_O2 / v_H2O ; \t\t\t#[M]\n", + "\n", + "# Results\n", + "print \"Mole fraction of O2 = %.2e\"%(x_O2 ) ;\n", + "print \"Concentration of O2 = %.2e M \"%(_O2_) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mole fraction of O2 = 4.75e-06\n", + "Concentration of O2 = 2.64e-04 M \n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.13 Page No : 500" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "P = 300. ; \t\t\t#[bar]\n", + "V_bar_inf_N2 = 3.3 * 10**-5 ;\n", + "R = 8.314 ;\n", + "T = 298. ; \t\t\t#[K]\n", + "y_N2 = 1. ; \t\t\t# At 25*C vapour pressure of water is small\n", + "H_N2_1 = 87365. ; \t\t\t#[bar]\n", + "P_c = 33.8 ; \t\t\t#[bar]\n", + "T_c = 126.2 ;\t\t\t# [K]\n", + "w = 0.039 ; \t\t\t# From Appendix A.1 \n", + "log_w_0 = 0.013 ;\n", + "log_w_1 = 0.210 ;\n", + "\n", + "# Calculations\n", + "H_N2_300 = H_N2_1 * math.exp((V_bar_inf_N2 * (P -1) * 10**5 )/ (R * T)) ;\n", + "k = log_w_0 + w * log_w_1 ;\n", + "sai_N2 = 10**k ;\n", + "x_N2 = y_N2 * sai_N2 * P / H_N2_300 ;\n", + "\n", + "# Results\n", + "print \"Solubility of N2 in water = %.5f\"%(x_N2) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Solubility of N2 in water = 0.00242\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.20 Page No : 518" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline\n", + "\n", + "import math \n", + "from matplotlib.pyplot import *\n", + "from numpy import *\n", + "\n", + "\n", + "# Variables\n", + "R = 8.314 ;\n", + "T = 20. + 273 ;\t\t\t#[K]\n", + "A = 6000. ; \t\t\t#[J/mol]\n", + "B = -384. ; \t\t\t#[J/mol]\n", + "x_a = [0.001 ,0.03 ,0.05 ,0.06 ,0.075 ,0.1 ,0.12 , 0.13 ,0.15 ,0.2 ,0.25 ,0.3 ,0.35 ,0.4 ,0.45,0.475 ,0.5 ,0.55 ,0.6 ,0.65 ,0.7 ,0.75 ,0.8 ,0.8475 ,0.85 ,0.9 ,0.925 ,0.95 ,0.975 ,0.999] ;\n", + "\n", + "y_data = zeros(30)\n", + "y_data2 = zeros(30)\n", + "\n", + "# Calculations\n", + "for i in range(30):\n", + " y_data[i] = R * T * ( x_a[i] * math.log(x_a[i]) + (1 - x_a[i]) * math.log(1- x_a[i])) + x_a[i] * (1 - x_a[i]) * (A + B * (2*x_a[i] - 1 )) ;\n", + " y_data2[i] = - 82 * x_a[i]- 185.6 ;\n", + "\n", + "m = min(y_data) ;\n", + "for i in range(30):\n", + " if y_data[i] == m:\n", + " a = x_a[i] ;\n", + "\n", + "for i in range(30):\n", + " y_data2[i] = -(R * T *( math.log(a) - math.log(1 - a)) + A * (1 - 2*a) + B * (6 * a - 1 - 6 * a**2)) * (x_a[i] - a) + m ;\n", + "\n", + "y_data3 = zeros(20)\n", + "for i in range(20):\n", + " y_data3[i] = y_data[i] - y_data2[i] ;\n", + "n = min(y_data3) ;\n", + "\n", + "for i in range(20):\n", + " if y_data3[i] == n:\n", + " b = x_a[i] ;\n", + "\n", + "\n", + "# Results\n", + "plot(x_a ,y_data) ;\n", + "plot(x_a ,y_data2) ;\n", + "xlabel(\"Xa\")\n", + "ylabel(\"g-XaGa-XbGb\")\n", + "suptitle(\"the binary system described \")\n", + "print \"The equilibrium composition can be found by drawing a line tangent to\\\n", + " the minima . In this case the answer is %.2f and %.1f .\" %(a ,b)\n", + "show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + "The equilibrium composition can be found by drawing a line tangent to the minima . In this case the answer is 0.85 and 0.1 ." + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['draw_if_interactive']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nAABJRU5ErkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x35de510>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.21 Page No : 519" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from scipy.optimize import fsolve \n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "A = 6349 ; \t\t\t#[J/mol]\n", + "B = -384. ; \t\t\t#[J/mol]\n", + "R = 8.314 ;\n", + "T = 20 + 273 ; \t\t\t#[K]\n", + "k = 0.000001 ;\n", + "\n", + "# Calculations\n", + "def f816(x_a):\n", + " return R * T * (1/x_a + 1/(1 - x_a)) - 2 * A +6 * B * (1 - 2 * x_a) + k\n", + "\n", + "ans1 = fsolve(f816,0.1)[0]\n", + "ans2 = fsolve(f816,0.5)[0]\n", + "\n", + "print \"%.3f < x_a < %.3f \"%(ans1,ans2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "0.225 < x_a < 0.706 \n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.22 Page No : 522" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.optimize import fsolve\n", + "\n", + "# Variables\n", + "import math\n", + "T = 300. \t\t\t#[K]\n", + "A = 6235. \t \t\t#[J/mol] \n", + "P_a_sat = 100. * 10**3 ; \t\t\t#[Pa]\n", + "P_b_sat = 50. * 10**3 ; \t\t\t#{Pa}\n", + "R = 8.314 ;\n", + "w = 1./(R * T) \n", + "\n", + "def f817(R):\n", + " x_a_a = R[0]\n", + " x_a_b = R[1]\n", + " Z817 = [0,0]\n", + " Z817[0] = x_a_b * math.exp(A * (1 - x_a_b) ** 2 * w) - x_a_a * math.exp(A*(1-x_a_a)**2*w)\n", + " Z817[1] = (1 - x_a_b) * math.exp(A * ( x_a_b) ** 2 * w) - (1 - x_a_a) * math.exp(A * (x_a_a) ** 2 * w )\n", + " return Z817\n", + "x0 = [0.75 , 0.1] ;\n", + "z = fsolve(f817,x0)\n", + "\n", + "# Results\n", + "print \"The compositions are : x_a_a = %.3f and x_a_b = %.3f\"%(z[0],z[1]) ;\n", + "P = z[0] * math.exp(A * z[1] ** 2 * w) * P_a_sat + z[1] * math.exp(A * z[0] ** 2 * w) * P_b_sat ;\n", + "print \"Total pressure = %d kPa\"%(P * 10**-3) ;\n", + "y_a = z[0] * math.exp(A * z[1] ** 2 * w) * P_a_sat / P ;\n", + "print \"y_a = %.3f\" %( y_a ) ;\n", + "\n", + "# Note : incorrect answer in textbook" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The compositions are : x_a_a = 0.272 and x_a_b = 0.272\n", + "Total pressure = 49 kPa\n", + "y_a = 0.667\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.23 Page No : 535" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "T_b = 373.15 ; \t \t\t#[K]\n", + "del_h_vap = 2257. ; \t\t#[J/g]\n", + "MW_salt = 58.5 ; \t\t\t#[g/mol]\n", + "MW_water = 18. ; \t\t\t#[g/mol]\n", + "w_salt = 3.5 ;\n", + "w_water = 100 - w_salt ;\n", + "R = 8.314 ;\n", + "\n", + "# Calculations\n", + "x_salt = (w_salt / MW_salt) / (w_salt / MW_salt + w_water / MW_water) ;\n", + "x_b = 2 * x_salt\n", + "del_T = R * T_b**2 / (del_h_vap * MW_water)* x_b ;\n", + "\n", + "# Results\n", + "print \"The temperature that sea water boils is = %.2f degreeC\"%(100 + del_T);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The temperature that sea water boils is = 100.63 degreeC\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.24 Page No : 538" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "rho_w = 1000. \t \t\t# [kg/m**3]\n", + "g = 9.8 ; \t \t \t# [m/s**2]\n", + "h = 0.0071 ;\t\t\t #[m]\n", + "m_b = 1.93 * 10**-3 ; \t\t\t# [kg]\n", + "V = 520. * 10**-6 ; \t\t\t#[m**3]\n", + "R = 8.314\n", + "T = 298.\n", + "\n", + "# Calculations\n", + "PI = rho_w * g * h ;\n", + "C_b = m_b / V ;\n", + "MW_b = R * T * C_b / PI ;\n", + "\n", + "# Results\n", + "print \"The molecular weight of the protein = %d kg/mol\"%( MW_b );\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The molecular weight of the protein = 132 kg/mol\n" + ] + } + ], + "prompt_number": 18 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/ch9.ipynb b/Engineering_&_Chemical_Thermodynamics/ch9.ipynb new file mode 100755 index 00000000..ba9e9ffc --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/ch9.ipynb @@ -0,0 +1,1019 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 9 : Chemical reaction Equilibria" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.1 Page No : 570" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "n_o_CH3OH = 1. ; \t\t\t#[mol]\n", + "n_o_H2O = 3. \t\t\t#[mol]\n", + "S = 0.87 ;\n", + "\n", + "# Calculations\n", + "n_CH3OH = 1 - S ;\n", + "n_H2O = 2 - S ;\n", + "n_CO2 = S ;\n", + "n_H2 = 3 * S ;\n", + "n_v = n_CH3OH + n_CO2 + n_H2O + n_H2 ; \n", + "y_H2 = n_H2 / n_v ;\n", + "\n", + "# Results\n", + "print \"No of moles of H2 produced for 1mol of CH3OH = %.3f mol\" %( n_H2)\n", + "print \"Mole fraction of H2 = %.2f\" %( y_H2) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "No of moles of H2 produced for 1mol of CH3OH = 2.610 mol\n", + "Mole fraction of H2 = 0.55\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.2 Page No : 574" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "del_gf_0_CO2 = -394.36 ; \t\t\t#[kJ/mol],From Appendix A.3\n", + "del_gf_0_H2 = 0 ; \t\t\t#[kJ/mol],From Appendix A.3\n", + "del_gf_0_H2O = -228.57 ; \t\t\t#[kJ/mol],From Appendix A.3\n", + "del_gf_0_CH3OH = -161.96 ; \t\t\t#[kJ/mol],From Appendix A.3\n", + "n_CO2 = 1 ;\n", + "n_H2 = 3 ;\n", + "n_CH3OH = 1 ;\n", + "n_H2O = 1 ;\n", + "T = 298.15 ;\t\t\t#[K]\n", + "R = 8.314 ; \t\t\t#[J/molK]\n", + "\n", + "# Calculations\n", + "del_g0_rxn = (n_CO2 * del_gf_0_CO2 + n_H2 * del_gf_0_H2 - n_H2O * del_gf_0_H2O - n_CH3OH * del_gf_0_CH3OH) * 10**3 ; \t\t\t# [J/mol]\n", + "K_298 = math.exp( - del_g0_rxn / (R * T)) ;\n", + "\n", + "# Results\n", + "print \"The equillibrium constant K298 = %.2f \"%(K_298) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equillibrium constant K298 = 4.69 \n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.3 page no : 575" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "K_298 = 4.69\n", + "\n", + "# calculations\n", + "deltaH = (-393.51) + 3 * 0 - (-241.82) - (-200.66) \n", + "lnK333_469 = round((-deltaH*1000/8.314 )*(1./333 - 1./298),2)\n", + "lnK333 = lnK333_469 + math.log(K_298)\n", + "K333 = math.e**lnK333\n", + "\n", + "# Results\n", + "print \"Equilibrium constant = %.2f \"%K333\n", + "\n", + "# Note: answer is slightly different because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equilibrium constant = 37.54 \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.4 Page No : 577" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Variables\n", + "del_gf_0_CH2O = -110.0 ; \t\t\t#[kJ/mol],From Appendix A.2 & A.3\n", + "del_gf_0_H2 = 0 ; \t\t\t#[kJ/mol],From Appendix A.2 & A.3\n", + "del_gf_0_CH4O = -162.0 ; \t\t\t#[kJ/mol],From Appendix A.2 & A.3\n", + "del_hf_0_CH2O = -116.0 ; \t\t\t#[kJ/mol],From Appendix A.2 & A.3\n", + "del_hf_0_H2 = 0 ; \t\t\t#[kJ/mol],From Appendix A.2 & A.3\n", + "del_hf_0_CH4O = -200.7 ; \t\t\t#[kJ/mol],From Appendix A.2 & A.3n_CH20 = 1 ;\n", + "n_H2 = 1. ;\n", + "n_CH4O = 1. ;\n", + "n_CH2O = 1. ;\n", + "T1 = 298. \t\t\t#[K]\n", + "T2 = 873. ; \t\t\t# [K]\n", + "R = 8.314 ; \t\t\t#[J/molK]\n", + "Del_A = 3.302 ;\n", + "Del_B = -4.776 * 10**-3 ;\n", + "Del_C = 1.57 * 10**-6 ;\n", + "Del_D = 0.083 * 10**5 ; \n", + "\n", + "# Calculations and Results\n", + "del_g_rxn_298 = n_CH2O * del_gf_0_CH2O + n_H2 * del_gf_0_H2 - n_CH4O * del_gf_0_CH4O ;\n", + "K_298 = math.exp( - del_g_rxn_298 * 10**3 / (R * T1)) ;\n", + "print \"a) K_298 = %.2e As the equilibrium constant is very small very little amount of\\\n", + " formaldehyde will be formed .\"%(K_298) ;\n", + "\n", + "#Solution(b)\n", + "del_h_rxn_298 = (n_CH2O * del_hf_0_CH2O + n_H2 * del_hf_0_H2 - n_CH4O * del_hf_0_CH4O) * 10**3 ;\t\t\t#[J/mol]\n", + "K_873 = K_298 * math.exp((-del_h_rxn_298 * (1/T2 - 1/T1)) / R) ;\n", + "print \"b) i) K_873 = %.2f \"%(K_873) ;\n", + "\n", + "#Solution(c)\n", + "x = ( -del_h_rxn_298 / R + Del_A * T1 + Del_B / 2 * T1**2 + Del_C /3 * T1**3 - Del_D / T1 ) *(1/T2 - 1/T1) + Del_A * math.log(T2 / T1) + Del_B / 2 * (T2 -T1) + Del_C / 6 * (T2**2 -T1**2) + Del_D / 2 * (1/(T2**2) -1/(T1**2)) ;\n", + "K_873 = K_298 * math.exp(x) ;\n", + "print \" ii) K_873 = %.2f \"%(K_873) ;\n", + "\n", + "# Note : answer are slightly different because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) K_298 = 7.67e-10 As the equilibrium constant is very small very little amount of formaldehyde will be formed .\n", + "b) i) K_873 = 4.61 \n", + " ii) K_873 = 8.71 \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.6 Page No : 581" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "del_g0_f_C6H6 = -32.84 ; \t\t\t#[kJ/mol] , From Table E9.6\n", + "del_g0_f_C2H4 = 68.15 ; \t\t\t#[kJ/mol] , From Table E9.6\n", + "del_g0_f_H2 = 0 ; \t\t\t #[kJ/mol] , From Table E9.6\n", + "del_h0_f_C6H6 = -84.68 ; \t\t\t#[kJ/mol] , From Table E9.6\n", + "del_h0_f_C2H4 = 52.26 ; \t\t\t#[kJ/mol] , From Table E9.6\n", + "del_h0_f_H2 = 0 ; \t\t\t #[kJ/mol] , From Table E9.6\n", + "T1 = 298.2 ;\t\t\t #[K]\n", + "P = 1. \t\t\t#[bar]\n", + "R = 8.31 ;\n", + "T2 = 1273. \t\t\t# [K]\n", + "\n", + "# Calculations\n", + "del_g0_f_rxn = del_g0_f_C2H4 + del_g0_f_H2 - del_g0_f_C6H6 ;\n", + "K_298 = math.exp ( - (del_g0_f_rxn * 10**3) / (R * T1)) ;\n", + "del_h0_f_rxn = (del_h0_f_C2H4 + del_h0_f_H2 - del_h0_f_C6H6) * 10**3 ;\n", + "K_1273 = K_298 * math.exp( - del_h0_f_rxn / R * (1/T2 - 1/T1)) ;\n", + "x = math.sqrt( K_1273 / ( K_1273 + P)) ;\n", + "\n", + "# Results\n", + "print \"n_C2H6 = %.2f mol n_C2H4 = %.2f mol n_H2 = %.2f mol\"%(1-x,x,x) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "n_C2H6 = 0.09 mol n_C2H4 = 0.91 mol n_H2 = 0.91 mol\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.7 Page No : 583" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from matplotlib.pyplot import *\n", + "from numpy import *\n", + "from scipy.integrate import *\n", + "import math \n", + "\n", + "\n", + "# Variables\n", + "del_h0_f_NH3 = -46.11 ; \t\t\t# [kJ/mol],From table E9.7\n", + "del_h0_f_N2 = 0 \t\t\t# [kJ/mol],From table E9.7\n", + "del_h0_f_H2 = 0 ; \t\t \t# [kJ/mol],From table E9.7\n", + "del_g0_f_NH3 = -16.45 ; \t\t\t# [kJ/mol],From table E9.7\n", + "del_g0_f_N2 = 0 ; \t\t \t# [kJ/mol],From table E9.7\n", + "del_g0_f_H2 = 0 ; \t\t\t # [kJ/mol],From table E9.7\n", + "n_NH3 = 2. ;\n", + "n_N2 = -1. ;\n", + "n_H2 = -3. ;\n", + "A_NH3 = 3.578 \n", + "B_NH3 = 3.02 * 10**-3\n", + "D_NH3 = -0.186 * 10**5 ; \n", + "A_N2 = 3.280\n", + "B_N2 = 0.593 * 10**-3\n", + "D_N2 = 0.040 * 10**5 ;\n", + "A_H2 = 3.249\n", + "B_H2 = 0.422 * 10**-3\n", + "D_H2 = 0.083 * 10**5 ;\n", + "R = 8.314 ;\n", + "T = 298. ;\n", + "T2 = 773. ;\n", + "P = 1. ; \t\t\t#[bat]\n", + "\n", + "# Calculations\n", + "Del_h0_rxn = (n_NH3 * del_h0_f_NH3 + n_N2 * del_h0_f_N2 + n_H2 * del_h0_f_H2) * 10**3 ;\n", + "Del_g0_rxn = (n_NH3 * del_g0_f_NH3 + n_N2 * del_g0_f_N2 + n_H2 * del_g0_f_H2) * 10**3 ;\n", + "del_A = n_NH3 * A_NH3 + n_N2 * A_N2 + n_H2 * A_H2 ;\n", + "del_B = n_NH3 * B_NH3 + n_N2 * B_N2 + n_H2 * B_H2 ;\n", + "del_D = n_NH3 * D_NH3 + n_N2 * D_N2 + n_H2 * D_H2 ;\n", + "\n", + "K_298 = math.exp( - Del_g0_rxn / ( R * T)) ;\n", + "K_T = K_298 * math.exp( - Del_h0_rxn / R * (1 / T2 - 1 / T)) ;\n", + "A = K_T * P**2 *27 -16 ;\n", + "B = 64 - K_T * P**2 * 108 ;\n", + "C = -64 + K_T * P**2 * 162 ;\n", + "D = -108 * K_T * P**2 ;\n", + "E = 27 * K_T * P**2 ;\n", + "\n", + "\n", + "mycoeff =[E , D ,C , B ,A];\n", + "M = roots([A,B,C,D,E]);\n", + "\n", + "for i in range(3):\n", + " ans = isreal(M[i]) ;\n", + " if ans == True:\n", + " y = M[i] / M[i+1] - 1 ;\n", + " ans = sign(y) ;\n", + " \n", + " if ans == 1 :\n", + " x = M[i]\n", + " else:\n", + " x = M[i+1]\n", + " \n", + "# Results\n", + "print \"a)Extent of reaction = %.3f \"%(x);\n", + "\n", + "#(b)\n", + "X = (-Del_h0_rxn / R + del_A * T + del_B / 2 * T**2 - del_D / T) * (1/T2 - 1/T) + del_A * math.log(T2 / T) + del_B / 2 * (T2 - T) + del_D / 2 * (1/(T2**2) - 1/(T**2) );\n", + "K_T = K_298 * math.exp(X) ;\n", + "\n", + "A = K_T * P**2 *27 -16 ;\n", + "B = 64 - K_T * P**2 * 108 ;\n", + "C = -64 + K_T * P**2 * 162 ;\n", + "D = -108 * K_T * P**2 ;\n", + "E = 27 * K_T * P**2 ;\n", + "\n", + "mycoeff =[E , D ,C , B ,A];\n", + "M1 = roots([A,B,C,D,E]);\n", + "\n", + "for i in range(3):\n", + " ans = isreal(M1[i])\n", + " if ans == True :\n", + " y = M1[i] / M1[i+1] - 1 ;\n", + " ans = sign(y) ;\n", + " if ans == True:\n", + " x1 = M1[i]\n", + " else:\n", + " x1 = M1[i+1]\n", + "\n", + "print \"b) Extent of reaction = %.3f\"%(x1);\n", + "print \"Under these conditions we do not expect to produce an appreciable amount of ammonia .\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)Extent of reaction = 0.005 \n", + "b) Extent of reaction = 0.003\n", + "Under these conditions we do not expect to produce an appreciable amount of ammonia .\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.9 Page No : 585" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.optimize import fsolve \n", + "import math\n", + "\n", + "# Variables\n", + "K_T = 1.51 * 10**-5 ;\n", + "P = 300. ; \t\t\t#[bar]\n", + "T = 500 + 273.2 ; \t\t\t#[K]\n", + "R = 8.314 ;\n", + "\n", + "# Calculations and Results\n", + "def f991(k):\n", + " return ((2 * k)**2 * (4 - 2 * k)**2 / ((1 - k) * (3 - 3*k)**3)) * P**-2 - K_T \n", + "\n", + "z1 = fsolve(f991,0.3)[0]\n", + "\n", + "print \"a) Extent of reaction = %.2f \"%(z1);\n", + "\n", + "P_c = [111.3 * 101325 , 33.5 * 101325 , 12.8 * 101325] ;\n", + "T_c = [405.5 , 126.2 , 33.3] ;\n", + "\n", + "a = zeros(3)\n", + "b = zeros(3)\n", + "V = zeros(3)\n", + "sai = zeros(3)\n", + "for i in range(3):\n", + " a[i] = 27./ 64 * (R * T_c[i])**2 / P_c[i] ;\n", + " b[i] = (R * T_c[i]) / (8 * P_c[i]) ;\n", + " \n", + " def f992(v):\n", + " return (R * T) / (v - b[i]) - a[i] / (v**2) - P * 100000 ;\n", + " V[i] = fsolve(f992,.0002)\n", + " sai[i] = math.exp( - math.log((V[i] - b[i]) * P * 10**5/ ( R * T)) + b[i] / (V[i] - b[i]) - 2 * a[i] / (R * T * V[i])) ;\n", + "\n", + "def f993(k):\n", + " return ((2 * k)**2 * sai[0]**2 * (4 - 2 * k)**2 * 3 / ((1 - k) * sai[1]* (3 - 3*k)**3 * sai[2]**3 ))* P**-2 - K_T \n", + "\n", + "z2 = fsolve(f993,0.3)\n", + "\n", + "x = (z1 - z2) / z1 * 100 ;\n", + "\n", + "print \"b) Extent of reaction = %.2f \"%(z2);\n", + "print \" A correction of about %d%% is observed from accounting for nonideal behaviour . \"%(x)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Extent of reaction = 0.37 \n", + "b) Extent of reaction = 0.33 \n", + " A correction of about 11% is observed from accounting for nonideal behaviour . \n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.10 Page No : 586" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "del_g0_f_1 = 31.72 ; \t\t\t#[kJ/mol]\n", + "del_g0_f_2 = 26.89 ; \t\t\t#[kJ/mol]\n", + "R = 8.314 ;\n", + "T = 298 ;\t\t\t#[K]\n", + "\n", + "# Calculations\n", + "del_g0_rxn = del_g0_f_2 - del_g0_f_1 ;\n", + "K = math.exp( - del_g0_rxn * 10**3 / (R * T) ) ;\n", + "x = K / (1 + K) ;\n", + "\n", + "# Results\n", + "print \"x = %.3f \\nAt equilibrium %.1f %% of the liquid exists as cyclohexane.\"%(x ,x * 100) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "x = 0.875 \n", + "At equilibrium 87.5 % of the liquid exists as cyclohexane.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.11 Page No : 587" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "del_g0_f_CaCO3 = -951.25 ;\n", + "del_g0_f_CaO = -531.09 ;\n", + "del_g0_f_CO2 = -395.81 ;\n", + "R = 8.314 ;\n", + "T = 1000. ;\t\t\t# [K]\n", + "\n", + "# Calculations\n", + "del_g0_rxn = del_g0_f_CaO + del_g0_f_CO2 - del_g0_f_CaCO3 ;\n", + "K = math.exp(-del_g0_rxn * 10**3 / (R * T)) ;\n", + "p_CO2 = K ;\n", + "\n", + "# Results\n", + "print \"Equilibrium pressure = %.3f bar \"%(p_CO2) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equilibrium pressure = 0.053 bar \n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.12 Page No : 588" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "del_g0_f_B = 124.3 ; \t\t\t#[kJ/mol] , From Appendix A.3\n", + "del_g0_f_Ac = 209.2 ; \t\t\t#[kJ/mol] , From Appendix A.3\n", + "R = 8.314 ;\n", + "T = 298. ; \t\t\t# [K]\n", + "A = 9.2806 ;\n", + "B = 2788.51 ;\n", + "C = -52.36 ;\n", + "\n", + "# Calculations\n", + "del_g0_rxn = del_g0_f_B - 3 * del_g0_f_Ac ;\n", + "K = math.exp( - del_g0_rxn * 10**3 / (R * T)) ;\n", + "P = 1 / K**(1./3) ;\n", + "X = A - B / (T + C) ;\n", + "P_b = math.exp(X) ;\n", + "\n", + "# Results\n", + "print (\"At equilibrium , the cylinder is almost completely filled with Benzene .\")\n", + "print \"System pressure = %.3f bar \"%(P_b)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "At equilibrium , the cylinder is almost completely filled with Benzene .\n", + "System pressure = 0.126 bar \n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.13 Page No : 596" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "E_0_c = 0.153 ; \t\t\t#[V]\n", + "E_0_a = -0.521 ; \t\t\t# [v]\n", + "T = 298. ; \t\t\t#[K]\n", + "z = 1. ;\n", + "F =96485 ; \t\t\t#[C/mol e-]\n", + "R =8.314 ; \t\t\t#[J/mol K ]\n", + "\n", + "# Calculations\n", + "E_0_rxn = E_0_c + E_0_a ;\n", + "del_g_0_rxn = - z * F * E_0_rxn ;\n", + "\n", + "K = math.exp( - del_g_0_rxn / ( R * T )) ;\n", + "\n", + "# Results\n", + "print \"The equilibrium constant = %.3g \"%(K)\n", + "print \"The equilibrium constant is small . So the etching will not proceed\\\n", + " spontaneously . However if we apply work through application of an electrical potential\\\n", + " , we can etch the copper .\"\n", + "\n", + "# Note: answer is slightly different because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equilibrium constant = 5.97e-07 \n", + "The equilibrium constant is small . So the etching will not proceed spontaneously . However if we apply work through application of an electrical potential , we can etch the copper .\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.14 Page No : 596" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "E_0_c = 0.34 ; \t\t\t#[V]\n", + "E_0_a = -1.23 \t\t\t#[V]\n", + "T = 298. ; \t\t\t# [K]\n", + "pH = 1. ;\n", + "z = 2. ;\n", + "Cu2 = 0.07\n", + "F = 96485. \t \t\t#[C/mol e-]\n", + "R = 8.314 ;\n", + "\n", + "# Calculations\n", + "E_0_rxn = E_0_c + E_0_a ;\n", + "E = E_0_rxn + 2.303 * R * T * 2 * pH / (z * F) + R * T * math.log(Cu2) / (z * F) ;\n", + "\n", + "# Results\n", + "print \"Del_E_0_rxn = %.2f \"%(E_0_rxn ) ;\n", + "print \"We have to apply potential greater than %.1f V\"%(-E) ;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Del_E_0_rxn = -0.89 \n", + "We have to apply potential greater than 0.9 V\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.17 Page No : 602" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "m = 4. ;\n", + "T = 2. ;\n", + "Pai = 1. ;\n", + "S = 1. ;\n", + "\n", + "# Calculations\n", + "R = m - T + 2 - Pai - S ;\n", + "\n", + "# Results\n", + "print \"We must specify %g independent equations .\"%(R)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "We must specify 2 independent equations .\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.19 Page No : 603" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%pylab inline\n", + "\n", + "from numpy import *\n", + "from scipy.optimize import fsolve \n", + "from matplotlib.pyplot import *\n", + "import math \n", + "\n", + "# Variables\n", + "del_g_f_CH4 = -50.72 ;\n", + "del_g_f_H2 = 0 ;\n", + "del_g_f_H2O = -228.57 ;\n", + "del_g_f_CO = -137.17 ;\n", + "del_g_f_CO2 = -394.36 ;\n", + "del_h_f_CH4 = -74.81 ;\n", + "del_h_f_H2 = 0 ;\n", + "del_h_f_H2O = -241.82 ;\n", + "del_h_f_CO = -110.53 ;\n", + "del_h_f_CO2 = -393.51 ;\n", + "\n", + "v1_CH4 = -1. ;\n", + "v1_H2 = 3. ;\n", + "v1_H2O = -1. ;\n", + "v1_CO = 1. ;\n", + "v1_CO2 = 0. ;\n", + "v2_CH4 = -1. ;\n", + "v2_H2 = 4. ;\n", + "v2_H2O = -2. ;\n", + "v2_CO = 0. ;\n", + "v2_CO2 = 1. ;\n", + "\n", + "A_CH4 = 1.702 ;\n", + "B_CH4 = 9.08 * 10**-3 ;\n", + "C_CH4 = -2.16 * 10**-6 ;\n", + "D_CH4 = 0 ;\n", + "A_H2 = 3.249 ;\n", + "B_H2 = 4.22 * 10**-4 ;\n", + "C_H2 = 0 ;\n", + "D_H2 = 8.30 * 10**3 ;\n", + "A_H2O = 3.47 ;\n", + "B_H2O = 1.45 * 10**-3 ;\n", + "C_H2O = 0 ;\n", + "D_H2O = 1.21 * 10**4 ;\n", + "A_CO = 3.376 ;\n", + "B_CO = 5.57 * 10**-4 ;\n", + "C_CO = 0 ;\n", + "D_CO = -3.10 * 10**3 ;\n", + "A_CO2 = 5.457 ;\n", + "B_CO2 = 1.05 * 10**-3 ;\n", + "C_CO2 = 0 ;\n", + "D_CO2 = -1.16 * 10**5 ;\n", + "M = zeros((12,10))\n", + "M[:,0] = linspace(600,1150,12)\n", + "\n", + "R = 8.314 ;\n", + "P = 1 ; \t\t\t#[bar]\n", + "T_ref = 298.15 ; \t\t\t#[K]\n", + "\n", + "# Calculations\n", + "del_g_f_1 = (v1_CO * del_g_f_CO + v1_H2 *del_g_f_H2 + v1_CH4 * del_g_f_CH4 + v1_H2O * del_g_f_H2O) * 1000 ;\n", + "del_h_f_1 = (v1_CO * del_h_f_CO + v1_H2 *del_h_f_H2 + v1_CH4 * del_h_f_CH4 + v1_H2O * del_h_f_H2O) * 1000 ;\n", + "del_g_f_2 = (v2_CO2 * del_g_f_CO2 + v2_H2 *del_g_f_H2 + v2_CH4 * del_g_f_CH4 + v2_H2O * del_g_f_H2O) * 1000 ;\n", + "del_h_f_2 = (v2_CO2 * del_h_f_CO2 + v2_H2 *del_h_f_H2 + v2_CH4 * del_h_f_CH4 + v2_H2O * del_h_f_H2O) * 1000;\n", + "Del_A_1 = v1_CO * A_CO + v1_H2 * A_H2 + v1_CH4 * A_CH4 + v1_H2O * A_H2O ;\n", + "Del_B_1 = v1_CO * B_CO + v1_H2 * B_H2 + v1_CH4 * B_CH4 + v1_H2O * B_H2O ;\n", + "Del_C_1 = v1_CO * C_CO + v1_H2 * C_H2 + v1_CH4 * C_CH4 + v1_H2O * C_H2O ;\n", + "Del_D_1 = v1_CO * D_CO + v1_H2 * D_H2 + v1_CH4 * D_CH4 + v1_H2O * D_H2O ;\n", + "Del_A_2 = v2_CO2 * A_CO2 + v2_H2 * A_H2 + v2_CH4 * A_CH4 + v2_H2O * A_H2O ;\n", + "Del_B_2 = v2_CO2 * B_CO2 + v2_H2 * B_H2 + v2_CH4 * B_CH4 + v2_H2O * B_H2O ;\n", + "Del_C_2 = v2_CO2 * C_CO2 + v2_H2 * C_H2 + v2_CH4 * C_CH4 + v2_H2O * C_H2O ;\n", + "Del_D_2 = v2_CO2 * D_CO2 + v2_H2 * D_H2 + v2_CH4 * D_CH4 + v2_H2O * D_H2O ;\n", + "\n", + "\n", + "K_298_1 = math.exp( - del_g_f_1 / (R * T_ref)) ;\n", + "K_298_2 = math.exp( - del_g_f_2 / (R * T_ref)) ;\n", + "\n", + "for i in range(12):\n", + " X = (-del_h_f_1 / R + Del_A_1 * T_ref + Del_B_1 / 2 * T_ref**2 + \\\n", + " Del_C_1 /3* T_ref**3- Del_D_1 / T_ref) * (1./M[i,0] - 1./T_ref) + \\\n", + " Del_A_1*math.log(M[i,0] / T_ref)+ Del_B_1 / 2 * (M[i,0] - T_ref) + \\\n", + " Del_C_1 / 6 *(M[i,0]**2 - T_ref**2) + Del_D_1 / 2 * (1./(M[i,0]**2) - 1./(T_ref**2))\n", + " \n", + " M[i,1] = K_298_1 * math.exp(X) ;\n", + " \n", + " Y = (-del_h_f_2 / R + Del_A_2 * T_ref + Del_B_2 / 2 * T_ref**2 + Del_C_2/3* T_ref**3- Del_D_2 / T_ref) * \\\n", + " (1/M[i,0] - 1/T_ref) + Del_A_2 * math.log(M[i,0] / T_ref)+ Del_B_2 / 2 * (M[i,0] - T_ref) + \\\n", + " Del_C_2 / 6 *(M[i,0]**2 - T_ref**2) + Del_D_2 / 2* (1/(M[i,0]**2) - 1/(T_ref**2));\n", + " \n", + " M[i,2] = K_298_2 * math.exp(Y) ;\n", + " def f918(R):\n", + " s1 = R[0] ;\n", + " s2 = R[1] ;\n", + " y = [0,0]\n", + " y[0] = (s1 * (3 * s1 + 4 * s2)**3) / ((5 + 2 * s1 + 2 * s2)**2 * (1 - s1 -s2) * (4 - s1 - 2 * s2)) * P**2 - M[i,1] ;\n", + " y[1] = (s2 * (3 * s1 + 4 * s2)**4) / ((5 + 2 * s1 + 2 * s2)**2 * (1 - s1 -s2) * (4 - s1 - 2 * s2)**2) * P**2 - M[i,2] ;\n", + " return y\n", + " z = fsolve(f918,[0.0001,0.0001])\n", + " M[i,3] = z[0] ;\n", + " M[i,4] = z[1] ; \n", + " M[i,5] = (1 - M[i,3] - M[i,4]) / (5 + 2 * M[i,3] + 2 * M[i,4]) ;\n", + " M[i,6] = (4 - M[i,3] - 2 * M[i,4]) / (5 + 2 * M[i,3] + 2 * M[i,4]) ;\n", + " M[i,7] = (3 * M[i,3] + 4 * M[i,4]) / (5 + 2 * M[i,3] + 2 * M[i,4]) ;\n", + " M[i,8] = M[i,3] / (5 + 2 * M[i,3] + 2 * M[i,4]) ; \n", + " M[i,9] = M[i,4] / (5 + 2 * M[i,3] + 2 * M[i,4]) ; \n", + "\n", + "n1 = zeros([12,7])\n", + "for i in range(12):\n", + " for j in range(7):\n", + " n1[i,j] = M[i,j] ;\n", + "n2 = zeros([12,3])\n", + "for i in range(12):\n", + " for j in range(3):\n", + " n2[i,j] = M[i,j+7]\n", + "print \" T K1 K2 S1 S2 y_CH4 y_H2\"\n", + "for row in n1:\n", + " print \" %5d %7.2e %7.2e %7.3f %7.3f %7.3f %7.3f \"%(row[0],row[1],row[2],row[3],row[4],row[5],row[6])\n", + "#print (n1) ;\n", + "print (\" y_H20 y_CO y_CO2 \") ;\n", + "for row in n2:\n", + " print \" %7.3f %7.3f %7.3f \"%(row[0],row[1],row[2])\n", + "\n", + "\n", + "#print (n2) ;\n", + "N = zeros([10,10])\n", + "for i in range(10):\n", + " for j in range(10):\n", + " N[i,j] = M[i,j]\n", + "'''\n", + "plot(N[3],N[0],\"+\") ;\n", + "plot(N[4], N[0],\".\") ;\n", + "plot(N[5] , N[0], \"o-\") ; \n", + "plot(N[6] , N[0], \"s-\");\n", + "plot(N[7] , N[0], \"*-\") ;\n", + "plot(N[8] , N[0], \"x-\") ;\n", + "plot(N[9] , N[0], \".-\") ;\n", + "show()\n", + "'''\n", + "\n", + "suptitle(\"Figure E9.18 Extent of reaxn vs temp\")\n", + "xlabel(\"Temperature(K)\")\n", + "ylabel(\"S\") ;\n", + "#legend(\"S1\",\"S2\") ;\n", + "plot(N[:,0] , N[:,5], \"o-\") ; \n", + "plot(N[:,0] , N[:,6], \"s-\");\n", + "plot(N[:,0] , N[:,7], \"^-\") ;\n", + "plot(N[:,0] , N[:,8], \"x-\") ;\n", + "plot(N[:,0] , N[:,9], \".-\") ;\n", + "\n", + "# Note : some answers are 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", + " T K1 K2 S1 S2 y_CH4 y_H2" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " 600 4.91e-07 1.40e-05 0.000 0.113 0.170 0.722 \n", + " 650 1.42e-05 2.24e-04 0.003 0.191 0.150 0.671 \n", + " 700 2.59e-04 2.47e-03 0.011 0.294 0.124 0.606 \n", + " 750 3.24e-03 2.01e-02 0.037 0.410 0.094 0.534 \n", + " 800 3.00e-02 1.29e-01 0.099 0.515 0.062 0.461 \n", + " 850 2.15e-01 6.69e-01 0.207 0.578 0.033 0.401 \n", + " 900 1.25e+00 2.93e+00 0.332 0.584 0.012 0.366 \n", + " 950 6.06e+00 1.11e+01 0.424 0.551 0.004 0.356 \n", + " 1000 2.52e+01 3.70e+01 0.485 0.509 0.001 0.358 \n", + " 1050 9.20e+01 1.11e+02 0.531 0.468 0.000 0.362 \n", + " 1100 2.99e+02 3.02e+02 0.319 0.322 0.057 0.484 \n", + " 1150 8.78e+02 7.56e+02 0.343 0.295 0.058 0.488 \n", + " y_H20 y_CO y_CO2 \n", + " 0.087 0.000 0.022 \n", + " 0.144 0.000 0.036 \n", + " 0.215 0.002 0.052 \n", + " 0.297 0.006 0.070 \n", + " 0.378 0.016 0.083 \n", + " 0.447 0.032 0.088 \n", + " 0.488 0.049 0.085 \n", + " 0.500 0.061 0.079 \n", + " 0.499 0.069 0.073 \n", + " 0.495 0.076 0.067 \n", + " 0.357 0.051 0.051 \n", + " 0.352 0.055 0.047 \n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "/home/jovina/virtualenvs/scipy/local/lib/python2.7/site-packages/scipy/optimize/minpack.py:236: RuntimeWarning: The iteration is not making good progress, as measured by the \n", + " improvement from the last ten iterations.\n", + " warnings.warn(msg, RuntimeWarning)\n" + ] + }, + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 2, + "text": [ + "[<matplotlib.lines.Line2D at 0x34b06d0>]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEhCAYAAABhpec9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8U/X+x/FX0pUONrSMImUVaCmlhSIFkSpIRZzAFVcv\nQwT5iQsV9ApSFBVUUOQqFhHcehG8ovRSlkTZSxCQpVCgZVpm6Ugzvr8/Dg0NLaVA0yTt5/l45JGT\n5CT5JJTzzvf7Ped7dEophRBCCHEZelcXIIQQwr1JUAghhCiVBIUQQohSSVAIIYQolQSFEEKIUklQ\nCCGEKJUEhQfx8vIiJiaGmJgYYmNjOXjwIF27dq3QGoxGIzVq1LDXERMTw88//wzApEmTCA8Pp23b\ntkybNq3E5+/evZv4+HgMBgNTpkxxeGz8+PGEh4fTunVr+vfvT25u7jXVeODAAfz9/R1q/PLLLy+7\n/tmzZ5kxY8Y1vVehzz77jKNHj17Vc3bv3k1kZCSxsbGkp6df1/u7g4MHD/LNN9+4ugzhDEp4jKCg\nIKe9tsViKdN6K1asUHfddVex+zdt2qQiIyNVXl6eslgsqmfPnmrbtm3F1jtx4oTauHGjevnll9U7\n77xjv//PP/9UTZs2VSaTSSml1P33369mzZp1TZ8lPT1dtW3b1mnrlyQhIUFt2rTpqp7z5ptvqokT\nJ15xPavVeq1lVagVK1aoO++809VlCCeQFoWHCwoKAsBqtTJkyBBatWpF79696dOnD/PnzwcgLCyM\nU6dOAbBp0yZuueUWAJKTk0lKSiIhIYFBgwZx/Phx+vTpQ3R0NO3bt+eXX34p8T1VCcdo7tmzh86d\nO2MwGPDy8qJ79+789NNPxdarV68eHTt2xMfHx+H+2rVr4+PjQ05ODhaLhdzcXJo0aXLtX0wJDh48\nSHh4OCdPnsRms9GtWzeWLl3KSy+9xL59+4iJiWHMmDEAvPrqq7Rr1442bdrw0ksvAVpLpU2bNjz+\n+OO0bduWhIQEcnJymDdvHps2beLhhx8mNjaW/Px8h/fdsGEDMTExREVF0bt3b06dOsX//vc/pk2b\nxowZM7j11luL1RoUFMTzzz9Px44dWbduHR9//DHR0dFERkYyZMgQLBYLAI8//jhxcXGEh4fz4osv\nAloLqXXr1uzduxeABx98kE8++cT+umPHjrW3tC5tBdlsNpo2bcrZs2ft94WHh3PixAm++eYboqKi\niImJoVu3bsVqfvHFF1m5ciUxMTFMmzYNq9XKyJEjiY6Opk2bNrz//vuA1irt3r07/fr1o0WLFrz4\n4ot88cUXxMfH06pVK/78808ABg0axIgRI+jcuTPNmzfnv//971X+i4ty4+qkEmXn5eWl2rdvr9q3\nb6/69u2rlLrYyvjyyy/tv+b+/vtvVatWLTV//nyllFJhYWHq5MmTSimlNm7cqBISEpRSSo0fP151\n7NhRmc1mpZRS9913n1q1apVSSqmDBw+q5s2bF6thxYoVqkaNGvY62rdvr/bv36+2bdumWrRooU6e\nPKlycnJU586d1eOPP37Zz5KcnOzQolBKqZSUFBUUFKTq1aunHnnkkWv+ntLT05W/v79DjYWfa9as\nWeof//iHeuutt+z1HThwwKFFsWDBAjVs2DCllPZr/s4771RLly5V6enpytvbW23fvl0ppbV65syZ\no5TSWhSbN28usZ7w8HC1evVqpZRSEyZMsL9vcnKymjJlSonP0el06vvvv1dKKbV161bVp08fe6tv\nxIgR6uOPP1ZKKXX27FmllNYiLNqqWbp0qYqPj1fffPON6t27t8PrLlq0SCml1OjRo9X48eOLvffT\nTz9t/1zr1q1Tt912m1JKqYiICHXixAmllFLnz58v9jyj0ejQopg2bZq9xZSfn69iY2PV3r171YoV\nK1TNmjXV33//rUwmk2rYsKF69dVX7c954oknlFJKDRw4UPXp00cppf2bBgcHq7y8vBK/L+Fc3q4O\nKlF2/v7+bNmypcTHVq9eTf/+/QGoW7euvdVQGp1Ox9133423t/ZnsGzZMoe+cpPJRHZ2NtWqVXN4\nXrdu3UpsLYwaNYqEhAT8/f1p3759mT8XwL59+3jvvfc4cOAANWrU4B//+AdfffUVDz/88FW9TqHm\nzZuX+F09+uijzJ07l5SUFH7//XegeAtpyZIlLFmyhJiYGABycnI4cOAALVq0oGnTprRt2xaADh06\nkJGRYX/epa8DcOLECfLz8+nSpQsAjzzyCHfffbd9/ZKeA9p41L333gvA0qVL2bJlCx07dgQgLy+P\nevXqAfDJJ5/w6aefotPpOHLkCLt376ZDhw707NmTuXPnMnLkSLZt22Z/XV9fX26//XZ7/YsXLy72\n3gMGDODVV19l0KBBfPvttwwYMACAm2++mUceeYR+/frRt29fAgMDHZ5X0vf4559/Mm/ePADOnTvH\n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\n", + "text": [ + "<matplotlib.figure.Figure at 0x2619950>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.21 Page No : 607" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "import math\n", + "del_g_0_f_SiCl2 = - 216012. ; \n", + "del_g_0_f_SiCl4 = - 492536. ;\n", + "del_g_0_f_SiCl3H = -356537. ;\n", + "del_g_0_f_SiCl2H2 = -199368. ;\n", + "del_g_0_f_SiClH3 = -28482. ;\n", + "del_g_0_f_SiH4 = -176152. ;\n", + "del_g_0_f_HCl = -102644. ;\n", + "del_g_0_f_H2 = 0. ;\n", + "del_g_0_f_Si = 0. ;\n", + "R = 8.314 ;\n", + "T = 1300. ; \t\t\t#[K]\n", + "\n", + "# Calculations\n", + "Del_g_rxn_1 = del_g_0_f_SiCl2 + 2 * del_g_0_f_HCl - del_g_0_f_SiCl4 - del_g_0_f_H2 ;\n", + "Del_g_rxn_2 = del_g_0_f_SiCl3H + del_g_0_f_HCl - del_g_0_f_SiCl4 - del_g_0_f_H2 ;\n", + "Del_g_rxn_3 = del_g_0_f_SiCl2H2 + del_g_0_f_HCl - del_g_0_f_SiCl3H - del_g_0_f_H2 ;\n", + "Del_g_rxn_4 = del_g_0_f_SiClH3 + del_g_0_f_HCl - del_g_0_f_SiCl2H2 - del_g_0_f_H2 ;\n", + "Del_g_rxn_5 = del_g_0_f_SiH4 + del_g_0_f_HCl - del_g_0_f_SiCl3H - del_g_0_f_H2 ;\n", + "Del_g_rxn_6 = del_g_0_f_Si + 4 * del_g_0_f_HCl - del_g_0_f_SiCl4 - 2 * del_g_0_f_H2 ;\n", + "\n", + "M = zeros([6,4])\n", + "\n", + "M[0,0] = math.exp( - Del_g_rxn_1 / (R * T)) ;\n", + "M[1,0] = math.exp( - Del_g_rxn_2 / (R * T)) ;\n", + "M[2,0] = math.exp( - Del_g_rxn_3 / (R * T)) ;\n", + "M[3,0] = math.exp( - Del_g_rxn_4 / (R * T)) ;\n", + "M[4,0] = math.exp( - Del_g_rxn_5 / (R * T)) ;\n", + "M[5,0] = math.exp( - Del_g_rxn_6 / (R * T)) ;\n", + "\n", + "S = [0.0763,0.1979,0.0067,0.0001,0.0000,-0.0512] ;\n", + "K_cal = [.00137,0.0457,0.00644,0.00181,0.000752,0.000509] ;\n", + "\n", + "for i in range(6):\n", + " M[i,1] = S[i] ;\n", + " M[i,2] = K_cal[i] ;\n", + " M[i,3] = M[i,0] - M[i,2] ;\n", + "# Results\n", + "print (\" K_i S K_i_cal K_i - K_i_cal\") ;\n", + "for row in M:\n", + " print \" %5.2e %7.4f %7.2e %7.2e\"%(row[0],row[1],row[2],row[3])\n", + "\n", + "# Readers can refer figure E9.19 .\n", + "# Note : answers are different because of rounding off error." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " K_i S K_i_cal K_i - K_i_cal\n", + " 1.37e-03 0.0763 1.37e-03 2.77e-06\n", + " 4.57e-02 0.1979 4.57e-02 -1.95e-05\n", + " 6.44e-03 0.0067 6.44e-03 2.87e-06\n", + " 1.81e-03 0.0001 1.81e-03 9.39e-07\n", + " 7.52e-04 0.0000 7.52e-04 -4.00e-09\n", + " 5.09e-04 -0.0512 5.09e-04 -3.50e-08\n" + ] + } + ], + "prompt_number": 69 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Engineering_&_Chemical_Thermodynamics/screenshots/graphical_determination.png b/Engineering_&_Chemical_Thermodynamics/screenshots/graphical_determination.png Binary files differnew file mode 100755 index 00000000..9e79c2e5 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/screenshots/graphical_determination.png diff --git a/Engineering_&_Chemical_Thermodynamics/screenshots/least-squares-linear-fit.png b/Engineering_&_Chemical_Thermodynamics/screenshots/least-squares-linear-fit.png Binary files differnew file mode 100755 index 00000000..f3276fd3 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/screenshots/least-squares-linear-fit.png diff --git a/Engineering_&_Chemical_Thermodynamics/screenshots/partial.png b/Engineering_&_Chemical_Thermodynamics/screenshots/partial.png Binary files differnew file mode 100755 index 00000000..25753278 --- /dev/null +++ b/Engineering_&_Chemical_Thermodynamics/screenshots/partial.png |