In [1]:

```
#Variable declaration
u = 3*10**-6 # [Kinematic viscosity, square m/s]
v = 0.01 # [Superficial liquid velocity, m/s]
g = 9.8 # [square m/s]
# From table 4.1
# For metal pall rings
a_pr = 112.6 # [ square m/cubic m]
e_pr = 0.951
Ch_pr = 0.784
# For Hiflow rings
a_hr = 92.3 # [square m/cubic m]
e_hr = 0.977
Ch_hr = 0.876
#Calculations
# Renoylds and Froude's number for metal pall rings
Rel_pr = v/(u*a_pr)
Frl_pr = v**2*a_pr/g
# From equation 4.5 since Rel is greater than 5, for pall rings
# ah/a = x_pr
x_pr = 0.85*Ch_pr*Rel_pr**0.25*Frl_pr**0.1
# From equation 4.3
hl_pr = (12*Frl_pr/Rel_pr)**(1.0/3.0)*(x_pr)**(2.0/3.0)
# Renoylds and Froude's number for Hiflow rings
Rel_hr = v/(u*a_hr)
Frl_hr = v**2*a_hr/g
# From equation 4.5 since Rel is greater than 5, for pall rings
# ah/a = x_pr
x_hr = 0.85*Ch_hr*Rel_hr**0.25*Frl_hr**0.1
# From equation 4.3
hl_hr = (12*Frl_hr/Rel_hr)**(1.0/3.0)*(x_hr)**(2.0/3.0)
#Result
print"The specific liquid holdup for Metal pall ring and Hiflow ring are",round(hl_pr,3),"cubic m holdup/cubic m packed bed and",round(hl_hr,3),"cubic m holdup/cubic m packed bed respectively"
```

In [2]:

