{ "metadata": { "name": "", "signature": "sha256:c2f0eb9f813e96ecfb0ebcea9c89faad6a2b8ee530cc39d385b0a4ab04407ef5" }, "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": 9 }, { "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 *\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.2f 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\n", "Pressure is 66.75 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": 3 }, { "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 pylab import plot,show\n", "\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", "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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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }