We shows how one can easily reproduce the Figures 5.14 and 5.15 (pages 113-114) of Ref. 1 using ContourPlot command.
​
Applying singular point analysis to reactive distillation, one determines the attainable bottom composition of an infinitely high counter-current RD column operated at infinite reflux. This attainable compositions are the stable node, which is calculated from the intersection of the kinetic curve (shown in red) and singular point curve (shown in blue).
Case a:
α
13
=0.2and
α
23
=3.0
Singular point curve
In[]:=
y3=1-y1-y2;x3=1-x1-x2;
In[]:=
y1=x1/(x1+
α
21
x2+
α
31
x3);y2=x2/(
α
12
x1+x2+
α
32
x3);
In[]:=
eq=(x1+x3)(1+y3)-(y1+y3)(1+x3);
In[]:=
α
21
=3.0/0.2;
α
12
=0.2/3.0;
α
31
=1/0.2;
α
32
=1/3.0;
In[]:=
plt1=ContourPlot[eq0,{x1,-1,2},{x2,-1,2},RegionFunctionFunction[{x1,x2},Evaluate[Abs[eq]<1.0]],ContourStyle->{Dashed,Thick}]
Out[]=
In[]:=
eq2=-(y2-x2)+(-1+x2)Da(x1x2-x3/K);
Kinetic curve for Damköhler number Da=2.33
In[]:=
K=5;Da=2.33;
In[]:=
plt2=ContourPlot[eq20,{x1,-0.5,1.5},{x2,-0.6,1.6},RegionFunctionFunction[{x1,x2},Evaluate[Abs[eq]<1.0]],ContourStyle{Dashed,Thick,Red}]
Out[]=
In[]:=
sol=FindRoot[{eq0,eq20},{x1,0.8},{x2,1.7}]
Out[]=
{x10.695511,x21.07854}
In[]:=
A=Show[plt2,plt1,Graphics[{{Dashed,Thick,RGBColor[1,0,1],Line[{{0,0},{0,1}}]},{Dashed,Thick,RGBColor[1,0,1],Line[{{0,0},{1,0}}]},{Dashed,Thick,RGBColor[1,0,1],Line[{{0,1},{1,0}}]},{RGBColor[0,1,0],PointSize[0.025],Point[{x1/.sol,x2/.sol}]},{Dashed,Thick,RGBColor[0,1,0],PointSize[0.025],Point[{1,0}]},{RGBColor[0,1,0],PointSize[0.025],Point[{0,1}]}}]]
Out[]=
In[]:=
img=
;
In[]:=
Show[A,ImageSize->400{1,1},Prolog->{Raster[ImageData[img,DataReversed->True],{Scaled[{-0.02,0.005}],Scaled[{1,1.}]}]},FrameLabel->{Style["
x
A
",16,Italic],Style["
x
B
",16,Italic]}]
Out[]=
Case b:
α
13
=5.0and
α
23
=3.0
In[]:=
α
21
=3.0/5.0;
α
12
=5.0/3.0;
α
31
=1/5.0;
α
32
=1/3.0;
Singular point curve
In[]:=
plt3=ContourPlot[eq0,{x1,-0.3,1.3},{x2,-0.3,1.3},RegionFunctionFunction[{x1,x2},Evaluate[Abs[eq]<1.0]],ContourStyle->{Dashed,Thick}]
Out[]=
Kinetic curve for Damköhler number Da=1.5
In[]:=
K=5;Da=1.5;
In[]:=
eq2=-(y2-x2)+(-1+x2)Da(x1x2-x3/K);
In[]:=
plt4=ContourPlot[eq20,{x1,-0.3,1.3},{x2,-0.3,1.3},RegionFunctionFunction[{x1,x2},Evaluate[Abs[eq]<1]],ContourStyle{Dashed,Thick,Red}]
Out[]=
In[]:=
sol1=FindRoot[{eq0,eq20},{x1,0.8},{x2,0.7}]
Out[]=
{x10.87732,x20.686388}
In[]:=
sol2=FindRoot[{eq0,eq20},{x1,0.08},{x2,0.3}]
Out[]=
{x10.0912648,x20.20995}
In[]:=
A=Show[plt4,plt3,Graphics[{{Dashed,Thick,RGBColor[1,0,1],Line[{{0,0},{0,1}}]},{Dashed,Thick,RGBColor[1,0,1],Line[{{0,0},{1,0}}]},{Dashed,Thick,RGBColor[1,0,1],Line[{{0,1},{1,0}}]},{RGBColor[0,1,0],PointSize[0.025],Point[{x1/.sol1,x2/.sol1}]},​​{RGBColor[0,1,0],PointSize[0.025],Point[{x1/.sol2,x2/.sol2}]},{RGBColor[0,1,0],PointSize[0.025],Point[{1,0}]},{RGBColor[0,1,0],PointSize[0.025],Point[{0,1}]}}]]

References

◼
  • [1] K. Sundmacher & Z. Qi, Importance of Reaction Kinetics for Catalytic Distillation, Reactive Distillation, Status and Future Directions, Edited by Kai Sundmacher & Achim Kienle, Wiley VCH, 2002.
  • CITE THIS NOTEBOOK

    Singular point analysis in reactive distillation​
    by Housam Binous and Ahmed Bellagi
    Wolfram Community, STAFF PICKS, September 8, 2025
    ​https://community.wolfram.com/groups/-/m/t/3541802