```
#Variable declaration
# a-ammonia b-air c-water
P = 101.3 # [kPa]
T = 293 # [K]
R = 8.314
Vb = 20 # [kmole/h]
xab = 0.05
Vc = 1500 # [kg/h]
d = 0.9 # [ammonia absorbed]
Ma = 17 # [gram/mole]
Mb = 29 # [gram/mole]
Mc = 18 # [gram/mole]
g = 9.8 # [square m/s]
#Calculation
import math
# For Inlet gas
Mg = (1-xab)*Mb+xab*Ma # [gram/mole]
V = Vb*Mg/3600 # [kg/h]
rowg = P*Mg/(R*T) # [kg/cubic m]
Qg = V/rowg # [cubic m/s]
# For exiting liquid
b = Vb*xab*Ma*d # [ammonia absorbed in kg/h]
L = (Vc+b)/3600 # [kg/s]
rowl = 1000 # [kg/cubic m]
X = (L/V)*(math.sqrt(rowg/rowl))
# From equation 4.8
Yflood = math.exp(-(3.5021+1.028*math.log(X)+0.11093*(math.log(X))**2))
#Illustration 4.3(a)
# Solution(a)
# For 25-mm ceramic Raschig rings
Fp = 179 # [square ft/cubic ft]
ul = 0.001 # [Pa.s]
# From equation 4.6
Csflood = math.sqrt(Yflood/(ul**0.1*Fp)) # [m/s]
# From equation 4.7
vgf = Csflood/(math.sqrt(rowg/(rowl-rowg))) # [m/s]
# From equation 4.9
deltaPf = 93.9*(Fp)**0.7 # [Pa/m of packing]
# For operation at 70% of the flooding velocity
f = 0.7
# From equation 4.10
vg = f*vgf # [m/s]
D = math.sqrt(4*Qg/(vg*math.pi))
# From Table 4.1, for 25 mm ceramic Raschig rings
a_c = 190 # [square m/cubic m]
Ch_c = 0.577
e_c = 0.68
Cp_c = 1.329
# From equation 4.13
dp = 6*(1-e_c)/a_c # [m]
# From equation 4.12
Kw = 1/(1+(2*dp/(3*D*(1-e_c))))
# The viscosity of the gas phase is basically that of air at 293 K and 1 atm
ug = 1.84*10**-5 # [kg/m.s]
# From equation 4.15
Reg = vg*rowg*dp*Kw/(ug*(1-e_c))
# From equation 4.14
sia_o = Cp_c*((64/Reg)+(1.8/(Reg**0.08)))
# From equation 4.11
# deltaP_o/z = T
T = sia_o*a_c*rowg*vg**2/(2*Kw*e_c**3) # [Pa/m]
# Now
Gx = L/((math.pi*D**2.0)/4) # [kg/square m.s]
Rel = Gx/(a_c*ul)
Frl = Gx**2*a_c/(rowl**2*g)
# From equation 4.5
# ah/a = x_pr
x = 0.85*Ch_c*Rel**0.25*Frl**0.1
# From equation 4.3
hl = (12*Frl/Rel)**(1.0/3.0)*(x)**(2.0/3.0)
# From equation 4.16
# daltaP/deltaP_o = Y
Y = (e_c/(e_c-hl))**1.5*math.exp(Rel/200)
# Therefore
# deltaP/z = H
H = Y*T # [Pa/m]
#Result
print"The superficial velocity is",round(vgf,3)," m/s\n"
print"The pressure drop at flooding is",round(deltaPf),"Pa/m\n"
print"The superficial velocity at 70 percent of flooding is",round(vg,4),"m/s\n"
print"The column inside diameter at 70 percent of flooding is" ,round(D,3)," m\n"
print"The pressure drop for operation at 70 percent of flooding is",round(H),"Pa/m\n\n"
#Illustration 4.3(b)
# Solution (b)
# Similarly for 25 mm metal Hiflow rings above quantities are determined
#Calcualtion
Fp1 = 42 # [square ft/cubic ft]
Csflood1 = math.sqrt(Yflood/(ul**0.1*Fp1)) # [m/s]
vgf1 = Csflood1/(math.sqrt(rowg/(rowl-rowg))) # [m/s]
# From equation 4.9
deltaPf1 = 93.9*(Fp1)**0.7 # [Pa/m of packing]
# For operation at 70% of the flooding velocity
f = 0.7
# From equation 4.10
vg1 = f*vgf1 # [m/s]
D1 = math.sqrt(4*Qg/(vg1*math.pi))
# For Hiflow rings
a_h = 202.9 # [square m/cubic m]
e_h = 0.961
Ch_h = 0.799
Cp_h = 0.689
# From equation 4.13
dp1 = 6*(1-e_h)/a_h # [m]
# From equation 4.12
Kw1 = 1/(1+(2*dp1/(3*D1*(1-e_h))))
# The viscosity of the gas phase is basically that of air at 293 K and 1 atm
ug = 1.84*10**-5 # [kg/m.s]
# From equation 4.15
Reg1 = vg1*rowg*dp1*Kw1/(ug*(1-e_h))
# From equation 4.14
sia_o1 = Cp_h*((64/Reg1)+(1.8/(Reg1**0.08)))
# From equation 4.11
# deltaP_o/z = T
T1 = sia_o1*a_h*rowg*vg1**2/(2*Kw1*e_h**3) # [Pa/m]
# Now
Gx1 = L/(math.pi*D1**2/4) # [kg/square m.s]
Rel1 = Gx1/(a_h*ul)
Frl1 = Gx1**2*a_h/(rowl**2*g)
# From equation 4.5
# ah/a = x_pr
x1 = 0.85*Ch_h*Rel1**0.25*Frl1**0.1
# From equation 4.3
hl1 = (12*Frl1/Rel1)**(1.0/3.0)*(x1)**(2.0/3.0)
# From equation 4.16
# daltaP/deltaP_o = Y
Y1 = (e_h/(e_h-hl1))**1.5*math.exp(Rel1/200)
# Therefore
# deltaP/z = H
H1 = Y1*T1 # [Pa/m]
#Result
print"The superficial velocity is",round(vgf1,3),"m/s\n"
print"The pressure drop at flooding is",round(deltaPf1)," Pa/m\n"
print"The superficial velocity at 70 percent of flooding is",round(vg1,2),"m/s"
print"The column inside diameter at 70 percent of flooding is",round(D1,3)," m\n"
print"The pressure drop for operation at 70 percent of flooding is",round(H1),"Pa/m\n\n"
```

