{ "metadata": { "name": "", "signature": "sha256:01ffb1e6f2fdbc4d93c857ca2d13f94778cfb07d9a65a32061ca8d81d57cf8d5" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter 09: Ideal and Real Solutions" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.2, Page Number 202" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from math import log\n", "\n", "#Variable Declaration\n", "nb = 5.00 #Number of moles of Benzene, mol\n", "nt = 3.25 #Number of moles of Toluene, mol\n", "T = 298.15 #Temperature, K\n", "P = 1.0 #Pressure, bar\n", "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n", "\n", "#Calculations\n", "n = nb + nt\n", "xb = nb/n\n", "xt = 1. - xb\n", "dGmix = n*R*T*(xb*log(xb)+xt*log(xt))\n", "dSmix = -n*R*(xb*log(xb)+xt*log(xt))\n", "\n", "#Results\n", "print 'Gibbs energy change of mixing is %4.3e J'%dGmix\n", "print 'Gibbs energy change of mixing is < 0, hence the mixing is spontaneous'\n", "print 'Entropy change of mixing is %4.2f J/K'%dSmix" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Gibbs energy change of mixing is -1.371e+04 J\n", "Gibbs energy change of mixing is < 0, hence the mixing is spontaneous\n", "Entropy change of mixing is 45.99 J/K\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.3, Page Number 205" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "nb = 5.00 #Number of moles of Benzene, mol\n", "nt = 3.25 #Number of moles of Toluene, mol\n", "T = 298.15 #Temperature, K\n", "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n", "P0b = 96.4 #Vapor pressure of Benzene, torr\n", "P0t = 28.9 #Vapor pressure of Toluene, torr\n", "\n", "#Calculations\n", "n = nb + nt\n", "xb = nb/n\n", "xt = 1. - xb\n", "P = xb*P0b + xt*P0t\n", "y = (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n", "yt = 1.-yb\n", "\n", "#Results\n", "print 'Total pressure of the vapor is %4.1f torr'%P\n", "print 'Benzene fraction in vapor is %4.3f '%yb\n", "print 'Toulene fraction in vapor is %4.3f '%yt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Total pressure of the vapor is 69.8 torr\n", "Benzene fraction in vapor is 0.837 \n", "Toulene fraction in vapor is 0.163 \n" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.4, Page Number 206" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sympy import symbols, solve\n", "#Variable Declaration\n", "nb = 5.00 #Number of moles of Benzene, mol\n", "nt = 3.25 #Number of moles of Toluene, mol\n", "T = 298.15 #Temperature, K\n", "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n", "P0b = 96.4 #Vapor pressure of Benzene, torr\n", "P0t = 28.9 #Vapor pressure of Toluene, torr\n", "nv = 1.5 #moles vaporized, mol\n", "\n", "#Calculations\n", "n = nb + nt\n", "nl = n - nv\n", "zb = nb/n\n", "\n", "x,y, P = symbols('x y P')\n", "e1 = nv*(y-zb)-nl*(zb-x)\n", "print 'Mass Balance:', e1\n", "e2 = P - (x*P0b + (1-x)*P0t)\n", "print 'Pressure and x:',e2\n", "e3 = y - (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n", "print 'Pressure and y:', e3\n", "equations = [e1,e2,e3]\n", "sol = solve(equations)\n", "\n", "#Results\n", "for i in sol:\n", " if ((i[x] > 0.0 and i[x] <1.0) and (i[P] > 0.0) and (i[y]>zb and i[y]<1.0)):\n", " print 'Pressure is %4.1f torr' %i[P]\n", " print 'Mole fraction of benzene in liquid phase %4.3f' %i[x]\n", " print 'Mole fraction of benzene in vapor phase %4.3f' %i[y]\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Mass Balance: 6.75*x + 1.5*y - 5.0\n", "Pressure and x: P - 67.5*x - 28.9\n", "Pressure and y: y - 0.0148148148148148*(96.4*P - 2785.96)/P" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Pressure is 66.8 torr" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Mole fraction of benzene in liquid phase 0.561\n", "Mole fraction of benzene in vapor phase 0.810\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.6, Page Number 212" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "m = 4.50 #Mass of substance dissolved, g\n", "ms = 125.0 #Mass of slovent (CCl4), g\n", "TbE = 0.65 #Boiling point elevation, \u00b0C\n", "Kf, Kb = 30.0, 4.95 #Constants for freezing point elevation \n", " # and boiling point depression for CCl4, K kg/mol\n", "Msolvent = 153.8 #Molecualr wt of solvent, g/mol\n", "#Calculations\n", "DTf = -Kf*TbE/Kb\n", "Msolute = Kb*m/(ms*1e-3*TbE)\n", "nsolute = m/Msolute\n", "nsolvent = ms/Msolvent \n", "x = 1.0 - nsolute/(nsolute + nsolvent)\n", "\n", "#Results\n", "print 'Freezing point depression %5.2f K'%DTf\n", "print 'Molecualr wt of solute %4.1f g/mol'%Msolute\n", "print 'Vapor pressure of solvent is reduced by a factor of %4.3f'%x" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Freezing point depression -3.94 K\n", "Molecualr wt of solute 274.2 g/mol\n", "Vapor pressure of solvent is reduced by a factor of 0.980\n" ] } ], "prompt_number": 69 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.7, Page Number 214" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "csolute = 0.500 #Concentration of solute, g/L\n", "R = 8.206e-2 #Gas constant L.atm/(mol.K)\n", "T = 298.15 #Temperature of the solution, K\n", "\n", "#Calculations\n", "pii = csolute*R*T\n", "\n", "#Results\n", "print 'Osmotic pressure %4.2f atm'%pii\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Osmotic pressure 12.23 atm\n" ] } ], "prompt_number": 70 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.8, Page Number 220" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n", "pCS2 = 358.3 #Partial pressure of CS2, torr\n", "p0CS2 = 512.3 #Total pressure, torr\n", "\n", "#Calculations\n", "alpha = pCS2/p0CS2\n", "gama = alpha/xCS2\n", "\n", "#Results\n", "print 'Activity of CS2 %5.4f atm'%alpha\n", "print 'Activity coefficinet of CS2 %5.4f atm'%gama" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Activity of CS2 0.6994 atm\n", "Activity coefficinet of CS2 1.9971 atm\n" ] } ], "prompt_number": 72 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.9, Page Number 220" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n", "pCS2 = 358.3 #Partial pressure of CS2, torr\n", "kHCS2 = 2010. #Total pressure, torr\n", "\n", "#Calculations\n", "alpha = pCS2/kHCS2\n", "gama = alpha/xCS2\n", "\n", "#Results\n", "print 'Activity of CS2 %5.4f atm'%alpha\n", "print 'Activity coefficinet of CS2 %5.4f atm'%gama" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Activity of CS2 0.1783 atm\n", "Activity coefficinet of CS2 0.5090 atm\n" ] } ], "prompt_number": 73 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.10, Page Number 221" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "rho = 789.9 #Density of acetone, g/L\n", "n = 1.0 #moles of acetone, mol\n", "M = 58.08 #Molecular wt of acetone, g/mol\n", "kHacetone = 1950 #Henrys law constant, torr\n", "#Calculations\n", "H = n*M*kHacetone/rho\n", "\n", "#Results\n", "print 'Henrys constant = %5.2f torr'%H" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Henrys constant = 143.38 torr\n" ] } ], "prompt_number": 76 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.11, Page Number 221" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "m = 0.5 #Mass of water, kg\n", "ms = 24.0 #Mass of solute, g\n", "Ms = 241.0 #Molecular wt of solute, g/mol\n", "Tfd = 0.359 #Freezinf point depression, \u00b0C or K\n", "kf = 1.86 #Constants for freezing point depression for water, K kg/mol\n", "\n", "#Calculations\n", "msolute = ms/(Ms*m)\n", "gama = Tfd/(kf*msolute)\n", "\n", "#Results\n", "print 'Activity coefficient = %4.3f'%gama" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Activity coefficient = 0.969\n" ] } ], "prompt_number": 81 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.12, Page Number 223" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Variable Declaration\n", "m = 70.0 #Mass of human body, kg\n", "V = 5.00 #Volume of blood, L\n", "HN2 = 9.04e4 #Henry law constant for N2 solubility in blood, bar\n", "T = 298.0 #Temperature, K\n", "rho = 1.00 #density of blood, kg/L\n", "Mw = 18.02 #Molecualr wt of water, g/mol\n", "X = 80 #Percent of N2 at sea level\n", "p1, p2 = 1.0, 50.0 #Pressures, bar\n", "R = 8.314e-2 #Ideal Gas constant, L.bar/(mol.K)\n", "#Calculations\n", "nN21 = (V*rho*1e3/Mw)*(p1*X/100)/HN2\n", "nN22 = (V*rho*1e3/Mw)*(p2*X/100)/HN2\n", "V = (nN22-nN21)*R*T/p1\n", "#Results\n", "print 'Number of moles of nitrogen in blood at 1 and 50 bar are %3.2e,%3.3f mol'%(nN21,nN22)\n", "print 'Volume of nitrogen released from blood at reduced pressure %4.3f L'%V" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Number of moles of nitrogen in blood at 1 and 50 bar are 2.46e-03,0.123 mol\n", "Volume of nitrogen released from blood at reduced pressure 2.981 L\n" ] } ], "prompt_number": 90 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example Problem 9.14, Page Number 226" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import arange,array,ones,linalg, divide\n", "from matplotlib import pyplot\n", "%matplotlib inline\n", "#Variable Declaration\n", "cCB = array([1e-6,2e-6,3e-6,5e-6,10e-6])\n", "nu = array([0.006,0.012,0.018,0.028,0.052])\n", "y = nu/cCB\n", "print y\n", "xlim(0.0, 0.06)\n", "ylim(5000,6300)\n", "#Calculations\n", "A = array([ nu, ones(size(nu))])\n", "print A\n", "# linearly generated sequence\n", "\n", "w = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n", "print 'slope %8.1f'%w[0]\n", "print 'Intercept %8.1f' %w[1]\n", "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n", "# plotting the line\n", "line = w[0]*nu+w[1] # regression line\n", " \n", "#Results\n", "plot(nu,line,'r-',nu,y,'o')\n", "xlabel('$ \\overline{\\upsilon} $')\n", "ylabel('$ \\overline{\\upsilon}/C_{CB}, M^{-1} $')\n", "#ylabel('$ \\dfrac{\\overline{\\upsilon}}{C_{CB}} $')\n", "show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 6000. 6000. 6000. 5600. 5200.]\n", "[[ 0.006 0.012 0.018 0.028 0.052]\n", " [ 1. 1. 1. 1. 1. ]]" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "slope -19188.2\n", "Intercept 6205.2\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n9ASq8UBFKwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }