summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrupti Kini2016-08-16 23:30:31 +0600
committerTrupti Kini2016-08-16 23:30:31 +0600
commit60be8cd276e0969576ba611be858feeb114f6bfb (patch)
tree0c88f6a91a7f4e8e722bde95c00e5907abeeaacf
parentde1d8f34a0d508ca346dc9cba5655b24fa81bf7d (diff)
downloadPython-Textbook-Companions-60be8cd276e0969576ba611be858feeb114f6bfb.tar.gz
Python-Textbook-Companions-60be8cd276e0969576ba611be858feeb114f6bfb.tar.bz2
Python-Textbook-Companions-60be8cd276e0969576ba611be858feeb114f6bfb.zip
Added(A)/Deleted(D) following books
A Fiber_Optic_Communications:_Fundamentals_and_Applications_by_S._Kumar_and_M._J._Deen/README.txt A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter2.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter3.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter4.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter5.ipynb A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.3_plot.png A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.4_plot.png A Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter4_Interphase_Mass_Transfer_example_4.5_plot.png A modern_physics_by_Satish_K._Gupta/README.txt
-rw-r--r--Fiber_Optic_Communications:_Fundamentals_and_Applications_by_S._Kumar_and_M._J._Deen/README.txt10
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter2.ipynb789
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter3.ipynb284
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter4.ipynb566
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter5.ipynb259
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.3_plot.pngbin0 -> 10281 bytes
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.4_plot.pngbin0 -> 9073 bytes
-rw-r--r--Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter4_Interphase_Mass_Transfer_example_4.5_plot.pngbin0 -> 22472 bytes
-rw-r--r--modern_physics_by_Satish_K._Gupta/README.txt10
9 files changed, 1918 insertions, 0 deletions
diff --git a/Fiber_Optic_Communications:_Fundamentals_and_Applications_by_S._Kumar_and_M._J._Deen/README.txt b/Fiber_Optic_Communications:_Fundamentals_and_Applications_by_S._Kumar_and_M._J._Deen/README.txt
new file mode 100644
index 00000000..f6ef2602
--- /dev/null
+++ b/Fiber_Optic_Communications:_Fundamentals_and_Applications_by_S._Kumar_and_M._J._Deen/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Aviral Yadav
+Course: btech
+College/Institute/Organization: ABES Engineering College
+Department/Designation: Mechanical Engineering
+Book Title: Fiber Optic Communications: Fundamentals and Applications
+Author: S. Kumar and M. J. Deen
+Publisher: Wiley, UK
+Year of publication: 2014
+Isbn: 978-0-470-51867-0
+Edition: 1 \ No newline at end of file
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter2.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter2.ipynb
new file mode 100644
index 00000000..167c762c
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter2.ipynb
@@ -0,0 +1,789 @@
+{
+ "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": 3,
+ "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 0xa093160>"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x9ed0c18>"
+ ]
+ },
+ "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",
+ "#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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\nAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x3659630>"
+ ]
+ },
+ "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",
+ "\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/Chapter3.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter3.ipynb
new file mode 100644
index 00000000..4e0cc29f
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter3.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/Chapter4.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter4.ipynb
new file mode 100644
index 00000000..9b2f69b0
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter4.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/Chapter5.ipynb b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter5.ipynb
new file mode 100644
index 00000000..42cb1f19
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/Chapter5.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/chapter2_Molecular_Diffusion_example_2.3_plot.png b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.3_plot.png
new file mode 100644
index 00000000..a3043935
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.3_plot.png
Binary files differ
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.4_plot.png b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.4_plot.png
new file mode 100644
index 00000000..5634906e
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter2_Molecular_Diffusion_example_2.4_plot.png
Binary files differ
diff --git a/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter4_Interphase_Mass_Transfer_example_4.5_plot.png b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter4_Interphase_Mass_Transfer_example_4.5_plot.png
new file mode 100644
index 00000000..ef798e9e
--- /dev/null
+++ b/Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K._Dutta/screenshots/chapter4_Interphase_Mass_Transfer_example_4.5_plot.png
Binary files differ
diff --git a/modern_physics_by_Satish_K._Gupta/README.txt b/modern_physics_by_Satish_K._Gupta/README.txt
new file mode 100644
index 00000000..0e6aa590
--- /dev/null
+++ b/modern_physics_by_Satish_K._Gupta/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Ravi Garg
+Course: btech
+College/Institute/Organization: Gurgaon College of Engineering , MDU Rohtak
+Department/Designation: ECE
+Book Title: modern physics
+Author: Satish K. Gupta
+Publisher: 18-Professors' colony, Ferozepore city-152002
+Year of publication: 2004
+Isbn: 81-245-0041-X
+Edition: 2nd \ No newline at end of file