In [3]:

```
#Variable declaration
# a-ethanol b- gas(CO2 rich vapor) c-liquid water
P = 110 # [kPa]
T = 303 # [K]
R = 8.314
Vb = 180 # [kmole/h]
xab = 0.02 # [molar composition of ethanol in gas]
Vc = 151.5 # [kmole/h]
d = 0.97 # [ethanol absorbed]
Ma = 46 # [gram/mole]
Mb = 44 # [gram/mole]
Mc = 18 # [gram/mole]
g = 9.8 # [square m/s]
#Calculation
import math
# For Inlet gas
Mg = (1-xab)*Mb+xab*Ma # [gram/mole]
V = Vb*Mg/3600 # [kg/h]
rowg = P*Mg/(R*T) # [kg/cubic m]
Qg = V/rowg # [cubic m/s]
# For exiting liquid
b = Vb*xab*Ma*d # [ethanol absorbed in kg/h]
L = (Vc*Mc+b)/3600 # [kg/s]
rowl = 986 # [kg/cubic m]
X = (L/V)*(math.sqrt(rowg/rowl))
# From equation 4.8
Yflood = math.exp(-(3.5021+1.028*math.log(X)+0.11093*(math.log(X))**2))
#Illustration 4.4(a)
# Solution(a)
# For 50 mm metal Hiflow rings
Fp = 16 # [square ft/cubic ft]
ul = 6.31*10**-4 # [Pa.s]
# From equation 4.6
Csflood = math.sqrt(Yflood/(ul**0.1*Fp)) # [m/s]
# From equation 4.7
vgf = Csflood/(math.sqrt(rowg/(rowl-rowg))) # [m/s]
# From equation 4.9
deltaPf = 93.9*(Fp)**0.7 # [Pa/m of packing]
# For operation at 70% of the flooding velocity
f = 0.7
# From equation 4.10
vg = f*vgf # [m/s]
D = math.sqrt(4*Qg/(vg*math.pi))
# From Table 4.1, for 50 mm metal Hiflow rings
a = 92.3 # [square m/cubic m]
Ch = 0.876
e = 0.977
Cp = 0.421
# From equation 4.13
dp = 6*(1-e)/a # [m]
# From equation 4.12
Kw = 1/(1+(2*dp/(3*D*(1-e))))
# The viscosity of the gas phase is basically that of air at 303 K and 110 kPa
ug = 1.45*10**-5 # [kg/m.s]
# From equation 4.15
Reg = vg*rowg*dp*Kw/(ug*(1-e))
# From equation 4.14
sia_o = Cp*((64/Reg)+(1.8/(Reg**0.08)))
# From equation 4.11
# deltaP_o/z = I
I = sia_o*a*rowg*vg**2/(2*Kw*e**3) # [Pa/m]
# Now
Gx = L/(math.pi*D**2.0/4.0) # [kg/square m.s]
Rel = Gx/(a*ul)
Frl = Gx**2*a/(rowl**2*g)
# From equation 4.5
# ah/a = x
x = 0.85*Ch*Rel**0.25*Frl**0.1
# From equation 4.3
hl = (12*Frl/Rel)**(1.0/3.0)*(x)**(2.0/3.0)
# From equation 4.16
# daltaP/deltaP_o = Y
Y = (e/(e-hl))**1.5*math.exp(Rel/200)
# Therefore
# deltaP/z = H
H = Y*I # [Pa/m]
#Result
print"PArt-a\n"
print"Since the pressure drop is too high, we must increase the tower diameter to reduce the pressure drop"
# The resulting pressure drop is too high therefore, we must increase the tower diameter to reduce the pressure drop. Appendix D presents a Mathcad computer
# program designed to iterate automatically until the pressure drop criterion is satisfied.
# From the Mathcad program we get
D1 = 0.738 # [m]
print"The tower diameter for pressure drop of 300 Pa/m of packed height is",D1,"m"
#Illustration 4.4(b)
# Solution(b)
print"\nPart-(b)\n"
# For the tower diameter of D = 0.738 m, the following intermediate results were obtained from the computer program in Appendix D:
vg1 = 2.68 # [m/s]
vl1 = 0.00193 # [m/s]
hl1 = 0.017
ah1 = 58.8 # [square m/cubic m]
Reg1 = 21890
Rel1 = 32.6
Kw1 = 1/(1+(2*dp/(3*D1*(1-e))))
#Calculation
f1 = vg1/vgf
print"The fractional approach to flooding conditions is ",round(f1,2)
#Illustration 4.4(c)
# Solution(c)
# For ethanol
print "\nPart-(c)\n"
Vc_a = 167.1 # [cubic cm/mole]
sigma_a = 4.53*10**-10 # [m]
# E/k = M
M_a = 362.6 # [K]
# For carbon dioxide
sigma_b = 3.94*10**-10 # [m]
M_b = 195.2 # [K]
# From equation 1.48
Vb_a = 0.285*Vc_a**1.048 # [cubic cm/mole]
e1 = (9.58/(Vb_a)-1.12)
# From equation 1.53
Dl = 1.25*10**-8*((Vb_a)**-0.19 - 0.292)*T**1.52*(ul*10**3)**e1 # [square cm/s]
# From equation 1.49
Dg = 0.085 # [square cm/s]
# From Table 4.2, for 50 mm metal Hiflow rings
Cl = 1.168
Cv = 0.408
# From equation 4.17
kl = 0.757*Cl*math.sqrt(Dl*a*vl1*10**-4/(e*hl1)) # [m/s]
mtcl = kl*ah1 # [s**-1]
Sc = ug/(rowg*Dg*10**-4)
# From equation 4.18
ky = 0.1304*Cv*(Dg*10**-4*P*1000/(R*T))*(Reg1/Kw1)**(3.0/4.0)*Sc**(2.0/3.0)*(a/(math.sqrt(e*(e-hl1)))) # [mole/square m.s]
mtcg = ky*ah1*10**-3 # [kmole/cubic m.s]
#Result
print"The gas and liquid volumetric mass transfer coefficients are",round(mtcg,3),"kmole/cubic m.s and",round(mtcl,4),"s**-1 respectively"
```

