Recoveries vs. pressure ratio with different polymer membranes​
​Authors: Housam Binous and Ahmed Bellagi

Recovery increases with an increasing pressure ratio between the feed and the permeate as shown in Figure 7b of Ref.1 for different polymer membranes (see Table 7 of Ref. 1 ) and for nitrogen purity equal to 99 mole %. ​​
​​​
​​Here, we assume counter-current flow pattern in order to reproduce Fig. 7b of Ref. 1. To do so, we apply the methoglogy described in Ref. 2. ​​References : [1] T. Harlacher and M. Wessling, Gas–Gas Separation by Membranes, Chapter Thirteen, Progress in Filtration and Separation, Editor: Steve Tarleton, Elsevier, 2015, pp. 557-584.​[2] H . Binous, U . Zahid and A . Bellagi, Modeling for Multi-component Gas Permeation with Orthogonal Collocation and Arc-Length Continuation, Chemistry Africa (2024) . https://doi.org/10.1007/s42250-024-01167-y
In[]:=
functions={xA[1]xA[1][s],xA[2]xA[2][s],yA[2]yA[2][s],q[2]q[2][s],xA[3]xA[3][s],yA[3]yA[3][s],q[3]q[3][s],xA[4]xA[4][s],yA[4]yA[4][s],q[4]q[4][s],xA[5]xA[5][s],yA[5]yA[5][s],q[5]q[5][s],xA[6]xA[6][s],yA[6]yA[6][s],q[6]q[6][s],xA[7]xA[7][s],yA[7]yA[7][s],q[7]q[7][s],xA[8]xA[8][s],yA[8]yA[8][s],q[8]q[8][s],xA[9]xA[9][s],yA[9]yA[9][s],q[9]q[9][s],xA[10]xA[10][s],yA[10]yA[10][s],q[10]q[10][s],xA[11]xA[11][s],yA[11]yA[11][s],q[11]q[11][s],xA[12]xA[12][s],yA[12]yA[12][s],q[12]q[12][s],xA[13]xA[13][s],yA[13]yA[13][s],q[13]q[13][s],xA[14]xA[14][s],yA[14]yA[14][s],q[14]q[14][s],xA[15]xA[15][s],yA[15]yA[15][s],q[15]q[15][s],xA[16]xA[16][s],yA[16]yA[16][s],q[16]q[16][s],xA[17]xA[17][s],yA[17]yA[17][s],q[17]q[17][s],xA[18]xA[18][s],yA[18]yA[18][s],q[18]q[18][s],xA[19]xA[19][s],yA[19]yA[19][s],q[19]q[19][s],xA[20]xA[20][s],yA[20]yA[20][s],xA[21]xA[21][s],q[20]q[20][s],thetatheta[s],yA[21]yA[21][s],stst[s],
y
PAi

y
PAi
[s],
y
PBi

y
PBi
[s],g->g[s]}
Out[]=
{xA[1]xA[1][s],xA[2]xA[2][s],yA[2]yA[2][s],q[2]q[2][s],xA[3]xA[3][s],yA[3]yA[3][s],q[3]q[3][s],xA[4]xA[4][s],yA[4]yA[4][s],q[4]q[4][s],xA[5]xA[5][s],yA[5]yA[5][s],q[5]q[5][s],xA[6]xA[6][s],yA[6]yA[6][s],q[6]q[6][s],xA[7]xA[7][s],yA[7]yA[7][s],q[7]q[7][s],xA[8]xA[8][s],yA[8]yA[8][s],q[8]q[8][s],xA[9]xA[9][s],yA[9]yA[9][s],q[9]q[9][s],xA[10]xA[10][s],yA[10]yA[10][s],q[10]q[10][s],xA[11]xA[11][s],yA[11]yA[11][s],q[11]q[11][s],xA[12]xA[12][s],yA[12]yA[12][s],q[12]q[12][s],xA[13]xA[13][s],yA[13]yA[13][s],q[13]q[13][s],xA[14]xA[14][s],yA[14]yA[14][s],q[14]q[14][s],xA[15]xA[15][s],yA[15]yA[15][s],q[15]q[15][s],xA[16]xA[16][s],yA[16]yA[16][s],q[16]q[16][s],xA[17]xA[17][s],yA[17]yA[17][s],q[17]q[17][s],xA[18]xA[18][s],yA[18]yA[18][s],q[18]q[18][s],xA[19]xA[19][s],yA[19]yA[19][s],q[19]q[19][s],xA[20]xA[20][s],yA[20]yA[20][s],xA[21]xA[21][s],q[20]q[20][s],thetatheta[s],yA[21]yA[21][s],stst[s],
y
PAi

y
PAi
[s],
y
PBi

y
PBi
[s],gg[s]}
PI Membrane
In[]:=
qB=.;SOL=.;​​eq1i=
y
PAi
/(
y
PBi
)qA(xA[1]-
p
l
/
p
h
y
PAi
)/(qB(xB[1]-
p
l
/
p
h
y
PBi
));​​eq2i=
y
PAi
+
y
PBi
1;​​xAin=0.7805;​​
q
f
=1.0;​​
p
l
=g
p
h
;​​Np=20;​​d[0,0]=(2Np^2+1)/6//N;​​d[Np,Np]=-(2Np^2+1)/6//N;​​yc[i_]:=Cos[iPi/Np]//N;​​d[i_,i_]:=-yc[i]/(2(1-yc[i]^2))//N;​​​​d[j_,k_]:=If[j≠k&&k≠0&&k≠Np&&j≠0&&j≠Np,(-1)^(j+k)/(yc[j]-yc[k])]//N;​​d[Np,0]=-1/2(-1)^Np;​​d[0,Np]=1/2(-1)^Np;​​d[j_,0]:=If[j≠Np&&j≠0,-1/2(-1)^j/(1-yc[j])];​​d[j_,Np]:=If[j≠Np&&j≠0,1/2(-1)^(j+Np)/(1+yc[j])];​​d[0,j_]:=If[j≠Np&&j≠0,2(-1)^j/(1-yc[j])];​​d[Np,j_]:=If[j≠Np&&j≠0,-2(-1)^(j+Np)/(1+yc[j])];​​Add=Table[d[i,j]//N,{i,0,Np},{j,0,Np}];​​xAp[i_]:=2/st
Np+1
∑
j=1
Add[[i,j]]xA[j];​​yAp[i_]:=2/st
Np+1
∑
j=1
Add[[i,j]]yA[j]​​qp[i_]:=2/st
Np+1
∑
j=1
Add[[i,j]]q[j];​​eq1[i_]:=-xAp[i]q[i]qA(xA[i]-
p
l
/
p
h
yA[i])-xA[i](qA(xA[i]-
p
l
/
p
h
yA[i])+qB(xB[i]-
p
l
/
p
h
yB[i]))​​eq2[i_]:=qp[i]-(qA(xA[i]-
p
l
/
p
h
yA[i])+qB(xB[i]-
p
l
/
p
h
yB[i]))​​eq3[i_]:=(q[i]-(1-theta))yA[i]-(1-theta)xA[1]+q[i]xA[i]​​yB[i_]:=1-yA[i]​​xB[i_]:=1-xA[i]​​xA[Np+1]=xAin;yA[1]=
y
PAi
;q[Np+1]=
q
f
;q[1]=
q
f
(1-theta);​​unknown=Join[Flatten[Join[Table[{{xA[i],0.99}},{i,1,Np}],Table[{{yA[i],0.2}},{i,2,Np+1}],Table[{{q[i],0.99
q
f
}},{i,2,Np}]],1],{{theta,0.06},{
y
PAi
,0.999},{
y
PBi
,0.1},{st,0.1}}];​​sys=Flatten@Join[Table[{eq1[i],eq2[i],eq3[i]},{i,2,Np}],{eq1i,eq2i,eq1[1],eq2[1],eq3[Np+1],xA[1]==0.99}];​​qA=1;qB=6.7;sol=FindRoot[sys/.g1/11.,unknown,MaxIterations100]
Out[]=
{xA[1]0.99,xA[2]0.989751,xA[3]0.988972,xA[4]0.987567,xA[5]0.985363,xA[6]0.982106,xA[7]0.977454,xA[8]0.970989,xA[9]0.962259,xA[10]0.950858,xA[11]0.936546,xA[12]0.919377,xA[13]0.899792,xA[14]0.878628,xA[15]0.857021,xA[16]0.83624,xA[17]0.817512,xA[18]0.80189,xA[19]0.790183,xA[20]0.782946,yA[2]0.956206,yA[3]0.954214,yA[4]0.950723,yA[5]0.945479,yA[6]0.938126,yA[7]0.928232,yA[8]0.915338,yA[9]0.899049,yA[10]0.879154,yA[11]0.855773,yA[12]0.829452,yA[13]0.801174,yA[14]0.772258,yA[15]0.744164,yA[16]0.718284,yA[17]0.695787,yA[18]0.677553,yA[19]0.66418,yA[20]0.656031,yA[21]0.653295,q[2]0.380598,q[3]0.388964,q[4]0.402746,q[5]0.421721,q[6]0.445606,q[7]0.474088,q[8]0.506851,q[9]0.543594,q[10]0.584024,q[11]0.627812,q[12]0.674496,q[13]0.723369,q[14]0.773353,q[15]0.822948,q[16]0.870261,q[17]0.913136,q[18]0.949361,q[19]0.976905,q[20]0.994135,theta0.622207,
y
PAi
0.956853,
y
PBi
0.0431472,st0.48255}
In[]:=
xA[Np+1]=.;yA[1]=.;q[Np+1]=.;q[1]=.;​​xA[Np+1][s_]:=xAin;yA[1][s_]:=
y
PAi
[s];q[Np+1][s_]:=
q
f
;q[1][s_]:=
q
f
(1-theta[s]);​​init=Join[Flatten[Table[{xA[i][0](xA[i]/.sol),yA[i][0](yA[i]/.sol)},{i,2,Np}],1],Flatten[Table[q[i][0](q[i]/.sol),{i,2,Np}],1],{xA[1][0](xA[1]/.sol),yA[Np+1][0](yA[Np+1]/.sol),
y
PAi
[0](
y
PAi
/.sol),
y
PBi
[0](
y
PBi
/.sol),theta[0](theta/.sol),st[0](st/.sol),g[0]==1/11}];​​initdev=Join[Flatten[Table[{xA[i]'[0]-0.1,yA[i]'[0]-0.1},{i,2,Np}],1],Flatten[Table[{q[i]'[0]-0.1},{i,2,Np}],1],{theta'[0]-0.1,g'[0]==0.1,st'[0]-1,
y
PAi
'[0]-0.1,
y
PBi
'[0]-0.1,xA[1]'[0]-0.1,yA[Np+1]'[0]-0.1}];​​aux=Sum[xA[i]'[s]^2+yA[i]'[s]^2,{i,2,Np}]+xA[1]'[s]^2+yA[Np+1]'[s]^2+Sum[q[i]'[s]^2,{i,2,Np}]+theta'[s]^2+st'[s]^2+g'[s]^2+
y
PAi
'[s]^2+
y
PBi
'[s]^21;​​unknown1=Join[Flatten[Table[{xA[i],yA[i]},{i,2,Np}],1],Flatten[Table[q[i],{i,2,Np}],1],{theta,g,st,xA[1],
y
PAi
,
y
PBi
,yA[Np+1]}];​​SYS=Join[sys/.functions,{aux},init,initdev];​​SOL=Quiet@NDSolve[SYS,unknown1,{s,-1,0.1},AccuracyGoal5];
In[]:=
p1=ListPlot[Table[Evaluate[{1/g[s],xA[1][s](1-theta[s])/xAin}/.SOL[[1]]],{s,-1,0.1,0.004}],PlotRange->{{5,15},{0,0.5}},FrameTrue,GridLinesAutomatic,AspectRatio1,PlotStyle{Thick,PointSize[0.0125],Darker@Blue},FrameTrue,FrameLabel{Style["Pressure ratio",16],Style["Nitrogen recovery",16]}];
PPO Membrane
In[]:=
qA=1;qB=4.4;​​sol=FindRoot[sys/.g1/11.,unknown,MaxIterations100]
Out[]=
{xA[1]0.99,xA[2]0.98966,xA[3]0.988594,xA[4]0.986659,xA[5]0.983618,xA[6]0.979147,xA[7]0.972861,xA[8]0.964365,xA[9]0.953345,xA[10]0.939658,xA[11]0.923426,xA[12]0.90508,xA[13]0.885335,xA[14]0.865104,xA[15]0.845377,xA[16]0.827103,xA[17]0.811106,xA[18]0.798044,xA[19]0.788397,xA[20]0.782489,yA[2]0.966346,yA[3]0.964362,yA[4]0.960876,yA[5]0.955631,yA[6]0.948295,yA[7]0.938513,yA[8]0.925976,yA[9]0.910519,yA[10]0.892211,yA[11]0.871424,yA[12]0.848832,yA[13]0.825348,yA[14]0.802003,yA[15]0.77982,yA[16]0.75971,yA[17]0.742411,yA[18]0.728477,yA[19]0.718289,yA[20]0.712089,yA[21]0.710009,q[2]0.255431,q[3]0.266371,q[4]0.284387,q[5]0.309169,q[6]0.340322,q[7]0.37739,q[8]0.419876,q[9]0.467243,q[10]0.518885,q[11]0.574069,q[12]0.631857,q[13]0.691033,q[14]0.750074,q[15]0.807168,q[16]0.860302,q[17]0.907393,q[18]0.946447,q[19]0.97572,q[20]0.993857,theta0.748238,
y
PAi
0.966989,
y
PBi
0.033011,st0.638627}
PDMS Membrane