Binary LLE via Common Tangent Analysis
Authors: Housam Binous
Binary LLE via Common Tangent Analysis
Authors: Housam Binous
Authors: Housam Binous
For the partially miscible water + n-butanol system, liquid–liquid equilibrium (LLE) calculations were performed using the NRTL model. The temperature-dependent interaction parameters were taken from the τ–τ LLE parameterization methodology proposed by Danielle L. de Klerk and Cara E. Schwarz [1]. The equilibrium compositions of the coexisting liquid phases were obtained by applying the common tangent criterion to the Gibbs free energy of mixing calculated from the NRTL model. Predicted binodal compositions were generated over the temperature range 273.15–353.15 K and compared with the experimental mutual solubility data compiled by Andrzej Maczynski and co-workers [2]. The results show that the NRTL model successfully reproduces the temperature dependence of the miscibility gap, with calculated phase compositions in good agreement with the experimental LLE data throughout the investigated temperature range. This confirms the reliability of the τ–τ LLE parameterization for representing phase splitting in the water + n-butanol system.
References:
[1] Danielle L. de Klerk and Cara E. Schwarz, Simplified Approach to the Parameterization of the NRTL Model for Partially Miscible Binary Systems: Tττ LLE Methodology, Industrial & Engineering Chemistry Research, 2023 62 (4), pp. 2021-2035. DOI: 10.1021/acs.iecr.2c03953
[2] Andrzej Maczynski, David G. Shaw, Marian Goral, Barbara Wisniewska-Goclowska, IUPAC-NIST Solubility Data Series. 82. Alcohols with Water—Revised and Updated: Part 1. C4 Alcohols with Water. J. Phys. Chem. Ref. Data 1, March 2007; 36 (1): pp. 59–132.
For the partially miscible water + n-butanol system, liquid–liquid equilibrium (LLE) calculations were performed using the NRTL model. The temperature-dependent interaction parameters were taken from the τ–τ LLE parameterization methodology proposed by Danielle L. de Klerk and Cara E. Schwarz [1]. The equilibrium compositions of the coexisting liquid phases were obtained by applying the common tangent criterion to the Gibbs free energy of mixing calculated from the NRTL model. Predicted binodal compositions were generated over the temperature range 273.15–353.15 K and compared with the experimental mutual solubility data compiled by Andrzej Maczynski and co-workers [2]. The results show that the NRTL model successfully reproduces the temperature dependence of the miscibility gap, with calculated phase compositions in good agreement with the experimental LLE data throughout the investigated temperature range. This confirms the reliability of the τ–τ LLE parameterization for representing phase splitting in the water + n-butanol system.
References:
[1] Danielle L. de Klerk and Cara E. Schwarz, Simplified Approach to the Parameterization of the NRTL Model for Partially Miscible Binary Systems: Tττ LLE Methodology, Industrial & Engineering Chemistry Research, 2023 62 (4), pp. 2021-2035. DOI: 10.1021/acs.iecr.2c03953
[2] Andrzej Maczynski, David G. Shaw, Marian Goral, Barbara Wisniewska-Goclowska, IUPAC-NIST Solubility Data Series. 82. Alcohols with Water—Revised and Updated: Part 1. C4 Alcohols with Water. J. Phys. Chem. Ref. Data 1, March 2007; 36 (1): pp. 59–132.
(*NRTLModel*)(*NRTLParameterstau12,tau21:dimensionlessinteractionparameters(=Δg12/RT,Δg21/RT)alpha:non-randomnessparameter(typically0.2–0.47)*)nrtlGex[x1_,tau12_,tau21_,alpha_]:=Module[{x2,G12,G21},x2=1-x1;G12=Exp[-alpha*tau12];G21=Exp[-alpha*tau21];x1*x2*(tau21*G21/(x1+x2*G21)+tau12*G12/(x2+x1*G12))]gmixRT[x1_,tau12_,tau21_,alpha_]:=Module[{x2},x2=1-x1;x1*Log[x1]+x2*Log[x2]+nrtlGex[x1,tau12,tau21,alpha]](*Derivative(chemicalpotentialdifference)*)dgdx[x1_,tau12_,tau21_,alpha_]:=D[gmixRT[x,tau12,tau21,alpha],x]/.x->x1(*Spinodal:solved²G/dx²=0*)spinodalPoints[tau12_,tau21_,alpha_]:=Module[{d2g,sols},d2g=D[gmixRT[x,tau12,tau21,alpha],{x,2}];sols=x/.NSolve[{d2g==0,0<x<1},x,Reals];Sort[sols]](*CommonTangent:solvethe2×2system-Conditions:(1)dG/dx|_{xa}=(G(xb)-G(xa))/(xb-xa)(2)dG/dx|_{xb}=(G(xb)-G(xa))/(xb-xa)*)commonTangent[tau12_,tau21_,alpha_]:=Module[{ga,gb,slope,eq1,eq2,guess,sol,xa,xb,sp},(*Initialguessfromspinodalbracket*)sp=spinodalPoints[tau12,tau21,alpha];If[Length[sp]<2,Return[{None,None}](*fullymiscible*)];guess={sp[[1]]*0.5,sp[[-1]]+(1-sp[[-1]])*0.5};ga=gmixRT[xa,tau12,tau21,alpha];gb=gmixRT[xb,tau12,tau21,alpha];slope=(gb-ga)/(xb-xa);eq1=D[gmixRT[x,tau12,tau21,alpha],x]/.x->xa;eq2=D[gmixRT[x,tau12,tau21,alpha],x]/.x->xb;sol=FindRoot[{eq1-slope==0,eq2-slope==0},{{xa,guess[[1]]},{xb,guess[[2]]}},MaxIterations->200,PrecisionGoal->8,AccuracyGoal->8];{xa,xb}/.sol]
(*SingleGmix/RTcurvewithcommontangentoverlay*)plotGmix[tau12_,tau21_,alpha_]:=Module[{xvals,gvals,ct,xa,xb,ga,gb,sl,tangentLine,curvePlot,tangentPlot,pointPlot,sp,spinPlot},xvals=Range[0.001,0.999,0.001];gvals=gmixRT[#,tau12,tau21,alpha]&/@xvals;sp=spinodalPoints[tau12,tau21,alpha];ct=Quiet@commonTangent[tau12,tau21,alpha];xa=ct[[1]];xb=ct[[2]];curvePlot=ListLinePlot[Transpose[{xvals,gvals}],PlotStyle->{RGBColor[0.2,0.4,0.7],Thickness[0.003]},PlotRange->All];If[xa=!=None,ga=gmixRT[xa,tau12,tau21,alpha];gb=gmixRT[xb,tau12,tau21,alpha];sl=(gb-ga)/(xb-xa);tangentLine={ga+sl*(#-xa),#}&/@{xa-0.05,xb+0.05};tangentPlot=ListLinePlot[Map[Reverse,tangentLine],(*swapto{x,y}*)PlotStyle->{RGBColor[0.85,0.35,0.18],Dashing[{0.02,0.01}],Thickness[0.002]}];pointPlot=ListPlot[{{xa,ga},{xb,gb}},PlotStyle->{RGBColor[0.85,0.35,0.18],PointSize[0.018]}];spinPlot=If[Length[sp]>=2,ListPlot[{{sp[[1]],gmixRT[sp[[1]],tau12,tau21,alpha]},{sp[[2]],gmixRT[sp[[2]],tau12,tau21,alpha]}},PlotStyle->{RGBColor[0.1,0.6,0.45],PointSize[0.015],PlotMarkers->{"▲",14}}],Graphics[]];Show[curvePlot,tangentPlot,pointPlot,spinPlot,Frame->True,FrameLabel->{"x1","Gmix/RT"},PlotLabel->Style[StringForm["NRTL τ12=`1`, τ21=`2`, α=`3`\nx1’=`4`, x1’’=`5`",tau12,tau21,alpha,NumberForm[xa,{4,4}],NumberForm[xb,{4,4}]],14],GridLines->Automatic,GridLinesStyle->Directive[GrayLevel[0.85],Dashed],ImageSize->480],(*Misciblecase*)Show[curvePlot,Frame->True,FrameLabel->{"x1","Gmix/RT"},PlotLabel->Style["NRTL — fully miscible",14],ImageSize->480]]]
(*Water+n-butanolat~25°C:literatureNRTLparamsfromRef.1*)(*valuesat298.15K:tau12≈-1.07154,tau21≈5.14313,alpha≈0.2*)Clear[T];tau12=−3.74+795.6/T;tau21=8.69-1057.5/T;alpha=0.20;
In[]:=
T=273.15;
In[]:=
{tau12,tau21}
Out[]=
{-0.827315,4.8185}
In[]:=
plotGmix[tau12,tau21,alpha]
Out[]=
In[]:=
T=353.15;
In[]:=
{tau12,tau21}
Out[]=
{-1.48713,5.69552}
In[]:=
plotGmix[tau12,tau21,alpha]
Out[]=
In[]:=
Clear[T]
In[]:=
mydata=Table[{i,Quiet@commonTangent[tau12/.T->i,tau21/.T->i,alpha][[1]],Quiet@commonTangent[tau12/.T->i,tau21/.T->i,alpha][[2]]},{i,273.15,353.15,5}]
Out[]=
{{273.15,0.020333,0.547108},{278.15,0.0199539,0.535117},{283.15,0.0196053,0.523579},{288.15,0.019284,0.512481},{293.15,0.0189871,0.50181},{298.15,0.0187123,0.491553},{303.15,0.0184574,0.481695},{308.15,0.0182206,0.47222},{313.15,0.0180001,0.463114},{318.15,0.0177946,0.454361},{323.15,0.0176028,0.445945},{328.15,0.0174234,0.437853},{333.15,0.0172554,0.430069},{338.15,0.0170979,0.42258},{343.15,0.0169502,0.415372},{348.15,0.0168113,0.408433},{353.15,0.0166807,0.40175}}