In [4]:

```
#Variable declaration
# a-chloroform b-water c-air
T = 298 # [K]
Dv = 1 # [vessel diameter, m]
Vb = 10 # [kg/s]
ca = 240*10**-6 # [gram/l]
xr = 0.9 # [chloroform which is to be removed]
m = 220
Ds = 0.5 # [diameter of sparger, m]
no = 90 # [number of orifices]
Do = 3*10**-3 # [diameter of orifice, m]
nm = 0.6 # [mechanical efficiency]
rowb = 1000 # [kg/cubic m]
R = 8.314
Mc = 29 # [gram/mole]
Mb = 18 # [gram/mole]
g = 9.8 # [square m/s]
#Calculation
import math
from scipy.optimize import fsolve
Vair = 0.1 # [kg/s as calculated in chapter 3]
mg = Vair/no # [mass flow rate through each orifice, kg/s]
ug = 1.8*10**-5 # [kg/m.s]
Reo = 25940 # [Renoylds number]
# From equ. 4.20
dp = 0.0071*Reo**-0.05 # [m]
# Since the water column height is not known, therefore an iterative procedure must be implemented.
# Assuming column height, Z = 0.5 m
Z = 0.5 # [m]
# For Z = 0.5 m
rowl = 1000 # [kg/cubic m]
Ps = 101.3 # [kPa]
Po = Ps+(1000*9.8*0.5/1000) # [kPa]
Pavg = (Po+Ps)/2 # [kPa]
rowg = Pavg*Mc/(R*T) # [kg/cubic m]
area = math.pi*Dv**2.0/4.0 # [square m]
vg = Vair/(rowg*area) # [m/s]
# In this case rowl = rowg and sigma = sigmaAW
# From equation 4.22
# Vg = vg
# vg/vs = 0.182
vs = vg/0.182 # [m/s]
vl = -Vb/(rowl*area) # [negative because water flows downward, m/s]
# From equ 4.21
def f12(phig):
return(vs - (vg/phig)-(-vl/(1-phig)))
phig = fsolve(f12,0.1)
# Now in this case
S = vl/(1-phig)
# Value of 'S' comes out to be less than 0.15 m/s
# Therefore
dp = (dp**3*Po/Pavg)**(1.0/3.0) # [m]
# From equ 4.23
a = 6*phig/dp # [m**-1]
# Now we calculate diffusivity of chloroform
Vba = 88.6 # [cubic cm/mole]
u = 0.9*10**-3 # [Pa-s]
e = (9.58/(Vba)-1.12)
# From equation 1.53
Dl = 1.25*10**-8*((Vba)**-0.19 - 0.292)*T**1.52*(u*10**3)**e # [square cm/s]
# And Schmidt number is
Scl = 833 # [Schmidt Number]
# Now we calculate dp*g**(1/3)/Dl**(2/3) = J
J = dp*g**(1.0/3.0)/(Dl*10**-4)**(2.0/3.0)
Reg = dp*vs*rowl/u # [Gas bubble Renoylds number]
# From equ 4.25
Shl = 2 + 0.0187*Reg**0.779*Scl**0.546*J**0.116
# For dilute solution xbm = 1 or c = 55.5 kmole/cubic m
# Then for Nb = 0
c = 55.5 # [kmole/cubic m]
kx = Shl*c*Dl*10**-4/dp # [kmole/square m.s]
mtc = kx*a # [kmole/cubic m.s]
L = Vb/Mb # [kmole/s]
Gmx = L/area # [kmole/square m.s]
V = Vair/Mc # [kmole/s]
A = L/(m*V) # [absorption factor]
# From equ 4.28
# For, xin/xout = x = 10
x = 10
Z = (Gmx/(kx*a*(1-A)))*math.log(x*(1-A)+A)
# With this new estimated Z ,we again calculate average pressure in the # column of water
Po1 = 110.1 # [kPa]
Pavg1 = 105.7 # [kPa]
rowg1 = Pavg1*Mc/(R*T)
# Now value of rowg1 obtained is very close to value used in the first # iteration. Therefore on three iteractions we achieve a value of 'Z'
Z1 = 0.904 # [m]
rowgo = Po1*Mc/(R*T) # [kg/cubic m]
vo1 = 4*mg/(math.pi*Do**2*rowgo) # [m/s]
# Therefore, vo1**2/(2*gc) = F
gc = 1
F = vo1**2/(2*gc) # [J/kg]
# And R*T*math.log(Po/Ps)/Mc = G
G = R*T*1000*math.log(Po1/Ps)/Mc # [J/kg]
Zs = 0
# And (Z1-Zs)*g/gc = H
H = (Z1-Zs)*g/gc # [J/kg]
# From equ 4.27
W = F+G+H # [J/kg]
# Now the air compressor power is
W1 = W*Vair*10**-3/nm # [kW]
#Result
print"The depth of the water column required to achieve the specified 90percent removal efficiency is ",Z1,"m"
print"The power required to operate the air compressor is",round(W1,2),"kW"
```

