summaryrefslogtreecommitdiff
path: root/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb
diff options
context:
space:
mode:
authorhardythe12015-04-07 15:58:05 +0530
committerhardythe12015-04-07 15:58:05 +0530
commitc7fe425ef3c5e8804f2f5de3d8fffedf5e2f1131 (patch)
tree725a7d43dc1687edf95bc36d39bebc3000f1de8f /Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb
parent62aa228e2519ac7b7f1aef53001f2f2e988a6eb1 (diff)
downloadPython-Textbook-Companions-c7fe425ef3c5e8804f2f5de3d8fffedf5e2f1131.tar.gz
Python-Textbook-Companions-c7fe425ef3c5e8804f2f5de3d8fffedf5e2f1131.tar.bz2
Python-Textbook-Companions-c7fe425ef3c5e8804f2f5de3d8fffedf5e2f1131.zip
added books
Diffstat (limited to 'Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb')
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb545
1 files changed, 545 insertions, 0 deletions
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb
new file mode 100755
index 00000000..3141af69
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb
@@ -0,0 +1,545 @@
+{
+ "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": {}
+ }
+ ]
+} \ No newline at end of file