{
 "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": [
        "<matplotlib.figure.Figure at 0x59f38d0>"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}