In [5]:

```
#Variable declaration
Ff = 0.9 # [foaming factor]
sigma = 70 # [liquid surface tension, dyn/cm]
Do = 5 # [mm]
#From Example 4.4
# X = 0.016
p = 15 # [pitch, mm]
# From equ 4.35
# Ah/Aa = A
A = 0.907*(Do/p)**2 # [ratio of vapor hole area to tray active area]
#Calculations
import math
from scipy.optimize import fsolve
# Assume
t = 0.5 # [m]
# From equ 4.32
alpha = 0.0744*t+0.01173
beeta = 0.0304*t+0.015
# Since X<0.1, therefore
X = 0.1
# From equ 4.31
Cf = alpha*math.log10(1.0/X) + beeta
# Since Ah/Aa > 0.1, therefore
Fha = 1
Fst = (sigma/20)**0.2 # [surface tension factor]
# From equ 4.30
C = Fst*Ff*Fha*Cf
# From Example 4.4
rowg = 1.923 # [kg/cubic m]
rowl = 986 # [kg/cubic m]
Qg = 1.145 # [cubic m/s]
# From equation 4.29
vgf = C*(math.sqrt((rowl-rowg)/rowg)) # [m/s]
vgf=2.07 #approximated for precise answer
# Since X<0.1
# Equ 4.34 recommends Ad/At = B = 0.1
B = 0.1
# For an 80% approach to flooding, equation 4.33 yields
f = 0.8
D =math.sqrt((4*Qg)/(f*vgf*math.pi*(1-B))) # [m]
# At this point, the assumed value of tray spacing ( t = 0.5 m) must be # checked against the recommended values of Table 4.3. Since the calculated
# value of D < 1.0 m, t = 0.5 m is the recommended tray spacing, and no
# further iteration is needed.
def f14(Q):
return(B-((Q-math.sin(Q))/(2*math.pi)))
Q = fsolve(f14,1.5)
Lw = D*math.sin(Q/2) # [m]
rw = D/2*math.cos(Q/2) # [m]
At = math.pi/4*D**2 # [total cross sectional area, square m]
Ad = B*At # [Downcomer area, square m]
Aa = At-2*Ad # [ Active area over the tray, square m]
Ah = 0.101*Aa # [Total hole area, square m]
#Result
print"Summarizing, the details of the sieve-tray design are as follows"
print"Diameter =",round(D,3),"m\n Tray spacing =",t," m\n Total cross-sectional area=",round(At,3),"square m\n Downcomer area =",round(Ad,3)," square m\n Active area over the tray = ",round(Aa,3)," square m\n Weir length =",round(Lw,3)," m\n Distance from tray center to weir = ",round(rw,2)," m\n Total hole area =",round(Ah,3)," square m\n Hole arrangement: 5 mm diameter on an equilateral-triangular pitch 15 mm between hole centers, punched in stainless steel sheet metal 2 mm thick"
```

