summaryrefslogtreecommitdiff
path: root/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch7.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch7.ipynb')
-rw-r--r--A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch7.ipynb888
1 files changed, 888 insertions, 0 deletions
diff --git a/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch7.ipynb b/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch7.ipynb
new file mode 100644
index 00000000..b0e53020
--- /dev/null
+++ b/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch7.ipynb
@@ -0,0 +1,888 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Properties of Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To find the volume of mixture\n",
+ "\n",
+ "# Variables\n",
+ "V = 0.1; \t\t\t#volume of mixture required (m**3)\n",
+ "Ve = 0.03; \t\t\t#volume of alcohol\n",
+ "Vw = 0.07; \t\t\t#volume of water\n",
+ "de = 789.; \t\t\t#density of ethanol (kg/m**3)\n",
+ "dw = 997.; \t\t\t#density of water (kg/m**3)\n",
+ "pe = 53.6*10**-6; \t\t\t#partial molar volume of ethanol (m**3/mol)\n",
+ "pw = 18.*10**-6; \t\t\t#partial molar volume of water (m**3/mol)\n",
+ "Me = 46.; \t\t\t#molecular wt of ethanol\n",
+ "Mw = 18.; \t\t\t#molecular wt of water\n",
+ "\n",
+ "# Calculations\n",
+ "#To find the volume of mixture\n",
+ "ne = (Ve*de*10**3)/Me; \t\t\t#number of moles of ethanol\n",
+ "nw = (Vw*dw*10**3)/Mw; \t\t\t#number of moles of water\n",
+ "xe = ne/(ne+nw) \t\t\t#mole fraction of ethanol\n",
+ "xw = 1-ne; \t\t\t#mole fraction of water\n",
+ "act_V = (ne*pe)+(nw*pw)\n",
+ "\n",
+ "# Results\n",
+ "if (V==act_V) :\n",
+ " print 'It is possible to prepare the required solution'\n",
+ "else:\n",
+ " Ve_act = (Ve/act_V)*V;\n",
+ " Vw_act = (Vw/act_V)*V;\n",
+ " print ' For the given volumes of ethanol and water, it is not possible to prepare 0.1 cubic m of mixture'\n",
+ " print ' Required volume of ethanol is %f cubic m'%Ve_act\n",
+ " print ' Required volume of water is %f cubic m'%Vw_act\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " For the given volumes of ethanol and water, it is not possible to prepare 0.1 cubic m of mixture\n",
+ " Required volume of ethanol is 0.030810 cubic m\n",
+ " Required volume of water is 0.071890 cubic m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To find the required volume of methanol and water\n",
+ "\n",
+ "# Variables\n",
+ "V = 2.; \t\t\t#volume of desired solution (m**3)\n",
+ "x1 = 0.3; \t\t\t#moles fraction of methanol\n",
+ "x2 = 0.7; \t\t\t#moles fraction of water\n",
+ "V1 = 38.632*10**-6; \t\t\t#partial molar volume of methanol (m**3/mol)\n",
+ "V2 = 17.765*10**-6; \t\t\t#partial molar volume of water (m**3/mol)\n",
+ "mol_V1 = 40.727*10**-6; \t\t#molar volume of ethanol (m**3/mol)\n",
+ "mol_V2 = 18.068*10**-6; \t\t#molar volume of water (m**3/mol)\n",
+ "\n",
+ "# Calculations\n",
+ "#To find the required volume of methanol and water\n",
+ "V_mol = (x1*V1)+(x2*V2); \t\t\t#molar volume of desired solution\n",
+ "n = V/V_mol; \t\t\t #no. of moles in the desired solution\n",
+ "n1 = x1*n; \t\t\t#moles of methanol\n",
+ "n2 = x2*n; \t\t\t#moles of water\n",
+ "V_m = n1*mol_V1;\n",
+ "V_w = n2*mol_V2;\n",
+ "\n",
+ "# Results\n",
+ "print 'Volume of methanol to be taken is %f cubic m'%V_m\n",
+ "print ' Volume of water to be taken is %f cubic m'%V_w\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of methanol to be taken is 1.017111 cubic m\n",
+ " Volume of water to be taken is 1.052866 cubic m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To calculate the volume of water to be added and volume of dilute alcohol solution\n",
+ "\n",
+ "# Variables\n",
+ "V1_w = 0.816*10**-3; \t\t\t#partial molar volume of water in 96% alcohol solution\n",
+ "V1_e = 1.273*10**-3; \t\t\t#partial molar volume of ethanol in 96% alcohol solution\n",
+ "V2_w = 0.953*10**-3; \t\t\t#partial molar volume of water in 56% alcohol solution\n",
+ "V2_e = 1.243*10**-3; \t\t\t#partial molar volume of ethanol in 56% alcohol solution\n",
+ "d = 0.997*10**3; \t\t\t #density of water (kg/m**3)\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "#To calculate the volume of water to be added and volume of dilute alcohol solution\n",
+ "#Basis: \n",
+ "V = 2*10**-3; \t\t\t #volume of alcohol solution (m**3)\n",
+ "V_sp = (0.96*V1_e)+(0.04*V1_w); \t\t\t#volume of 1 kg of laboratory alcohol\n",
+ "m_e = V/V_sp; \t\t\t #mass of 2*10**-3 m**3 alcohol \n",
+ "\n",
+ "#(a).\n",
+ "#Let mass of water added be m kg\n",
+ "#Taking an alcohol balance\n",
+ "m = (m_e*0.96)/0.56 - m_e;\n",
+ "v = m/d;\n",
+ "\n",
+ "# Results\n",
+ "print ' (a).'\n",
+ "print ' Mass of water added is %f kg'%m\n",
+ "print ' Volume of water added is %4.3e cubic m'%v\n",
+ "\n",
+ "#(b)\n",
+ "m_sol = m_e + m; \t\t\t #mass of alcohol solution obtained\n",
+ "sp_vol = (0.56*V2_e)+(0.44*V2_w); \t\t\t#specific volume of 56% alcohol\n",
+ "V_dil = sp_vol*m_sol; \t\t\t #volume of dilute alcohol solution\n",
+ "print ' (b)'\n",
+ "print ' Volume of dilute alcohol solution is %5.4e cubic m'%V_dil\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a).\n",
+ " Mass of water added is 1.138558 kg\n",
+ " Volume of water added is 1.142e-03 cubic m\n",
+ " (b)\n",
+ " Volume of dilute alcohol solution is 3.0479e-03 cubic m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To determine enthalpies of pure components and at infinite dilution\n",
+ "\n",
+ "# Variables\n",
+ "x1= .3\n",
+ "x2 = .7\n",
+ "\n",
+ "# Calculations and Results\n",
+ "H = 400.*x1 + 600*x2 + x1*x2*(40*x1+20*x2)\n",
+ "H1 = 420.-60+40;\n",
+ "#Using eq. 7.28 (Page no. 264)\n",
+ "#H = H2_bar as x2 = 1\n",
+ "H2 = 600.;\n",
+ "print ' (b).'\n",
+ "print ' Pure state enthalpies are:'\n",
+ "print ' H1 = %i J/mol'%H1\n",
+ "print ' H2 = %i J/mol'%H2\n",
+ "\n",
+ "\t\t\t#(c).\n",
+ "\t\t\t#H1_inf = H1_bar as x1 = 0, so from eq. 7.27\n",
+ "H1_inf = 420.;\n",
+ "\t\t\t#H2_inf = H2_bar as x2 = 0. so from eq 7.28\n",
+ "H2_inf = 640.;\n",
+ "print ' (c).'\n",
+ "print ' At infinite dilution:'\n",
+ "print ' H1 = %i J/mol'%H1_inf\n",
+ "print ' H2 = %i J/mol'%H2_inf\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (b).\n",
+ " Pure state enthalpies are:\n",
+ " H1 = 400 J/mol\n",
+ " H2 = 600 J/mol\n",
+ " (c).\n",
+ " At infinite dilution:\n",
+ " H1 = 420 J/mol\n",
+ " H2 = 640 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To calculate the partial molar volume of the components\n",
+ "\n",
+ "def V(m):\n",
+ " y = 1.003*10**-3 + 0.1662*10**-4*m + 0.177*10**-5*m**1.5 + 0.12*10**-6*m**2\n",
+ " return y\n",
+ "\n",
+ "# Variables\n",
+ "m = 0.1; \t\t\t#molality of solution (mol/kg)\n",
+ "\n",
+ "# Calculations\n",
+ "#To calculate the partial molar volume of the components\n",
+ "#Differentiating Eq. 7.29 with reference to m, we get\n",
+ "V1_bar = 0.1662*10**-4 + 0.177*1.5*10**-5*m**0.5 + 0.12*2*10**-6*m;\n",
+ "V_sol = V(m) \t\t\t#volume of aqueous soluttion\n",
+ "n1 = m;\n",
+ "n2 = 1000./18;\n",
+ "V2_bar = (V_sol - n1*V1_bar)/n2;\n",
+ "\n",
+ "# Results\n",
+ "print 'Partial molar volume of water = %4.3e cubic m/mol'%V2_bar\n",
+ "print ' Partial molar volume of NaCl = %4.3e cubic m/mol'%V1_bar\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Partial molar volume of water = 1.805e-05 cubic m/mol\n",
+ " Partial molar volume of NaCl = 1.748e-05 cubic m/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To estimate the solubility of oxygen in water at 298K\n",
+ "\n",
+ "# Variables\n",
+ "K = 4.4*10**4; \t\t\t#Henry's law constant (bar)\n",
+ "pp = 0.25; \t\t\t #partial pressure of oxygen in bar\n",
+ "M_O2 = 32.; \t\t\t#molecular wt of oxygen\n",
+ "M_water = 18.; \t\t\t#molecular wt of water\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#To estimate the solubility of oxygen in water at 298 K\n",
+ "#Using eq. 7.72 (Page no. 275)\n",
+ "x_O2 = pp/K; \t\t\t#mole fraction of O2\n",
+ "print 'Solubility of oxygen is %5.4e moles per mole of water'%x_O2\n",
+ "\n",
+ "#In mass units\n",
+ "sol_O2 = (x_O2*M_O2)/M_water;\n",
+ "print ' Solubility of oxygen in mass units is %4.3e kg oxygen per kg water'%sol_O2\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Solubility of oxygen is 5.6818e-06 moles per mole of water\n",
+ " Solubility of oxygen in mass units is 1.010e-05 kg oxygen per kg water\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To confirm that mixture conforms to Raoults Law and to determine Henrys Law constant?\n",
+ "\n",
+ "%pylab inline\t\t\t\n",
+ " \n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "import numpy\n",
+ "\n",
+ "# Variables\n",
+ "xb = array([0, 0.2, 0.4, 0.6, 0.8, 1.0])\n",
+ "pa_bar = [0.457 ,0.355, 0.243, 0.134, 0.049, 0];\n",
+ "pb_bar = [0,0.046, 0.108, 0.187, 0.288, 0.386];\n",
+ "\n",
+ "\n",
+ "#To confirm mixture conforms to Raoult's Law and to determine Henry's law constant\n",
+ "xa = 1 - xb\n",
+ "plot(xa,pa_bar)\n",
+ "plot(xa,pb_bar)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#For Henry's law plotting\n",
+ "x = [0,0.2, 0.4 ,0.6 ,0.8 ,1.0];\n",
+ "#Form the partial presures plot of component A and B\n",
+ "yh1 = [0,0,0,0,0,0]\n",
+ "yh1[0] = 0; \n",
+ "yh1[1] = 0.049; \t\t\t#For component A\n",
+ "for i in range(2,6):\n",
+ " yh1[i] = yh1[i-1]+(x[i]-x[i-1])*((yh1[1]-yh1[0])/(x[1]-x[0]))\n",
+ "\n",
+ "yh_2 = [0,0,0,0,0,0]\n",
+ "yh_2[5] = 0; \n",
+ "yh_2[4] = 0.046; \t\t\t#For component B\n",
+ "i = 3;\n",
+ "while (i>=0):\n",
+ " yh_2[i] = yh_2[i+1] + (x[i]-x[i+1])*((yh_2[5]-yh_2[4])/(x[5]-x[4]))\n",
+ " i = i-1;\n",
+ "\n",
+ "plot(x,yh1)\n",
+ "plot(x,yh_2)\n",
+ "\t\t\t#legend(\"Partial pressure \",\" \",\"Raoults law\",\" \",\"Henrys Law\"\n",
+ "show()\n",
+ "#(a)\n",
+ "print 'From the graph it can be inferred that, in the region where Raoults law is obeyed by A, the Henrys law is obeyed by B, and vice versa'\n",
+ "\n",
+ "#(b)\n",
+ "#Slope of Henry's law\n",
+ "print ' For component A, Ka = %f bar'%yh1[5]\n",
+ "print ' For component B, Kb = %f bar'%yh_2[0]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nI8EuhBA25v8DAAQCZcrB/UMAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2769cd0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the graph it can be inferred that, in the region where Raoults law is obeyed by A, the Henrys law is obeyed by B, and vice versa\n",
+ " For component A, Ka = 0.245000 bar\n",
+ " For component B, Kb = 0.230000 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To calculate activity and activity coeffecient of chloroform\n",
+ "\n",
+ "from numpy import array\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "xa = array([0, 0.2, 0.4, 0.6, 0.8, 1.0]);\n",
+ "Pa_bar = [0 ,0.049, 0.134, 0.243, 0.355, 0.457];\n",
+ "Pb_bar = [0.386 ,0.288, 0.187, 0.108, 0.046, 0];\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#To calculate activity and activity coeffecient of chloroform\n",
+ "xb = 1-xa;\n",
+ "Pbo = 0.386; \t\t\t#vapour pressure of pure chloroform\n",
+ "#(a). Based on standard state as per Lewis-Randall rule\n",
+ "\n",
+ "print 'Based on Lewis Randall Rule'\n",
+ "print ' Activity Activity coeffecient'\n",
+ "a = [0,0,0,0,0,0]\n",
+ "ac = [0,0,0,0,0,0]\n",
+ "for i in range(6):\n",
+ " a[i] = Pb_bar[i]/Pbo;\n",
+ " print ' %f'%a[i],\n",
+ " if(xb[i]==0):\n",
+ " print ' Not defined',\n",
+ " else:\n",
+ " ac[i] = a[i]/xb[i];\n",
+ " print ' %f'%ac[i]\n",
+ "\n",
+ "#(b). Based on Henry's Law \n",
+ "Kb = 0.217; \t\t\t#bar (From Example 7.11 Page no. 276)\n",
+ "\n",
+ "print '\\n\\n Based on Henrys Law'\n",
+ "print ' Activity Activity coeffecient'\n",
+ "for i in range(6):\n",
+ " a[i] = Pb_bar[i]/Kb;\n",
+ " print ' %f'%a[i],\n",
+ " if(xb[i]==0):\n",
+ " print ' Not defined',\n",
+ " else:\n",
+ " ac[i] = a[i]/xb[i];\n",
+ " print ' %f'%ac[i]\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Based on Lewis Randall Rule\n",
+ " Activity Activity coeffecient\n",
+ " 1.000000 1.000000\n",
+ " 0.746114 0.932642\n",
+ " 0.484456 0.807427\n",
+ " 0.279793 0.699482\n",
+ " 0.119171 0.595855\n",
+ " 0.000000 Not defined \n",
+ "\n",
+ " Based on Henrys Law\n",
+ " Activity Activity coeffecient\n",
+ " 1.778802 1.778802\n",
+ " 1.327189 1.658986\n",
+ " 0.861751 1.436252\n",
+ " 0.497696 1.244240\n",
+ " 0.211982 1.059908\n",
+ " 0.000000 Not defined\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To determine fugacity fugacity coeffecient Henrys Law constant and activity coeffecient\n",
+ "\n",
+ "# Variables\n",
+ "P = 20.; \t\t\t#pressure in bar\n",
+ "\n",
+ "# Calculations and Results\n",
+ "def f1(x1):\n",
+ " y = (50*x1)-(80*x1**2)+(40*x1**3)\n",
+ " return y\n",
+ "\n",
+ "#To determine fugacity fugacity coeffecient Henry's Law constant and activity coeffecient\n",
+ "\n",
+ "#(a)\n",
+ "#Fugacity of component in solution becomes fugacity of pure component when mole fraction approaches 1 i.e. \n",
+ "x1 = 1.;\n",
+ "f1_pure = f1(x1);\n",
+ "print '(a). Fugacity f1 of pure component 1 is %i bar'%f1_pure\n",
+ "\n",
+ "#(b)\n",
+ "phi = f1_pure/P;\n",
+ "print ' (b). Fugacity coeffecient is %f'%phi\n",
+ "\n",
+ "#(c)\n",
+ "#Henry's Law constant is lim (f1/x1)and x1 tends to 0 \n",
+ "x1 = 0;\n",
+ "K1 = 50 - (80*x1) + (40*x1**2);\n",
+ "print ' (c). Henrys Law constant is %i bar'%K1\n",
+ "\n",
+ "#(d)\n",
+ "print ' (d). This subpart is theoretical and does not involve any numerical computation'\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a). Fugacity f1 of pure component 1 is 10 bar\n",
+ " (b). Fugacity coeffecient is 0.500000\n",
+ " (c). Henrys Law constant is 50 bar\n",
+ " (d). This subpart is theoretical and does not involve any numerical computation\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To determine enthalpies at infinite dilution\n",
+ "\n",
+ "# Variables\n",
+ "H1_pure = 400.; \t\t\t#enthalpy of pure liquid 1 at 298 K and 1 bar (J/mol)\n",
+ "H2_pure = 600.; \t\t\t#enthalpy of pure liquid 2 (J/mol)\n",
+ "x1 = 0.;\n",
+ "\n",
+ "# Calculations\n",
+ "delH1_inf = 20*((1-x1)**2)*(2*x1+1);\n",
+ "H1_inf = H1_pure + delH1_inf; \t\t\t#(J/mol)\n",
+ "\n",
+ "#For infinite dilution of 2, x1 = 1 and delH2_inf = H2_bar\n",
+ "x1 = 1.;\n",
+ "delH2_inf = 40.*x1**3;\n",
+ "H2_inf = delH2_inf + H2_pure; \t\t\t#(J/mol)\n",
+ "\n",
+ "# Results\n",
+ "print 'Enthalpy at infinite dilution for component 1 is %i J/mol'%H1_inf\n",
+ "print ' Enthalpy at infinite dilution for component 2 is %i J/mol'%H2_inf\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy at infinite dilution for component 1 is 420 J/mol\n",
+ " Enthalpy at infinite dilution for component 2 is 640 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.19 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To determine change in entropy for the contents of the vessel\n",
+ "\n",
+ "# Variables\n",
+ "R = 8.314; \t\t\t#ideal gas constant\n",
+ "n1 = 100.; \t\t\t#moles of nitrogen\n",
+ "n2 = 100.; \t\t\t#moles of oxygen\n",
+ "\n",
+ "# Calculations\n",
+ "#To determine the change in entropy of the contents of the vessel\n",
+ "x1 = n1/(n1+n2);\n",
+ "x2 = n2/(n1+n2);\n",
+ "import math\n",
+ "\n",
+ "#Using eq. 7.122 (Page no. 292)\n",
+ "S = -R*(x1*math.log (x1) + x2*math.log (x2));\n",
+ "S_tot = S*(n1+n2);\n",
+ "\n",
+ "# Results\n",
+ "print 'Change in entropy of components are %f J/K'%S_tot\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy of components are 1152.565132 J/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To determine heat of formation of LiCl in 12 moles of water\n",
+ "\n",
+ "# Variables\n",
+ "Hf = -408.610; \t\t\t#heat of formation (kJ)\n",
+ "#For reaction 2\n",
+ "#LiCl + 12H2O --> LiCl(12H2O)\n",
+ "H_sol = -33.614; \t\t\t#heat of solution (kJ)\n",
+ "\n",
+ "#To determine heat of formation of LiCl in 12 moles of water\n",
+ "#Adding reaction 1 and 2% we get\n",
+ "\n",
+ "# Calculations\n",
+ "#Li + 1/2Cl2 + 12H2O --> LiCl(12H2O)\n",
+ "H_form = Hf+H_sol;\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of formation of LiCl in 12 moles of water is %f kJ'%H_form\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of formation of LiCl in 12 moles of water is -442.224000 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To calculate the free energy of mixing\n",
+ "\n",
+ "# Variables\n",
+ "R = 8.314; \t\t\t#ideal gas constant\n",
+ "n1 = 3.; \t\t\t#moles of hydrogen\n",
+ "n2 = 1.; \t\t\t#moles of nitrogen\n",
+ "T = 298.; \t\t\t#temperature in K\n",
+ "P1 = 1.; \t\t\t#pressure of hydrogen in bar\n",
+ "P2 = 3.; \t\t\t#pressure of nitrogen in bar\n",
+ "import math\n",
+ "\n",
+ "# Calculations\n",
+ "#To calculate the free energy of mixing\n",
+ "V1 = (n1*R*T)/(P1*10**5); \t\t\t#volume occupied by hydrogen\n",
+ "V2 = (n2*R*T)/(P2*10**5); \t\t\t#volume occupied by nitrogen\n",
+ "V = V1+V2; \t\t\t#total volume occupied\n",
+ "P = ((n1+n2)*R*T)/(V*10**5); \t\t\t#final pressure attained by mixture (bar)\n",
+ "G1 = R*T*(n1*math.log(P/P1) + n2*math.log(P/P2));\n",
+ "\n",
+ "#For step 2, using eq. 7.121 (Page no. 292)\n",
+ "x1 = n1/(n1+n2);\n",
+ "x2 = n2/(n1+n2);\n",
+ "G2 = (n1+n2)*R*T*(x1*math.log (x1) + x2*math.log (x2));\n",
+ "G = G1+G2; \t\t\t#free energy in J\n",
+ "\n",
+ "# Results\n",
+ "print 'The free energy of mixing when partition is removed is %f kJ'%(G/1000)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The free energy of mixing when partition is removed is -6.487935 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To calculate the mean heat capacity of 20 mol percent solution\n",
+ "\n",
+ "# Variables\n",
+ "C_water = 4.18*10**3; \t\t\t#heat capacity of water (J/kg K)\n",
+ "C_ethanol = 2.58*10**3; \t\t#heat capacity of ethanol (J/kg K)\n",
+ "G1 = -758.; \t\t\t#heat of mixing 20 mol percent ethanol water at 298 K(J/mol)\n",
+ "G2 = -415.; \t\t\t#heat of mixing 20 mol percent ethanol water at 323 K (J/mol)\n",
+ "n_wat = 0.8; \t\t\t#moles of water\n",
+ "n_eth = 0.2; \t\t\t#moles of ethanol\n",
+ "T1 = 323.; \t\t\t#initial temperature in K\n",
+ "T2 = 298.; \t\t\t#final temperature in K\n",
+ "\n",
+ "# Calculations\n",
+ "#Step 1: Water is cooled from 323 K t0 298 K\n",
+ "H1 = n_wat*18*C_water*(T2-T1)/1000; \t\t\t#(J)\n",
+ "\n",
+ "#Step 2: Ethanol is cooled from 323 to 298 K\n",
+ "H2 = n_eth*46*C_ethanol*(T2-T1)/1000; \t\t\t#(J)\n",
+ "\n",
+ "#Step 3: 0.8 mol water and 0.2 mol ethanol are mixed at 298 K\n",
+ "H3 = G1; \t\t\t#(J)\n",
+ "\n",
+ "#Step 4: \n",
+ "H = G2;\n",
+ "Cpm = (H-H1-H2-H3)/(T1-T2);\n",
+ "\n",
+ "# Results\n",
+ "print 'Mean heat capacity of solution is %f J/mol K'%Cpm\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean heat capacity of solution is 97.648000 J/mol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 7.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To find the final temperature attained\n",
+ "\n",
+ "# Variables\n",
+ "To = 298.; \t\t\t#initial temperature (K)\n",
+ "Cpm = 97.65; \t\t\t#Mean heat capacity of solution (J/mol K)\n",
+ "Hs = -758.; \t\t\t#heat of mixing (J/mol)\n",
+ "H = 0.;\n",
+ "\n",
+ "# Calculations\n",
+ "T = (H-Hs)/Cpm + To;\n",
+ "\n",
+ "# Results\n",
+ "print 'The final temperature attained by the mixing is %f K'%T\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final temperature attained by the mixing is 305.762417 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file