summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrupti Kini2016-10-09 23:30:31 +0600
committerTrupti Kini2016-10-09 23:30:31 +0600
commit563b1b81114cea8255d47fa64711f90824a65553 (patch)
treebd23e512f164f7e50260e0cb9588b2f04e8c65e6
parent7ab305359109d64eef3aca8be20eba1d4c9dfcc8 (diff)
downloadPython-Textbook-Companions-563b1b81114cea8255d47fa64711f90824a65553.tar.gz
Python-Textbook-Companions-563b1b81114cea8255d47fa64711f90824a65553.tar.bz2
Python-Textbook-Companions-563b1b81114cea8255d47fa64711f90824a65553.zip
Added(A)/Deleted(D) following books
A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter-2.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_3.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_4.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_5.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_95An8jL.png A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_ESGwoHw.png A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_HPwfPLe.png
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter-2.ipynb791
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_3.ipynb284
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_4.ipynb566
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_5.ipynb259
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_95An8jL.pngbin0 -> 10281 bytes
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_ESGwoHw.pngbin0 -> 9073 bytes
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_HPwfPLe.pngbin0 -> 22472 bytes
7 files changed, 1900 insertions, 0 deletions
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter-2.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter-2.ipynb
new file mode 100644
index 00000000..d3ab93ed
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter-2.ipynb
@@ -0,0 +1,791 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 2 : Molecular Diffusion"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.1 pgno:10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Molar average velocity of gas mixture is: 0.0303 m/s\n",
+ "Mass average velocity of gas mixture is: 0.029 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Calculation of average velocities\n",
+ "\n",
+ "N2 = 0.05 #mole fraction of Nitrogen denoted as 1\n",
+ "H2 = 0.15 #mole fraction of Hydrogen denoted as 2\n",
+ "NH3 = 0.76 #mole fraction of Ammonia denoted as 3\n",
+ "Ar = 0.04 #mole fraction of Argon denoted as 4\n",
+ "u1 = 0.03\n",
+ "u2 = 0.035\n",
+ "u3 = 0.03\n",
+ "u4 = 0.02\n",
+ "#Calculating molar average velocity\n",
+ "U = N2*u1 + H2*u2 + NH3*u3 + Ar*u4\n",
+ "print 'Molar average velocity of gas mixture is: %.4f m/s'%U\n",
+ "#Calculating of mass average velocity\n",
+ "M1 = 28\n",
+ "M2 = 2\n",
+ "M3 = 17\n",
+ "M4 = 40\n",
+ "M = N2*M1 + H2*M2 + NH3*M3 + Ar*M4\n",
+ "u = (1/M)*(N2*M1*u1 + H2*M2*u2 + NH3*M3*u3 + Ar*M4*u4)\n",
+ "print 'Mass average velocity of gas mixture is: %.3f m/s'%u"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.2 pgno:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Time for complete evaporation is: 15.93 hours\n",
+ "(b) Time for disappearance of water is: 8.87 hours\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusion of A through non-diffusing B\n",
+ "\n",
+ "from math import log\n",
+ "from math import exp\n",
+ "import numpy as np\n",
+ "\n",
+ "#Calcualtion for (a) part\n",
+ "#calculating vapor pressure of water at 301K\n",
+ "pv = exp(13.8573 - (5160.2/301)) #in bar\n",
+ "#wet-bulb temperature is 22.5 degree centigrade\n",
+ "#calculating mean air-film temperature\n",
+ "Tm = ((28+22.5)/2)+273 #in kelvin\n",
+ "#calculating diffusion coefficient\n",
+ "Dab = ((0.853*(30.48**2))*((298.2/273)**1.75))/(3600*10000) #in m^2/s\n",
+ "l = 2.5e-3 #in m\n",
+ "P = 1.013 #in bar\n",
+ "R = 0.08317 #Gas constant\n",
+ "pAo = exp(13.8573 - (5160.2/295.2)) #vapor pressure of water at the wet-bulb temperature, 22.2C\n",
+ "pAl = 0.6*round(pv,4)\n",
+ "Na = (((round(Dab,7)*P)/(R*298.2*l))*log((P-pAl)/(P-round(pAo,3))))*18 #in kg/m^2s\n",
+ "#amount of water per m^2 of floor area is\n",
+ "thickness = 2e-3\n",
+ "Amount = thickness*1 #in m^3 \n",
+ "#density of water is 1000kg/m^3\n",
+ "#therefore in kg it is\n",
+ "amount = Amount*1000\n",
+ "Time_for_completion = amount/Na #in seconds\n",
+ "Time_for_completion_hours = Time_for_completion/3600\n",
+ "print '(a) Time for complete evaporation is: %.2f'%Time_for_completion_hours,'hours'\n",
+ "\n",
+ "#Calculation for (b) part\n",
+ "water_loss = 0.1 #in kg/m^2.h\n",
+ "water_loss_by_evaporation = Na*3600\n",
+ "total_water_loss = water_loss + water_loss_by_evaporation\n",
+ "time_for_disappearance = amount/total_water_loss\n",
+ "print '(b) Time for disappearance of water is: %0.2f'%time_for_disappearance,'hours'\n",
+ "#Answers may vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.3 pgno:17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The molar flux of Ammonia is:1.922E-05 gmol/cm^2.s\n",
+ "(b) and (c)\n",
+ "Velocity of A is 0.522 cm/s\n",
+ "Velocity of B is 0.000 cm/s\n",
+ "Mass average velocity of A is 0.439 cm/s\n",
+ "Molar average velocity of A is 0.47 cm/s\n",
+ "(d) Molar flux of NH3 is 3.062E-06 gmol/cm^2.s\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.text.Text at 0x7fe6978>"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x6e11668>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Calculation of flux and velocity\n",
+ "\n",
+ "%matplotlib inline\n",
+ "from math import log\n",
+ "from math import exp\n",
+ "import numpy as np\n",
+ "from matplotlib import pyplot as plt\n",
+ "#calculation for (a) part\n",
+ "l = 1 #thickness of air in cm\n",
+ "pAo = 0.9 #in atm\n",
+ "pAl = 0.1 #in atm\n",
+ "Dab = 0.214 #in cm^2/s\n",
+ "T = 298 #in K\n",
+ "P = 1 #in atm\n",
+ "R = 82.1 #in (cm^3)(atm)/(K)(gmol)\n",
+ "#calculating molar flux of ammonia\n",
+ "Na = ((Dab*P)/(R*T*l))*log((P-pAl)/(P-pAo))\n",
+ "print '(a) The molar flux of Ammonia is:%0.3E'%Na,'gmol/cm^2.s'\n",
+ "\n",
+ "#calculation for (b) and (c) part\n",
+ "Nb = 0 #air is non-diffusing\n",
+ "U = (Na/(P/(R*T))) #molar average velocity\n",
+ "yA = pAo/P\n",
+ "yB = pAl/P\n",
+ "uA = U/yA #\n",
+ "uB = 0 #since Nb=0\n",
+ "Ma = 17\n",
+ "Mb = 29\n",
+ "M = Ma*yA + Mb*yB\n",
+ "u = uA*yA*Ma/M #since u =(uA*phoA + uB*phoB)/pho\n",
+ "print '(b) and (c)'\n",
+ "print 'Velocity of A is %0.3f'%uA,'cm/s'\n",
+ "print 'Velocity of B is %0.3f'%uB,'cm/s'\n",
+ "print 'Mass average velocity of A is %0.3f'%u,'cm/s'\n",
+ "print 'Molar average velocity of A is %0.2f'%U,'cm/s'\n",
+ "\n",
+ "#calculation for (d) part\n",
+ "Ca = pAo/(R*T)\n",
+ "Ia = Ca*(uA - u) #molar flux of NH3 relative to an observer moving\n",
+ " #with the mass average velocity \n",
+ "print '(d) Molar flux of NH3 is %0.3E'%Ia,'gmol/cm^2.s'\n",
+ "\n",
+ "z = []\n",
+ "pa =[]\n",
+ "for i in np.arange(0,1,0.01):\n",
+ " z.append(i)\n",
+ " \n",
+ "for i in range(0,len(z)):\n",
+ " pa.append(1-(0.1*exp(2.197*z[i])))\n",
+ " \n",
+ "from matplotlib.pyplot import plot\n",
+ "plot(z,pa);\n",
+ "plt.xlabel('z(cm)');\n",
+ "plt.ylabel('pA(atm)');\n",
+ "plt.title('Partial pressure distribution of A for diffusion of A through non-diffusing B \\n',fontsize=14);\n",
+ "#Answers may vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 2.4 pgno:19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Rate of diffusion of oxygen 7.151E-10 kmol/s\n",
+ "(b) The partial pressure gradient of oxygen at midway in diffusion path is: -4.25 bar/m\n",
+ "(c)\n",
+ "Molar average velocity and diffusion velocities at \"midway\"\n",
+ "Molar average velocity in z-direction is 9.9E-05 m/s\n",
+ "The diffusion velocity of oxygen 7.9E-04 m/s\n",
+ "The diffusion velocity of Nitrogen -9.9E-05 m/s\n",
+ "Molar average velocity and diffusion velocities at \"top of tube\"\n",
+ "Molar average velocity in z-direction is 9.9E-05 m/s\n",
+ "The diffusion velocity of oxygen 3.72E-04 m/s\n",
+ "The diffusion velocity of Nitrogen -9.9E-05 m/s\n",
+ "Molar average velocity and diffusion velocities at \"bottom of tube\"\n",
+ "Molar average velocity in z-direction is 9.9E-05 m/s\n",
+ "The diffusion velocity of oxygen is not infinity\n",
+ "The diffusion velocity of Nitrogen -9.9E-05 m/s\n",
+ "(d)\n",
+ "New molar flux of (A) 4.95E-06 kmol/m^2.s\n",
+ "New molar flux of (B) 7.19E-06 kmol/m^2.s\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nCeZxwo7sx7WM+yvC8niRUNp6lZAwUqXPfwhhmxpLOEfTGjjIw7Vj2Xw3HXf/B/BbQoOotwjnif5C\n2BlmHrnu60vquJcRWtOdR2iF9gwhKc7OMtqNhG3vdsLvNOq378jkrqi7k3CuaCnwUMr33xBqeh4g\nJLC7Ca1ar0sZJnV5vk04TXAMYT26CrjK3W/JNHyOfulmEy5cf4xwyctMwj6t2umExPQGITneSUhI\nqXJuYw1la59eaTrMbCDhiGdTL5Ert0VKjZk9BDR39yPjjkWCqET2I3fvE3csuRSqiq9UZKomE5F6\nMLP1CNeUjSPUFPyI0BAg0+1wRHJq6gmqaRYfRQrDCefxRhBuezaDcL2gbtos9dJkq/hERCTZSuJx\nGyIi0vQoQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmI\nSCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCIpQYmISCKV9CPfzUyPAxYRqQd3\nt7hjyKXkS1Durs6dkSNHxh5DUjotCy0LLYvsXako+QQlIiLlSQlKREQSSQmqTFRUVMQdQmJoWdTQ\nsqihZVF6rJTqI9OZmZdy/CIicTAzXI0kRERE6kcJSkREEkkJSkREEkkJSkREEkkJSkREEkkJSkRE\nEkkJSkREEkkJSkREEkkJSkREEkkJSkREEkkJSkREEkkJSkREEinRCcrMDjKz981supldGHc8IiJS\nPIm9m7mZNQOmAz8AFgKvA4Pd/f2UYXQ3cxGROtLdzBuuHzDD3ee6+ypgDHBk+kArVoBylIhI+WkR\ndwBZdALmpXyeT0haa2nXDlatgpYtoXXr0LVqFV7btKnp16ZN9m699dZ+n95973s1r9Vd9TiW+OMQ\nEZHSk+QElZeLLx6FO6xeDXvtVUG/fhWsXAnLl4fS1YoVa7//9tu1+337bXi/fDksWRI+Z+u++QaW\nLat5v3JlSFRt22bu1l+/5rW6a9du3fcbbBDeV7+2KPl/RkSSorKyksrKyrjDqLMkn4PqD4xy94Oi\nzxcB7u7XpgwT+zmo1atDoqpOXKnd11/XvP/qq7X7ffVV5m7p0vDapk1IVtXdhhuG1/btw/v27dft\nNtqopmvbViU7EcmsVM5BJTlBNQc+IDSS+Bh4Dfixu09LGSb2BFUI7iHhLV0KX34ZutT3X34ZSnvV\n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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x6f684e0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Flux, velocity and pressure gradient\n",
+ "\n",
+ "#calculation of (a) part\n",
+ "#given data\n",
+ "from math import log\n",
+ "from math import pi\n",
+ "from math import exp\n",
+ "import numpy as np\n",
+ "from matplotlib import pyplot as plt\n",
+ "T = 298 #in kelvin\n",
+ "P = 1.013 #in bar\n",
+ "pAl = 0 #partial pressure of oxygen(A) at liquid surface\n",
+ "pAo = 0.21*1.013 #partial pressure of oxygen at open mouth\n",
+ "l = 0.05 #length of diffusion path in m\n",
+ "Dab = 2.1e-5 #diffusivity in m^2/s\n",
+ "R = 0.08317 #in m^3.bar.kmol.K\n",
+ "Na = Dab*P*log((P-pAl)/(P-pAo))/(R*T*l) #in kmol/m^2.s\n",
+ "area = (pi/4)*(0.015)**2\n",
+ "rate = area*Na\n",
+ "print '(a) Rate of diffusion of oxygen %0.3E'%rate,'kmol/s'\n",
+ "z = []\n",
+ "pa =[]\n",
+ "for i in np.arange(0,1,0.01):\n",
+ " z.append(i)\n",
+ " \n",
+ "for i in range(0,len(z)):\n",
+ " pa.append(P-(P-pAo)*exp((R*T*Na*z[i])/(Dab*P)))\n",
+ " \n",
+ "from matplotlib.pyplot import plot\n",
+ "plt.plot(z,pa);\n",
+ "plt.xlabel('z(cm)');\n",
+ "plt.ylabel('pA(atm)');\n",
+ "plt.title('Partial pressure distribution of A along the diffusion path \\n',fontsize=14);\n",
+ "\n",
+ "#calculation of (b) part\n",
+ "z = 0.025 #diffusion path\n",
+ "pA = 0.113 #in bar\n",
+ "#we have to find partial pressure gradient of oxygen at mid way of diffusion path\n",
+ "#let dpA/dz = ppd\n",
+ "ppd = -(R*T*round(Na,8)*(P-pA))/(Dab*P)\n",
+ "print '(b) The partial pressure gradient of oxygen at midway in diffusion path is: %0.2f'%ppd,'bar/m'\n",
+ "\n",
+ "#calculation of (c) part\n",
+ "uA = Na*(R*T/pA) #velocity of oxygen\n",
+ "uB = 0 #since nitrogen is non-diffusing hence Nb = 0\n",
+ "U = pA*uA/P #since U=1/C*(uA*Ca + uB*Cb)\n",
+ "vAd = uA - U #diffusion velocity of oxygen\n",
+ "vBd = uB - U #diffusion velocity of nitrogen\n",
+ "print '(c)'\n",
+ "print 'Molar average velocity and diffusion velocities at \"midway\"'\n",
+ "print 'Molar average velocity in z-direction is %0.1E'%U,'m/s'\n",
+ "print 'The diffusion velocity of oxygen %0.1E'%vAd,'m/s'\n",
+ "print 'The diffusion velocity of Nitrogen %0.1E'%vBd,'m/s'\n",
+ "#at z=0(at top of tube)\n",
+ "uA = Na*(R*T/pAo)\n",
+ "uB = 0\n",
+ "U = pAo*uA/P\n",
+ "vAd = uA - U\n",
+ "vBd = uB - U\n",
+ "print 'Molar average velocity and diffusion velocities at \"top of tube\"'\n",
+ "print 'Molar average velocity in z-direction is %0.1E'%U,'m/s'\n",
+ "print 'The diffusion velocity of oxygen %0.2E'%vAd,'m/s'\n",
+ "print 'The diffusion velocity of Nitrogen %0.1E'%vBd,'m/s'\n",
+ "#at z=0.05(at bottom of tube)\n",
+ "#uA = inf\n",
+ "uB = 0\n",
+ "U = pAo*uA/P\n",
+ "vAd = uA - U\n",
+ "vBd = uB - U\n",
+ "print 'Molar average velocity and diffusion velocities at \"bottom of tube\"'\n",
+ "print 'Molar average velocity in z-direction is %0.1E'%U,'m/s'\n",
+ "print 'The diffusion velocity of oxygen is not infinity'\n",
+ "print 'The diffusion velocity of Nitrogen %0.1E'%vBd,'m/s'\n",
+ "\n",
+ "#calculation of (d) part\n",
+ "V = -2*U\n",
+ "pA = 0.113\n",
+ "Nad = round(Na,8) - V*(pA/(R*T))\n",
+ "Nbd = 0 - (P - pA)*V/(R*T)\n",
+ "print '(d)'\n",
+ "print 'New molar flux of (A) %0.2E'%Nad,'kmol/m^2.s'\n",
+ "print 'New molar flux of (B) %0.2E'%Nbd,'kmol/m^2.s'\n",
+ "#Answers may vary due to round off errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.5 pgno:21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The air-film thickness is :0.00193 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusion with changing bulk concentration\n",
+ "\n",
+ "from math import log\n",
+ "#given data\n",
+ "area = 3*4 #in m^2\n",
+ "mperarea = 3.0/12 #in kg/m^2\n",
+ "#part (a)\n",
+ "P = 1.013 #in bar\n",
+ "Dab = 9.95e-6 #in m^2/s\n",
+ "R = 0.08317 #in m^3.bar./K.kmol\n",
+ "T = 273+27 #in K\n",
+ "#let d=1\n",
+ "d = 1 #in m\n",
+ "pAo = 0.065 #partial pressure of alcohol on liquid surface\n",
+ "pAd = 0 #partial pressure over d length of stagnant film of air\n",
+ "Na = (Dab*P*log((P-pAd)/(P-pAo)))/(R*T*d) #in kmol/m^2.s\n",
+ "Na = Na*60 #in kg/m^2.s\n",
+ "flux = mperarea/(5*60) #since the liquid evaporates completely in 5 minutes\n",
+ "#now we have to find the value of d\n",
+ "d = Na/flux\n",
+ "print '(a) The air-film thickness is :%0.5f'%d,'m'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.6 pgno:24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a)\n",
+ "The steady-state flux is: 3.35E-06 kmol/m^2.s\n",
+ "The rate of transport of N2 from vessel 1 to 2: 6.6E-09 kmol/s\n",
+ "(b)\n",
+ "The flux and the rate of transport of oxygen is: -3.35E-06 kmol/m^2.s\n",
+ "(c)\n",
+ "Partial pressure at a point 0.05m from vessel 1 is: 1.2 atm\n",
+ "(d)\n",
+ "Net or total mass flux: -1.340E-05 kmol/m^2.s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Equimolar counterdiffusion\n",
+ "\n",
+ "from math import pi\n",
+ "#given data\n",
+ "#part (a)\n",
+ "Dab = 0.23e-4*0.5*(293.0/316)**1.75 #in m^2/s\n",
+ "pA1 = 2*0.8 #in atm\n",
+ "pA2 = 2*0.2 #in atm\n",
+ "l = 0.15 #in m\n",
+ "R = 0.0821 #in m^3.atm./K.kmol\n",
+ "T = 293 #in K\n",
+ "Ma = 28\n",
+ "Mb = 32\n",
+ "Na = Dab*(pA1-pA2)/(R*T*l) #in kmol/m^2.s\n",
+ "area = pi/4*(0.05)**2 #in m^2\n",
+ "rate = area*Na\n",
+ "print '(a)'\n",
+ "print 'The steady-state flux is: %0.2E'%Na,'kmol/m^2.s'\n",
+ "print 'The rate of transport of N2 from vessel 1 to 2: %0.1E'%rate,'kmol/s'\n",
+ "\n",
+ "#part (b)\n",
+ "Nb = -Na\n",
+ "print '(b)'\n",
+ "print 'The flux and the rate of transport of oxygen is: %0.2E'%Nb,'kmol/m^2.s'\n",
+ "\n",
+ "#part (c)\n",
+ "#let dpA/dz = ppg\n",
+ "dz = 0.05 #in m\n",
+ "ppg = (pA2 - pA1)/l #in atm/m\n",
+ "pA = pA1 + (ppg)*dz #in atm\n",
+ "print '(c)'\n",
+ "print 'Partial pressure at a point 0.05m from vessel 1 is: %0.1f'%pA,'atm'\n",
+ "\n",
+ "#part (d)\n",
+ "nt = Ma*Na + Mb*Nb\n",
+ "print '(d)'\n",
+ "print 'Net or total mass flux: %0.3E'%nt,'kmol/m^2.s'\n",
+ "#Answers may vary due to round off errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.7 pgno:25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Methanol flux: 4.64e-05 kmol/m^2.s\n",
+ "Water flux: -4.06e-05 kmol/m^2.s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Non-equimolar counterdiffusion in distillation of a binary mixture\n",
+ "\n",
+ "from math import log\n",
+ "#given data\n",
+ "Ha = 274.6*32 #molar latent heat of methanol(a)\n",
+ "Hb = 557.7*18 #molar latent heat of water(b)\n",
+ "yAl = 0.76 #mole fraction of methanol in the vapour\n",
+ "yAo = 0.825 #mole fraction of methanol in the vapour at the liquid-vapour interface\n",
+ "P = 1 #in atm\n",
+ "l = 1e-3 #in m\n",
+ "T =344.2 #in K\n",
+ "R = 0.0821 #m^3.atm./K.kmol\n",
+ "Dab = 1.816e-5 #in m^2/s\n",
+ "Na = Dab*P*log((1-0.1247*yAl)/(1-0.1247*yAo))/(0.1247*R*T*l)\n",
+ "print 'Methanol flux: %0.2e'%Na,'kmol/m^2.s'\n",
+ "Nb = -(Ha/Hb)*Na\n",
+ "print 'Water flux: %0.2e'%Nb,'kmol/m^2.s'\n",
+ "#Answers may vary due to round off errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.8 pgno:27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of pA1 is 0.937 atm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Equimolar counterdiffusion in an interconnected system\n",
+ "\n",
+ "#given values\n",
+ "from math import exp\n",
+ "V1 = 3000 #in cm^3\n",
+ "V2 = 4000 #in cm^3\n",
+ "Dab = 0.23 #in cm^2/s\n",
+ "Dba = 0.23 #in cm^2/s\n",
+ "l1 = 4 #in cm\n",
+ "d1 = 0.5 #in cm\n",
+ "l2 = 2 #in cm\n",
+ "d2 = 0.3 #in cm\n",
+ "pA3 = 1 #in atm\n",
+ "#unknowns\n",
+ "# pA1 and pA2\n",
+ "# dpA1bydt = (Dab/V1*l1)*((pA1)-(pA2))*((math.pi*(d1**2))/4)\n",
+ "#on integrating using Laplace trandformation\n",
+ "# initial conditions\n",
+ "t=18000 #in seconds\n",
+ "pA1 = 1-0.57*(exp((-1.005)*(10**(-6))*t)-exp((-7.615)*(10**(-6))*t))\n",
+ "print 'Value of pA1 is %0.3f'%pA1,'atm'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 2.10 pgno:34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of flux of water vapour: 2.96E-05 kmol/m^2.s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusion of only one component in a three-component mixture\n",
+ "\n",
+ "#given values\n",
+ "from math import log\n",
+ "y1l = 0 #mol fraction of dry air\n",
+ "y10 = (17.53/760) #mol fraction of water\n",
+ "l = 1.5 #in mm\n",
+ "C = 0.0409 #in kmol/m^3 : calculated by P/RT\n",
+ "D12 = 0.923 #Diffusivity of hydrogen over water\n",
+ "D13 = 0.267 #Diffusivity of oxygen over water\n",
+ "y2 = 0.6 #mole fraction of hydrogen\n",
+ "y3 = 0.4 #mole fraction of oxygen\n",
+ "D1m = 1/((y2/D12)+(y3/D13)) #calculating mean diffusivity\n",
+ "Ni = (D1m*C*1000/(l*10000))*log((1-y1l)/(1-y10))\n",
+ "print 'Value of flux of water vapour: %0.2E'%Ni,'kmol/m^2.s'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.11 pgno:35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Flux of ethane 4.804E-05 gmol/cm^2.s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Multicomponent diffusion\n",
+ "\n",
+ "from math import log\n",
+ "#given data\n",
+ "y1 = 0.4 #mole fraction of ethane(1)\n",
+ "y2 = 0.3 #mole fraction of ethylene(2)\n",
+ "y3 = 0.3 #mole fraction of hydrogen(3)\n",
+ "#calculating D13\n",
+ "#The Lennard-Jones parameters are\n",
+ "sigma1 = 4.443 #in angstrom\n",
+ "sigma2 = 4.163 #in angstrom\n",
+ "sigma3 = 2.827 #in angstrom\n",
+ "e1byk = 215.7\n",
+ "e2byk = 224.7\n",
+ "e3byk = 59.7\n",
+ "sigma13 = (sigma1 + sigma3)/2 #in angstrom\n",
+ "e13byk = (e1byk*e3byk)**0.5\n",
+ "kTbye13 = 993/113.5\n",
+ "ohmD13 = 0.76 #from collision integral table\n",
+ "D13 = ((0.001858)*(993**1.5)*((1.0/30)+(1.0/2))**0.5)/((2)*(sigma13**2)*(ohmD13))\n",
+ "#calculating D23\n",
+ "sigma23 = (sigma2+sigma3)/2\n",
+ "kTbye23 = ((993/224.7)*(993/59.7))*0.5\n",
+ "ohmD23 = 0.762\n",
+ "D23 = (0.001858*(993**1.5)*((1.0/28)+(1.0/2))**0.5)/(2*(sigma23**2)*ohmD23)\n",
+ "D = (D13+D23)/2 #in cm^2/s\n",
+ "l = 0.15 #in cm\n",
+ "#at z=0 (bulk gas)\n",
+ "y10 = 0.6\n",
+ "y20 = 0.2\n",
+ "y30 = 0.2\n",
+ "#at z=l (catalyst surface)\n",
+ "y1l = 0.4\n",
+ "y2l = 0.3\n",
+ "y3l = 0.3\n",
+ "C = 2.0/(82.1*993) #calculated by P/RT\n",
+ "N1 = (D*C/l)*log((y10+y20)/(y1l+y2l))\n",
+ "print 'Flux of ethane %0.3E'%N1,'gmol/cm^2.s'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.12 pgno:43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The liquid-film thickness is: 0.0004 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Liquid-phase diffusion\n",
+ "\n",
+ "#given data\n",
+ "from math import pi\n",
+ "rc = 5e-4 #in m\n",
+ "D = 7e-10 #in m^2/s\n",
+ "Cab = 1 #in kmol/m^3\n",
+ "Na = 3.15e-6 #in kmol/m^2.s\n",
+ "W = 4*pi*(rc**2)*Na #the rate of reaction\n",
+ "#let (rc+delta)/delta = 1\n",
+ "w1 = 4*pi*D*Cab*rc*1 #flux of the reactant to the surface of the catalyst\n",
+ "rcplusdelta = W/w1\n",
+ "delta = rc/(rcplusdelta-1) #stagnant liquid-film thickness \n",
+ "print 'The liquid-film thickness is: ',delta,'m'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.13 pgno:46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tortuosity factor is: 2.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusivity determination--diaphragm cell\n",
+ "\n",
+ "#given data\n",
+ "from math import log\n",
+ "from math import pi\n",
+ "V1 = 60.2 #in cm^3; volume of compartment 1\n",
+ "V2 = 59.3 #volume of compartment 2 in cm^3\n",
+ "Ca1i = 0.3 #initial concentration of KCl in compartment 1\n",
+ "Ca2i = 0 #initial concentration of KCl in compartment 2\n",
+ "Ca1f = 0.215 #final concentration of KCl in compartment 1\n",
+ "Ca2f = 0.0863 #final concentration of KCl in compartment 2\n",
+ "D = 1.51e-5 #diffusivity of KCl in cm^2/s\n",
+ "tf = 55.2*3600 #time of the experiment in s\n",
+ "#calcutaling cell constant\n",
+ "beta = (1/(D*tf))*log((Ca1i - Ca2i)/(Ca1f - Ca2f))\n",
+ "#diffusion of propionic acid\n",
+ "Cpa1i = 0.4 #initial concentration of propionic acid in compartment 1\n",
+ "Cpa2i = 0 #initial concentration of propionic acid in compartment 2\n",
+ "Cpa1f = 0.32 #final concentration of propionic acid in compartment 1\n",
+ "Cpa2f = 0.0812 #final concentration of propionic acid in compartment 2 by mass balance\n",
+ "tfp = 56.4*3600 #time for the experiment\n",
+ "Dp = (1/(beta*tfp))*log((Cpa1i-Cpa2i)/(Cpa1f-Cpa2f)) #diffusivity of the propionic acid\n",
+ "#calculating tortusity factor\n",
+ "A= (pi/4)*(3.5**2) #area of the diaphragm\n",
+ "epsilon = 0.39 #average porosity of the diaphragm\n",
+ "l = 0.18 #thickness of hte diaphragm\n",
+ "tou = (A*epsilon/(beta*l))*(1/V1 + 1/V2)\n",
+ "print 'Tortuosity factor is: ',round(tou,1)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_3.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_3.ipynb
new file mode 100644
index 00000000..4e0cc29f
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_3.ipynb
@@ -0,0 +1,284 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 3 : Convective Mass Transfer and Mass Transfer Coefficient"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.2 Page no. 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a)\n",
+ "(i) Mass transfer-coefficient is 2.161E-03 kmol/(m^2.s.dy)\n",
+ "(ii) Mass transfer-coefficient is 2.003E-03 kmol/(m^2.s.dy)\n",
+ "(iii) Mass transfer-coefficient is 0.0449 m/s\n",
+ "Coefficient of Fg: 0.0021 kmol/m^2.s\n",
+ "(b)\n",
+ "(i) kG: 2.400E-06 lbmol/s.ft^2.psi\n",
+ "(ii) kG: 1.344 lbmol/h.ft^2.atm\n",
+ "(iii) kG: 4.503E-02 lbmol/h.ft^2.inchHg\n",
+ "Thickness of the stagnant film is: 2.4E-04 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given data\n",
+ "from math import log\n",
+ "P = 900.3 #pressure in mmHg\n",
+ "R = 0.08317 #m^3.bar/kmol.k\n",
+ "T = 300 #in K\n",
+ "kG = 2.4E-6 #gas phase mass transfer coefficient\n",
+ "ky = P*kG\n",
+ "print '(a)'\n",
+ "print '(i) Mass transfer-coefficient is %0.3E'%ky,'kmol/(m^2.s.dy)'\n",
+ "pA1 = 0.0877 #vapor pressure of alochol in bar\n",
+ "pB1 = (1.2 - 0.0877)*760/1.013 #in mmHg\n",
+ "pA2 = 0\n",
+ "pB2 = 1.2*760/1.013 #in mmHg\n",
+ "kY = kG*pB1*pB2/P\n",
+ "print '(ii) Mass transfer-coefficient is %0.3E'%kY,'kmol/(m^2.s.dy)'\n",
+ "kc = kG*(760/1.013)*R*T\n",
+ "print '(iii) Mass transfer-coefficient is %0.4f'%kc,'m/s'\n",
+ "Fg = kG*(pB2-pB1)/(log(pB2/pB1))\n",
+ "print 'Coefficient of Fg: %0.4f'%Fg,'kmol/m^2.s'\n",
+ "print '(b)'\n",
+ "kGo = kG\n",
+ "kG1 = kG*2.2046*51.7/10.764\n",
+ "print '(i) kG: %0.3E'%kG,'lbmol/s.ft^2.psi'\n",
+ "kG2 = kG1*3600*14.69\n",
+ "print '(ii) kG: ',round(kG2,3),'lbmol/h.ft^2.atm'\n",
+ "kG3 = kG*2.2046*3600/(10.764*0.0393)\n",
+ "print '(iii) kG: %0.3E'%kG3,'lbmol/h.ft^2.inchHg'\n",
+ "pB2 = 1.2\n",
+ "pB1 = 1.2 - 0.0877\n",
+ "P = 1.2\n",
+ "Dab = 0.102*(1.013/1.185)*((300.0/273)**1.75)*1e-4 #Diffusivity value at 1.2bar and 300K\n",
+ "pBM = (pB2-pB1)/log(pB2/pB1)\n",
+ "kG4 = kG*(760/1.013)\n",
+ "d = Dab*P/(kG4*R*T*pBM)\n",
+ "print 'Thickness of the stagnant film is: %0.1E'%d,'m'\n",
+ "#Answers may vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.5 Page no. 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diffusivity of H2S in water at 25C Dab: 1.17E-09 m^2/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given data\n",
+ "Q = 13.2e-6 #liquid flow rate (pi*r^2*v)\n",
+ "l = 0.05 #length of the jet\n",
+ "W = 34 #Molecular weight of H2S\n",
+ "P = 1.03 #total pressure in the jet chamber\n",
+ "Cai = P*(0.1136) #kmol/m^3\n",
+ "Cab = 0\n",
+ "Rate = (4.42e-7)/W #in m^3/s\n",
+ "#let Dab = 1\n",
+ "Dab = 1\n",
+ "rate = 4*((Dab*Q*l)**0.5)*Cai\n",
+ "Dab = ((Rate/(4*Cai))**2)/(Q*l)\n",
+ "print 'Diffusivity of H2S in water at 25C Dab: %0.2E m^2/s'%Dab"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.6 Page no. 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rate of absorption of CO2 from the bubbles per minute: 4.760E-05 gmol/min\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given data\n",
+ "from math import pi\n",
+ "tc = 1.0/20 #contact time of a liquid element with a gas bubble db/vb\n",
+ "Dab = 2.19e-5\n",
+ "kL = 2*(Dab/(pi*tc))**0.5 #Mass transfer coefficient\n",
+ "tr = 0.3/0.2 #residence time of a single bubble\n",
+ "r = 1.0/2 #radius of the bubble\n",
+ "vol = (4.0/3)*pi*(r**3) #volume of the bubble\n",
+ "area = 4*pi*(r**2) #surface area of the bubble\n",
+ "Cs = 1.493e-5 #solubility of CO2 water\n",
+ "Cb = 0\n",
+ "Amt = kL*area*(Cs-Cb)*tr #amount of CO2 absorbed from a single bubble during its residence time\n",
+ "Bub = 15/vol\n",
+ "rate = Amt*Bub\n",
+ "print 'Rate of absorption of CO2 from the bubbles per minute: %0.3E gmol/min'%rate\n",
+ "#Answer vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.7 Page no.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a)\n",
+ "Film thickness: 2.16e-05 m\n",
+ "(b)\n",
+ "The contact time: 0.308 s\n",
+ "(c)\n",
+ "The fractional rate of surface renewal: 4.13 per sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given data\n",
+ "from math import pi\n",
+ "p = 2 #in atm\n",
+ "x = 2.0/1640 #mole fraction\n",
+ "W = 44*x + 18*(1-x) #Molecular wieght of the solution\n",
+ "sol = 997.0/W #Moles of solution per m^3\n",
+ "CO2 = 55.4*x #Moles of CO2 per m^3 solution\n",
+ "Cco = 2.3/44 #Concentration of the carbonated solution(kmol/m^3)\n",
+ "RoW = 1.0/(60*1000) #Volume rate of input of water(m^3/s)\n",
+ "RoA = RoW*Cco #rate of absorption of CO2 in the vessel(kmol/s)\n",
+ "V = 8e-3 #volume of the gas-liquid dispersion in the vessel(m^3)\n",
+ "a = 80 #specific interfacial area of contact between the dispersed gas snd the liquid(m^2/m^3)\n",
+ "#let kL = 1\n",
+ "kL = 1.0\n",
+ "Dab = 1.92e-9 #diffusivity of CO2\n",
+ "rateOA = V*a*(CO2-Cco)\n",
+ "kL = RoA/rateOA\n",
+ "#(a) part\n",
+ "delta = Dab/kL\n",
+ "print '(a)'\n",
+ "print 'Film thickness: %0.2e m'%delta\n",
+ "#(b) part\n",
+ "tc = (4*Dab)/(pi*(kL**2))\n",
+ "print '(b)'\n",
+ "print 'The contact time: %0.3f s'%tc\n",
+ "#(c) part\n",
+ "s = (kL**2)/(Dab)\n",
+ "print '(c)'\n",
+ "print 'The fractional rate of surface renewal: %0.2f per sec'%s"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.8 Page no. 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The effluent concentration: 1 kg/m^3\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given data\n",
+ "from math import exp\n",
+ "Cb1 = 0 #concentration of the benzoic acid at the inlet\n",
+ "Cs = 3.01 #concentration of the liquid in contact with the surface of a sphere\n",
+ "dp = 0.8 #diameter of the sphere\n",
+ "vo = 2.2 #superficial liquid velocity\n",
+ "nu = 0.0095 #kinematic viscosity\n",
+ "Dab = 1e-5 #diffusivity of the solute\n",
+ "e = 0.4 #bed voidage\n",
+ "h = 70 #height of the column\n",
+ "QbyA = 2.2 #liquid flow rate per unit area of the bed\n",
+ "Re = (dp*vo)/nu #Reynolds number\n",
+ "Sc = nu/Dab #Schmidt number\n",
+ "ejd = 0.25*((Re)**(-0.31)) #epsilon*jD\n",
+ "Sh = ejd*Re*(Sc**(1.0/3))/e #Sherwood number\n",
+ "kL = Sh*Dab/(dp)\n",
+ "a = 6*(1-e)/dp #specific interfacial velocity\n",
+ "Cb2 = Cs-((Cs)/exp(kL*a*h/(QbyA)))\n",
+ "print 'The effluent concentration: %i kg/m^3'%round(Cb2,1)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_4.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_4.ipynb
new file mode 100644
index 00000000..9b2f69b0
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_4.ipynb
@@ -0,0 +1,566 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 4 : Interphase Mass Transfer"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.1 Page no. 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The interfacial concentrations are\n",
+ " xi = 0.03044 and yi = 0.03653\n",
+ "\n",
+ "(b) The overall gas-phase coefficient, Ky = 2.502 kmol/(h)(m^2)(dy)\n",
+ " The overall liquid-phase coefficients, Kx = 3.002 kmol/(h)(m^2)(dy)\n",
+ "\n",
+ "(c) The local mass flux, Na = 0.025 kmol/(h)(m^2)\n",
+ " Fraction of the total mass transfer resistance in the gas-phase = 0.347\n",
+ " Fraction of the total mass transfer resistance in the liquid-phase = 0.653\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Overall coefficient and driving force\n",
+ "\n",
+ "yb = 0.04 #bulk concentration of A in the gas-phase\n",
+ "xbst = yb/1.2 #xb star(equilibrium value)\n",
+ "xb = 0.025 #actual concentration of the solute in the bulk liquid\n",
+ "m = 1.2 #slope of the equilibrium line\n",
+ "#on gas phase basis\n",
+ "diff1 = 0.04 - (1.2*xb)\n",
+ "#on liquid phase basis\n",
+ "diff2 = xbst - xb\n",
+ "\n",
+ "ky = 7.2 #local individual mass transfer coefficients\n",
+ "kx = 4.6\n",
+ "xi = 0.03044 #interfacial concentration\n",
+ "yi = 1.2*xi\n",
+ "\n",
+ "Ky = 1.0/((1.0/ky)+(m/kx)) #overall gas-phase coefficient\n",
+ "Kx = 1.0/((1.0/(m*ky) + (1.0/kx))) #overall liquid-phase coefficient\n",
+ "Na = ky*(yb - yi)\n",
+ "Mtrg = (1.0/ky)/(1.0/Ky) #fraction of the total mass transfer resistance in the gas-phase\n",
+ "Mtrl = (1.0/kx)/(1.0/Kx) #fraction of the total mass transfer resistance in the liquid-phase\n",
+ "print '(a) The interfacial concentrations are'\n",
+ "print ' xi = %0.5f'%xi,' and yi = %0.5f'%yi\n",
+ "print\n",
+ "print '(b) The overall gas-phase coefficient, Ky = %0.3f'%Ky,'kmol/(h)(m^2)(dy)'\n",
+ "print ' The overall liquid-phase coefficients, Kx = %0.3f'%Kx,'kmol/(h)(m^2)(dy)'\n",
+ "print\n",
+ "print '(c) The local mass flux, Na = %0.3f'%Na,'kmol/(h)(m^2)'\n",
+ "print ' Fraction of the total mass transfer resistance in the gas-phase = %0.3f'%Mtrg\n",
+ "print ' Fraction of the total mass transfer resistance in the liquid-phase = %0.3f'%Mtrl"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.2 Page no. 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Given mass transfer flux is 1.2 kmol/(h)(m^2) and Theorectical flux is 1.417\n",
+ "The actual overall coefficient is 21.43 kmol/(h)(m^2)(dy)\n",
+ "The interfacial resistance is 0.00714 (h)(m^2)(dy)/kmol\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Interfacial resistance to mass transfer\n",
+ "\n",
+ "#local individual mass transfer coefficients\n",
+ "ky = 60\n",
+ "kx = 35\n",
+ "#slope of the equilibrium line\n",
+ "m = 0.8\n",
+ "#local mass transfer flux\n",
+ "Nag = 1.2\n",
+ "yb = 0.08\n",
+ "xb = 0.03\n",
+ "ybst = m*xb\n",
+ "Ky = 1.0/((1.0/ky)+(m/kx)) #overall mass transfer coefficient\n",
+ "Na = Ky*(yb - ybst) #theoretical flux\n",
+ "print 'Given mass transfer flux is %0.1f'%Nag,'kmol/(h)(m^2) and Theorectical flux is %0.3f'%Na\n",
+ "Kytrue = (Nag)/(yb - m*xb)\n",
+ "resis = (1/Kytrue) - (1/Ky)\n",
+ "print 'The actual overall coefficient is %0.2f'%Kytrue,'kmol/(h)(m^2)(dy)'\n",
+ "print 'The interfacial resistance is %0.5f'%resis,'(h)(m^2)(dy)/kmol'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.3 Page no. 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Flux of the solute, Na = 0.01919kmol/(h)(m^2)\n",
+ "(b) The local flux, Na = 0.00124\n",
+ "(c) The overall liquid-phase mass transfer coefficient is, Kx = 21.55kmol/(h)(m^2)(dx)\n",
+ "(d) Individual gas-phase driving force = 0.0037 mole fraction\n",
+ " Difference of partial pressure = 0.00536 bar\n",
+ " Overall Gas-phase driving force = 0.0272\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Application to a gas-liquid system\n",
+ "\n",
+ "P = 1.45 #Total pressure\n",
+ "mp = 3.318e4 #slope of the equilibrium relation given in the terms of partial pressure\n",
+ "xs = 0.065 #mole fraction of the solute in the bulk gas\n",
+ "pb = P*xs #partial pressure of the solute A in the bulk gas\n",
+ "T = 303 #Temperature of the falling water\n",
+ "R = 0.08317 #universal gas constant\n",
+ "kc = 90.3 #gas-phase mass transfer coefficient\n",
+ "ky = P*kc/(R*T) #gas-phase mass transfer coefficient\n",
+ "xi = 0.00201 #interfacial concentration of the solute in the liquid\n",
+ "yb = xs\n",
+ "fr = 0.136 #fraction of the gas-phase resistance\n",
+ "pi = mp*xi #in mmHg\n",
+ "pi = pi*1.013/760 #in bar\n",
+ "yi = pi/P\n",
+ "m = mp/(P*(760/1.013))\n",
+ "Na = ky*(yb - yi)\n",
+ "print '(a) Flux of the solute, Na = %0.5fkmol/(h)(m^2)'%Na\n",
+ "gR = (1/ky)\n",
+ "tmR = gR/0.136\n",
+ "lR = tmR*(1-0.136)\n",
+ "kx = m/lR\n",
+ "Nanew = xi - (Na/kx)\n",
+ "print '(b) The local flux, Na = %0.5f'%Nanew\n",
+ "Kx = 1/((1/kx) + (1/(m*ky)))\n",
+ "print '(c) The overall liquid-phase mass transfer coefficient is, Kx = %0.2fkmol/(h)(m^2)(dx)'%Kx\n",
+ "deltay = yb - yi\n",
+ "deltap = P*deltay\n",
+ "deltayO = yb - m*Nanew\n",
+ "print '(d) Individual gas-phase driving force = %0.4f mole fraction'%deltay\n",
+ "print ' Difference of partial pressure = %0.5f bar'%deltap\n",
+ "print ' Overall Gas-phase driving force = %0.4f'%deltayO\n",
+ "#Answers may vary very little due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.4 Page no. 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Concentration of SO2 in the effluent solution: 1.495e-03 mole fraction\n",
+ " Liquid phase mass transfer coefficient: 25.7143 kmol/(h)(m^2)(dx)\n",
+ " The surface renewal rate is: 10.9474 per second\n",
+ "(b) New flow rate of water through the cell: 91.3 ml/min\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Mass transfer in a continuous-stirred cell\n",
+ "\n",
+ "from sympy.solvers import solve\n",
+ "from sympy import Symbol\n",
+ "Yin = 0.142/(1 - 0.142) #14.2% SO2 was in gas flow rate\n",
+ "Yout = 0.11/(1 - 0.11) #As 11% SO2 is in outlet gas at steady state\n",
+ "Qair = 0.0535 #on SO2-free basis(flow rate)\n",
+ "ABspt = Qair*(Yin - Yout) #Rate of absorption\n",
+ "Qwater = 27 #Water flow rate(in ml/min)\n",
+ "Qwater = Qwater/18 #in gmol/min\n",
+ "xb = ABspt/1.5 #bulk concentration of the liquid\n",
+ "print '(a) Concentration of SO2 in the effluent solution: %0.3e mole fraction'%xb\n",
+ "yb = 0.11 #bulk concentration of the gas-phase\n",
+ "m = 31.3 #slope of the equilibrium concentratin line\n",
+ "ybst = m*xb\n",
+ "Dab = 1.51e-5 #diffusivity of SO2 in water\n",
+ "ky = 3.8 #gas-phase mass transfer coefficient\n",
+ "ABspt = ABspt*60/1000 #in kmol/h\n",
+ "Area = 31.5/10000 #in m^2\n",
+ "Ky = ABspt/(Area*(yb-ybst)) #overall mass-transfer coefficient\n",
+ "kx = m/((1/Ky)-(1/ky))\n",
+ "print ' Liquid phase mass transfer coefficient: %0.4f kmol/(h)(m^2)(dx)'%kx\n",
+ "#to calculate surface renewal rate\n",
+ "C = 1.0/(18.0/1000) #in kmol/m^3\n",
+ "kl = kx/C\n",
+ "kl = kl*100/3600\n",
+ "s = (kl*kl)/Dab\n",
+ "print ' The surface renewal rate is: %0.4f per second'%s\n",
+ "yb=0.1\n",
+ "nABspt = Qair*(Yin - (yb/0.9))\n",
+ "var = Symbol('var')\n",
+ "ybst = solve(nABspt*0.001*60 - Ky*Area*(yb-var),var)\n",
+ "xb = ybst[0]/m\n",
+ "Q = nABspt*18/xb\n",
+ "print '(b) New flow rate of water through the cell: %0.1f ml/min'%Q\n",
+ "#Answers may vary due to round-off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.5 Page no. 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 95,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Interfacial concentration of the phases are xi = 0.00222 and yi = 0.0157.\n",
+ "(b) Ky = 7.28\n",
+ " Kx = 41.2\n",
+ " Na = 0.065\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\ngg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x8f263c8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Graphical determination of interfacial concentration\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "from sympy.solvers import solve\n",
+ "from sympy import Symbol\n",
+ "#equilibrium data\n",
+ "p = [0.6,1.7,4.7,8.1,11.8,19.7,36,52,79] #partial pressure\n",
+ "g = [0.02,0.05,0.1,0.15,0.2,0.3,0.5,0.7,1.0] #g SO2 per 100g water\n",
+ "P = 4.5 #total pressure\n",
+ "kx = 80 #gas-phase mass transfer coefficients\n",
+ "ky = 15 #liquid-phase mass transfer coefficients\n",
+ "P = P*760/1.013 #in mmHg\n",
+ "x = []\n",
+ "y = []\n",
+ "i = 0\n",
+ "for i in range(0,len(p)):\n",
+ " y.append(p[i]/P)\n",
+ "for i in range(0,len(g)):\n",
+ " x.append(((g[i]/64)/((g[i]/64)+(100/18))))\n",
+ "fig = plt.figure()\n",
+ "ax = fig.add_subplot(111)\n",
+ "plt.plot(x,y,label='Exact plot')\n",
+ "#Point P\n",
+ "xb = 0.0014 #the bulk concentration of two phases at the given locations\n",
+ "yb = 0.02\n",
+ "slope = -80.0/15\n",
+ "z = np.polyfit(x,y,2)\n",
+ "f = np.poly1d(z)\n",
+ "#calculate new x's and y's\n",
+ "x_new = np.linspace(x[0],x[-1],50)\n",
+ "y_new = f(x_new)\n",
+ "plt.plot(x_new,y_new,'r',label='After cuvefitting')\n",
+ "#finding the intersection point\n",
+ "xs = Symbol('xs')\n",
+ "x_int = solve(z[0]*xs**2 + z[1]*xs + z[2] + 5.3*xs - 0.0275,xs)\n",
+ "y_int = slope*x_int[1] + 0.0275\n",
+ "plt.plot(xb,yb,'bo')\n",
+ "plt.plot(x_int[1],y_int,'bo')\n",
+ "plt.plot((xb,x_int[1]),(yb,y_int),'b-')\n",
+ "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
+ "plt.xlabel('mol fraction \"x\"',fontsize=16)\n",
+ "plt.ylabel('mol fraction \"y\"',fontsize=16)\n",
+ "plt.title('Plot of equilibrium line and calculating interfacial concentration',fontsize=14)\n",
+ "xy=(xb,yb)\n",
+ "ax.annotate('(%s, %s)' % xy, xy=xy, textcoords='data')\n",
+ "xint = '%0.5f'%x_int[1]\n",
+ "yint = '%0.4f'%y_int\n",
+ "xy=(xint,yint)\n",
+ "ax.annotate('(%s, %s)' % xy, xy=xy, textcoords='data')\n",
+ "print '(a) Interfacial concentration of the phases are xi = %0.5f'%x_int[1],' and yi = %0.4f.'%y_int\n",
+ "m = 5.65 #taking the equilibrium line almost linear near interfacial concentration\n",
+ "Ky = 1.0/((1.0/15)+(m/80))\n",
+ "Kx = 1.0/((1.0/(m*15))+(1.0/80))\n",
+ "Na = ky*(yb-y_int)\n",
+ "print '(b) Ky = %0.2f'%Ky\n",
+ "print ' Kx = %0.1f'%Kx\n",
+ "print ' Na = %0.3f'%Na\n",
+ "#Answers may vary due to round-off errors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.6 Page no. 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 113,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Operating line is Yn+1 = 1.455Xn + 0.001360\n",
+ "Number of real trays = 59\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Number of trays for countercurrent contact\n",
+ "\n",
+ "from math import log\n",
+ "from sympy import Symbol\n",
+ "F_C = 0.12 #feed concentration\n",
+ "Gs = 6000*(1-F_C) #feed rate on solute free basis\n",
+ "s = 6000*F_C #mass of solute entering\n",
+ "Yn = F_C/(1-F_C) #feed concentration\n",
+ "Y1 = 0.00136 #exit concentration\n",
+ "Xo = 0 #entering solvent does not have any solute in it\n",
+ "Ls = 7685 #solvent input rate\n",
+ "#doing mass balance\n",
+ "X1 = Gs*(Yn - Y1)/Ls #exit concentration of solute\n",
+ "Yn = Symbol('Yn+1')\n",
+ "sl = (Ls/Gs)\n",
+ "print 'Operating line is ',Yn,' = %0.3fXn'%sl,' + %f'%Y1\n",
+ "#Since the equilibrium line and operating lines are linear\n",
+ "#Therefore we can calculate the number of trays using Kremser equation\n",
+ "Yn = F_C/(1-F_C)\n",
+ "alpha = 1.32 #slope of the equilibrium line \n",
+ "A = Ls/(alpha*Gs) #Absorption factor\n",
+ "#using Kremser equation\n",
+ "N = log(((Yn-(alpha*Xo))/(Y1-(alpha*Xo)))*(1-(1.0/A))+(1.0/A))/log(A)\n",
+ "Nom = N/0.4\n",
+ "print 'Number of real trays = %d'%Nom"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.7 Page no. 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The test data fit the Freundlich adsorption isotherm in the form Y = aX^B\n",
+ " After fitting the data alpha is 0.184 and beta is 1.468\n",
+ "(b) Amount of adsorbent required 609.545 kg\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Batch adsorption from a solution\n",
+ "\n",
+ "%matplotlib inline\n",
+ "from math import log\n",
+ "from math import exp\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "cl = [15,40,60,100,135,210,325,450] #grams of clay used\n",
+ "pA = [9.1,7.81,6.93,5.66,4.76,3.38,2.44,1.48] #% A in the solution in equilibrium\n",
+ "i=0\n",
+ "X = []\n",
+ "Y = []\n",
+ "for i in range(0,len(cl)):\n",
+ " X.append(log((100-((90000/(100-pA[i]))-900))/cl[i]))\n",
+ " Y.append(log(((90000/(100-pA[i]))-900)/900))\n",
+ "#fitting the log-log data with degree 1\n",
+ "z = np.polyfit(X,Y,1)\n",
+ "f = np.poly1d(z)\n",
+ "print '(a) The test data fit the Freundlich adsorption isotherm in the form Y = aX^B'\n",
+ "print ' After fitting the data alpha is %0.3f'%exp(z[1]),' and beta is %0.3f'%z[0]\n",
+ "ads = 90 #amount of solute to be removed(in kg)\n",
+ "solv = 900 #amount of water remained(in kg)\n",
+ "Y = 10.0/solv\n",
+ "#putting in Freundlich adsorption isotherm\n",
+ "m = 90.0/(Y/exp(z[1]))**(1/z[0])\n",
+ "print '(b) Amount of adsorbent required %0.3f kg'%m\n",
+ "#Answers may vary due to round-off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.9 Page no. 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Amount of solvent B required in single stage contact is 4306.7\n",
+ "(b) The total amount of extracting solvent required is 1166 kg\n",
+ "(c) Required amount of solvent is 679.03 kg\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Multistage crosscurrent contact\n",
+ "\n",
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "from math import log\n",
+ "Ls = 1000*(1-0.15) #amount of the carrier phase in the feed\n",
+ "Xo = 15.0/85 #feed concentration\n",
+ "e_con = 0.15*0.05/0.85 #exit concentration\n",
+ "Y1 = 3.75*e_con #equilibrium concentration\n",
+ "Yo = 0\n",
+ "Gs = 850*(Xo-e_con)/Y1\n",
+ "print '(a) Amount of solvent B required in single stage contact is %0.1f'%Gs\n",
+ "#an ideal three-stage crosscurrent cascade\n",
+ "#X1,X2,X3 are the intermediate concentrations\n",
+ "Gsn = Symbol('Gsn')\n",
+ "X1 = Symbol('X1')\n",
+ "X1 = solve(850*(0.1765-X1)-Gsn*3.75*X1,X1)\n",
+ "X2 = Symbol('X2')\n",
+ "X2 = solve(850*(X2-0.00882)-Gsn*3.75*0.00882,X2)\n",
+ "Gsn = solve(850*(X1[0]-X2[0])-Gsn*3.75*X2[0],Gsn)\n",
+ "nGs = 3*Gsn[0] #total amount of solvent\n",
+ "print '(b) The total amount of extracting solvent required is %0.0f kg'%nGs\n",
+ "#using material balance for nth stage and then integrating from X= Xo to X = Xf = 0.00882\n",
+ "Gs = (850/3.75)*log(Xo/e_con)\n",
+ "print '(c) Required amount of solvent is %0.2f kg'%Gs\n",
+ "#Answers may vary due to round-off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.11 Page no. 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Flux of the drug, Na = 2.72e-03 mg/cm^2.h\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Rate of drug delivery\n",
+ "\n",
+ "Cml = 0.513 #solubility of progesterone in the polymer(mg/cm^3)\n",
+ "beta = 0.022 #partition coefficient\n",
+ "Clb = 0 #drug concentration in the body fluid\n",
+ "Dm = 5.94e-3 #diffusivity of the drug in the polymer(in cm^2/h)\n",
+ "Dl = 2.08e-3 #diffudivity of the drug in the body(cm^2/h)\n",
+ "lm = 0.08 #thickness of the silicone membrane(cm)\n",
+ "dl = 0.008 #thickness of the diffusion fluid layer(cm)\n",
+ "Na = (beta*Cml - Clb)/((beta*lm/Dm)+(dl/Dl))\n",
+ "print 'Flux of the drug, Na = %0.2e mg/cm^2.h'%Na"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_5.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_5.ipynb
new file mode 100644
index 00000000..42cb1f19
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter_5.ipynb
@@ -0,0 +1,259 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 5 : Gas-Liquid Contacting Equipment"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.1 Page no. 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Tower diameter by Fair's method is 6.42 ft\n",
+ " Flooding velocity by Fair's method is 5 ft\n",
+ " Flooding velocity by Kister ans Haas method is 4.86 ft/s\n",
+ " It is very close that is obtained by Fairs method and is acceptable\n",
+ "(b) Downcomer area = 1.767 ft^2 and downcomer liquid velocity = 0.105 ft/s\n",
+ " These are acceptable values. So we keep the revised column diameter at Dc = 6.12 ft\n",
+ "(c) Number of holes = 3004 placed on a triangular pitch\n",
+ "(d) Select an outlet weir height of hw = 2 inches on the tray\n",
+ "(e) Dry tray pressure drop, hd = 1.75 inches of liquid\n",
+ " how = 0.92 inch\n",
+ " pressure drop for flow of the vapour through the liquid\n",
+ " head loss for liquid flow below the downcomer flow, had = 0.85 inch\n",
+ " total pressure drop = 7.27 inch of liquid\n",
+ " The rate of entrainment is 0.0357 mol per mol gross downflow\n",
+ " The corresponding vapour velocity at the hole at weeping is 22.5 ft/s\n",
+ "Total column height = 60 ft\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Design of a sieve tray\n",
+ "\n",
+ "from math import pi\n",
+ "from math import sqrt\n",
+ "tL = 14100.0 #top liquid rate(kg/h)\n",
+ "bL = 15300.0 #Bottom liquid rate(kg/h)\n",
+ "tG = 23300.0 #top vapour rate(kg/h)\n",
+ "bG = 24500.0 #Bottom vapour rate(kg/h)\n",
+ "phoL = 810.0 #liquid density(kg/m^3)\n",
+ "phoG = 2.65 #average vapour density(kg/m^3)\n",
+ "sig = 20.5 #liquid surface tension(dyne/cm)\n",
+ "T = 82.0 #Temperature\n",
+ "p = 18.0 #average pressure at the column top(psia)\n",
+ "#Fair's method\n",
+ "Flv = (bL/bG)*(phoG/phoL)**(0.5) #Flow parameter\n",
+ "Csb = 0.285 #Souders-Brown flooding constant\n",
+ "usfl = Csb*((20/sig)**0.2)*(((50.4-0.165)/(0.165))**0.5) #flooding velocity\n",
+ "us = 5*0.7 #operating velocity when operating velocity is 70% of flooding velocity\n",
+ "Vfl = (bG/phoG)*35.315 #Volumetric flow rate of the vapour\n",
+ "Aa = Vfl/(us*3600)\n",
+ "fd = 0.2 #taking fractional downcomer area\n",
+ "At = Aa/(1-fd) #Tower cross-section\n",
+ "Dc = (4*32.4/pi)**(0.5) #Tower diameter\n",
+ "print \"(a) Tower diameter by Fair's method is %0.2f ft\"%Dc\n",
+ "print \" Flooding velocity by Fair's method is %0.0f ft\"%usfl\n",
+ "\n",
+ "#Kister and Haas method\n",
+ "dh = 3.0/8 #hole diameter\n",
+ "Af = 0.1 #fractional hole area on the tray\n",
+ "Dc = 6\n",
+ "lw = 0.727*Dc\n",
+ "L = bL/(0.81*3.78*60) #Liquid rate(gpm)\n",
+ "Ql = 83.3/(lw*12) #gpm per inch\n",
+ "fh = 0.1\n",
+ "hctw = (0.29*(0.1**-0.791)*(dh**0.833))/(1+(0.0036*(1.6**-0.59)*(0.1**-1.79)))\n",
+ "n = 0.0231*(dh/0.1)\n",
+ "hct = hctw*(62.2/50.4)**(0.5*(1-0.0866))\n",
+ "Csb = 0.144*((dh*dh*20.5/50.4)**0.125)*((0.165/50.4)**0.1)*((18/0.749)**0.5)\n",
+ "usfl = Csb*((50.4-0.165)/0.165)**0.5\n",
+ "print ' Flooding velocity by Kister ans Haas method is %0.2f ft/s'%usfl\n",
+ "print ' It is very close that is obtained by Fairs method and is acceptable'\n",
+ "#(b)Check of the estimated downcomer area\n",
+ "area = 3.38 #Estimated downcomer area\n",
+ "liq_f = 15300*35.315/(810*3600) #The clear liquid flow rate\n",
+ "liq_v = liq_f*area #The downcomer liquid velocity\n",
+ "d_vol = area*18/12 #Downcomer volume\n",
+ "res_t = d_vol/liq_f #Residence time\n",
+ "n_ar = Aa/(1-(2*0.06)) #Revised tower cross-section\n",
+ "Dc = (4*n_ar/pi)**0.5 #Tower diameter\n",
+ "d_area = n_ar*0.06 #Downcomer area\n",
+ "lw = 3.75 #Weir length\n",
+ "d_liqv = liq_f/d_area #downcomer liquid velocity\n",
+ "print '(b) Downcomer area = %0.3f ft^2'%d_area,' and downcomer liquid velocity = %0.3f ft/s'%d_liqv\n",
+ "print ' These are acceptable values. So we keep the revised column diameter at Dc = %0.2f ft'%Dc\n",
+ "#(c)Effective bubbling area and layout of the holes\n",
+ "eff_area = Aa-3 #effective bubbling area\n",
+ "frac_area = 0.905*(1.0/3)*(1.0/3)\n",
+ "tot_harea = eff_area*frac_area\n",
+ "n_holes = tot_harea/((pi/4)*((3.0/96)**2))\n",
+ "print '(c) Number of holes = %0.0f placed on a triangular pitch'%n_holes\n",
+ "#(d)Wier height\n",
+ "hw = 2\n",
+ "print '(d) Select an outlet weir height of hw = %0.0f inches on the tray'%hw\n",
+ "#(e)Pressure drop calculation\n",
+ "uh = Vfl/(tot_harea*3600) #Vapour velocity through the holes\n",
+ "thick = 3.0/16 #select a tray thickness\n",
+ "thbyD = thick/(3.0/8) #tray thickness/hole dia\n",
+ "Co = 0.73 #the orifice coefficient\n",
+ "hd = (0.186/(Co**2))*(0.165/50.4)*(39.1**2) #Dry tray pressure drop\n",
+ "print '(e) Dry tray pressure drop, hd = %0.2f inches of liquid'%hd\n",
+ "Ql = 83.3/(lw*12) #in gpm per inch of weir length\n",
+ "Fw = 1.27 #weir correction factor\n",
+ "how = 0.48*Fw*(Ql**(2.0/3)) \n",
+ "print ' how = %0.2f inch'%how\n",
+ "hc = hw + how\n",
+ "us = 326500/(22.9*3600)\n",
+ "beta = 0.6\n",
+ "hl = 0.6*2.92 #first calculate us and us(pg^0.5) and then from figure take beta\n",
+ "print ' pressure drop for flow of the vapour through the liquid'\n",
+ "Ada = 0.5*3.75/12 #area for liquid flow\n",
+ "had = 0.03*(83.3/(100*Ada))**2 \n",
+ "print ' head loss for liquid flow below the downcomer flow, had = %0.2f inch'%had\n",
+ "print ' total pressure drop = %0.2f inch of liquid'%(hc+hd+hl+had)\n",
+ "phi = (bL/bG)*(0.165/50.4)**0.5\n",
+ "print ' The rate of entrainment is %0.4f mol per mol gross downflow'%phi\n",
+ "sig = 20.5 #in dyne/cm\n",
+ "phol = 50.4 #lb/ft^3\n",
+ "dH = 3.0/8 #in inch\n",
+ "hsig = (0.04*sig)/(phol*dH) \n",
+ "hd = 0.58\n",
+ "uh = sqrt(((0.73**2)/0.186)*(50.4*hd/0.165))\n",
+ "print ' The corresponding vapour velocity at the hole at weeping is %0.1f ft/s'%uh\n",
+ "#column height\n",
+ "height = 29*1.5\n",
+ "ex_sp = 3*0.5\n",
+ "tot_h = 43.5+1.5+1.5+9+4\n",
+ "#total column height will be tray spacing + extra space for feed trays\n",
+ "# + extra space at trays with manholes + bottom space + top space\n",
+ "print 'Total column height = %0.0f ft'%tot_h\n",
+ "#Answers may vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 5.2 Page no. 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tower diameter when raschig ring is used as packing material, Dc = 0.90 m\n",
+ "Tower diameter, Dc when Pall ring is used, = 0.68 m\n",
+ "Power requirement is 287.25W\n",
+ "Actual Power requirement is 441.92W\n",
+ "volume fraction liquid holdup in the bed 0.0725 m^3 liquid per m^3 bed volume\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Design of packed tower\n",
+ "\n",
+ "from math import pi\n",
+ "from math import sqrt\n",
+ "L = 37525 #Liquid rate\n",
+ "G = 1500.0 #gas rate\n",
+ "M = 0.9*28.8 + (0.1*64) #average molecular weight of the feed gas\n",
+ "R = 0.08317 #gas constant\n",
+ "T = 303 #in K\n",
+ "P = 1.013 #in bar\n",
+ "phoG = P*M/(R*T) #kg/m^3\n",
+ "phoG_c = 0.081 #in lb/ft^3\n",
+ "muL = 0.81 #liquid viscosity\n",
+ "st = 70 #surface tension\n",
+ "phoL = 996 #in kg/m^3\n",
+ "phoL_c = 62 #in lb/ft^3\n",
+ "Flv = (L/G)*(phoG/phoL)**0.5\n",
+ "#Calculation of column diameter using raschig ring as packing material\n",
+ "dp = 3.0/4 #size of packing material\n",
+ "cp = 0.021 #from Eckert's GPDC chart(capacity parameter)\n",
+ "pwbypl = 1 #pho_w by pho_l\n",
+ "Fp = 94.5 #packing factor(in per ft)\n",
+ "gc = 4.18e8 #in ft/h^2\n",
+ "Gdash = sqrt((cp*phoG_c*phoL_c*gc)/(Fp*pwbypl*(muL**0.2)))\n",
+ "op_Gdash = Gdash*0.7\n",
+ "op_Gdash = op_Gdash*0.453592/(0.3048*0.3048)\n",
+ "tow_cross = G/op_Gdash\n",
+ "Dc = sqrt(4*tow_cross/pi)\n",
+ "print 'Tower diameter when raschig ring is used as packing material, Dc = %0.2f m'%Dc\n",
+ "#Calculation of column diameter when 50mm Pall ring is used as packing material\n",
+ "cp = 0.52 #capacity parameter from chart\n",
+ "Fp = 25 #flow parameter\n",
+ "v = 0.81 #liquid viscosity\n",
+ "Cs = cp/((Fp**0.5)*(v**0.05)) \n",
+ "usG = Cs*sqrt((phoL - phoG)/phoG) #superficial gas velocity\n",
+ "usG = usG*0.3048 \n",
+ "Gflow = G/(phoG*3600) #volumeteric gas flow rate\n",
+ "tow_cros = Gflow/usG #tower cross section\n",
+ "Dc = sqrt(4*tow_cros/pi) #tower diameter\n",
+ "print 'Tower diameter, Dc when Pall ring is used, = %0.2f m'%Dc\n",
+ "P_drop = 0.2*(5.0/0.3048) #pressure drop across the bed of 5m height\n",
+ "op_Pdrop = P_drop*1.1\n",
+ "op_Pdrop = op_Pdrop*0.0254*phoL*9.81\n",
+ "G = G/3600\n",
+ "Pow = (op_Pdrop/phoG)*G\n",
+ "print 'Power requirement is %0.2fW'%Pow\n",
+ "Pow = Pow/0.65\n",
+ "print 'Actual Power requirement is %0.2fW'%Pow\n",
+ "#calculation of operating liquid holup using Engel's equation\n",
+ "ap = 102\n",
+ "muL = 8.1e-4 #liquid viscosity\n",
+ "sigL = 0.07 #surface tension\n",
+ "usL = (L/phoL)/(0.362*3600) #superficial velocity\n",
+ "hLo = 0.93*(((usL**2)*102/9.81)**(1.0/6))*(((muL**2)*(ap**3)/((phoL**2)*9.81))**(1.0/10))*((0.07*102*102/phoL*9.81)**1.0/8)\n",
+ "print 'volume fraction liquid holdup in the bed %0.4f m^3 liquid per m^3 bed volume'%hLo\n",
+ "#Answers may vary due to round off error"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_95An8jL.png b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_95An8jL.png
new file mode 100644
index 00000000..a3043935
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_95An8jL.png
Binary files differ
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_ESGwoHw.png b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_ESGwoHw.png
new file mode 100644
index 00000000..5634906e
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_ESGwoHw.png
Binary files differ
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_HPwfPLe.png b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_HPwfPLe.png
new file mode 100644
index 00000000..ef798e9e
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter_HPwfPLe.png
Binary files differ