In [6]:

```
#Variable declaration
Do = 5 # [mm]
g = 9.8 # [square m/s]
hw = 50 # [mm]
# From example 4.4
Qg = 1.145 # [cubic m/s]
# From example 4.6
Ah = 0.062 # [square m]
# Do/l = t = 5/2 = 2.5
t = 2.5
# Ah/Aa = A = 0.101
A = 0.101
rowg = 1.923 # [kg/cubic m]
rowl = 986 # [kg/cubic m]
roww = 995 # [kg/cubic m]
#Calculation
import math
vo = Qg/Ah # [m/s]
# From equation 4.39
Co = 0.85032 - 0.04231*t + 0.0017954*t**2 # [for t>=1]
# From equation 4.38
hd = 0.0051*(vo/Co)**2*rowg*(roww/rowl)*(1-A**2) # [cm]
# From example 4.6
Aa = 0.615 # [square m]
va = Qg/Aa # [m/s]
# From equation 4.41
Ks = va*math.sqrt(rowg/(rowl-rowg)) # [m/s]
phie = 0.274
# From equation 4.4
ql = 0.000815 # [cubic m/s]
# From example 4.6
Lw = 0.719 # [m]
Cl = 50.12 + 43.89*math.exp(-1.378*hw)
sigma = 0.07 # [N/m]
# From eqution 4.40
hl = phie*(hw*10**(-1)+Cl*(ql/(Lw*phie))**(2.0/3.0))
# From equation 4.42
ho = 6*sigma/(g*rowl*Do*10**-3)*10**2 # [cm]
# From equation 4.37
ht = hd+hl+ho # [cm of clear liquid/tray]
deltaPg = ht*g*rowl*10**-2 # [Pa/tray]
#Result
print"The tray gas-pressure drop for the ethanol is ",round(deltaPg),"Pa/tray"
```

In [7]:

```
#Variable declaration
Do = 5*10**-3 # [m]
rowg = 1.923 # [kg/cubic m]
rowl = 986.0 # [kg/cubic m]
g = 9.8 # [square m/s]
hl = 0.0173 # [m]
vo = 18.48 # [m/s]
phie = 0.274
Ks = 0.082 # [m]
A = 0.101 # [Ah/Aa]
t = 0.5 # [m]
#Calculation
import math
Fr = math.sqrt(rowg*vo**2/(rowl*g*hl)) # [Froude number]
if Fr>0.5:
print"Weeping is not significant"
else:
print"Significant weeping occurs"
# From above weeping is not a problem under this circumstances
# From equation 4.47
k = 0.5*(1-math.tanh(1.3*math.log(hl/Do)-0.15))
# From equation 4.46
h2q = (hl/phie) + 7.79*(1+6.9*(Do/hl)**1.85)*(Ks**2/(phie*g*A)) # [m]
# From equation 4.45
E = 0.00335*(h2q/t)**1.1*(rowl/rowg)**0.5*(hl/h2q)**k
# From Example 4.4, the gas mass flow rate is V = 2.202 kg/s
V = 2.202 # [kg/s]
Le = E*V # [kg/s]
#Result
print"The entrainment flow rate for the ethanol absorber is",round(Le,2),"kg/s"
```

In [8]:

```
#Variable declaration
Do = 5*10**-3 # [m]
Ml = 18.63 # [molecular weight of water, gram/mole]
Mg = 44.04 # [molecular weight of carbon dioxide, gram/mole]
rowg = 1.923 # [kg/cubic m]
rowl = 986 # [kg/cubic m]
vo = 18.48 # [m/s]
hl = 0.0173 # [m]
ug = 1.45*10**-5 # [kg/m.s]
phie = 0.274
A = 0.101 # [Ah/Aa]
Dg = 0.085 # [square cm/s]
Dl = 1.91*10**-5 # [square cm/s]
Aa = 0.614 # [square m]
Qg = 1.145 # [cubic m/s]
t = 0.5 # [m]
h2q = 0.391 # [m]
rw = 0.34 # [m]
ql = 0.000815 # [cubic m/s]
g = 9.8 # [square m/s]
G = 2.202/44.04 # [kg/s]
L = 0.804/18.63 # [kg/s]
Refe = rowg*vo*hl/(ug*phie)
#Calculation
import math
cg =rowg/Mg # [kmole/cubic m]
cl = rowl/Ml # [kmole/cubic m]
# For the low concentrations prevailing in the liquid phase, the ethanol- # water solution at 303 K obeys Henry's law, and the slope of the equilibriu# m curve is m = 0.57
m = 0.57
# From equation 4.53
a1 = 0.4136
a2 = 0.6074
a3 = -0.3195
Eog = 1-math.exp(-0.0029*Refe**a1*(hl/Do)**a2*A**a3/((math.sqrt(Dg*(1-phie)/(Dl*A)))*m*cg/cl+1))
# From equation 4.62
Deg = 0.01 # [square m/s]
Peg = 4*Qg*rw**2/(Aa*Deg*(t-h2q)) # [Peclet number]
# Since Peclet number is greater than 50, therefore vapor is unmixed
# From equation 4.60
Del = 0.1*math.sqrt(g*h2q**3) # [square m/s]
# From equation 4.59
Pel = 4*ql*rw**2/(Aa*hl*Del)
N = (Pel+2)/2
lamda = m*G/L
# From equation 4.58
Emg = ((1+lamda*Eog/N)**N -1)/lamda*(1-0.0335*lamda**1.073*Eog**2.518*Pel**0.175)
# From example 4.8
E = 0.05
# Substituting in equation 4.63
Emge = Emg*(1-0.8*Eog*lamda**1.543*E/m)
#Result
print"The entrainment corrected Murphree tray efficiency for the ethanol is",round(Emge,3)
```