Diffusion Effects in Complex Reactions
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

Reference: 
(1) James Wei, Intraparticle Diffusion Effects in Complex Systems of First Order Reactions II. The Influence of Diffusion on the Performance of Chemical Reactors, Journal of Catalysis, Vol. 1, n°6, pp. 538-546, 1962

(2) James Wei, Intraparticle Diffusion Effects in Complex Systems of First Order Reactions I. The Effects in Single Particles, Journal of Catalysis, Vol. 1, n°6, pp. 526-537, 1962

Reactions paths when diffusion effects are not taken into account. The following concecutive reversible first order reactions are considered:

True Rate constant Matrix is K

Off[General::spell]

Off[General::spell1]

K={{1,-4,0},{-1,8,-1},{0,-4,1}}

K//MatrixForm

Eigenvalues of the rate constant matrix are (Subscript[λ, i])

Eigenvalues[K]

{λ1,λ2,λ3}={9.,1.,0}

Transformation matrix is X

X=Transpose[Eigenvectors[K]]

X//MatrixForm

Diagonal matrix is Λ

Λ = {{9, 0, 0}, {0, 1, 0}, {0, 0, 0}}

Transformation matrix to obtain reaction paths in three-species reaction mixture as an equilateral triangular diagram.

P={{1,0.5},{0,0.866025}};

Computing and plotting reaction paths for the three-species rection system in the absence of diffusion effects.

Do[{(Subscript[c2, i])[z_] := 
          Evaluate[(X . MatrixExp[-z Λ] . 
                  Inverse[X] . {0.1 (10 - i), 0.1  i, 0})[[2]]], 
        (Subscript[c3, i])[z_] := 
          Evaluate[(X . MatrixExp[-z Λ] . 
                  Inverse[X] . {0.1 (10 - i), 0.1  i, 
                    0})[[3]]]}, {i, 0, 10}]

plotc[i_] := 
      ParametricPlot[P . {(Subscript[c2, i])[z], (Subscript[c3, i])[z]}, {z, 0, 50}, 
        PlotStyle -> RGBColor[0, 0, 1], 
        DisplayFunction -> Identity]

Do[{(Subscript[a2, i])[z_] := 
          Evaluate[(X . MatrixExp[-z Λ] . 
                  Inverse[X] . {0, 0.1 (10 - i), 0.1  i})[[2]]], 
        (Subscript[a3, i])[z_] := 
          Evaluate[(X . MatrixExp[-z Λ] . 
                  Inverse[X] . {0, 0.1 (10 - i), 
                    0.1  i})[[3]]]}, {i, 0, 10}]

P={{1,0.5},{0,0.866025}};

plota[i_] := 
      ParametricPlot[P . {(Subscript[a2, i])[z], (Subscript[a3, i])[z]}, {z, 0, 50}, 
        PlotStyle -> RGBColor[0, 0, 1], 
        DisplayFunction -> Identity]

Do[{(Subscript[b2, i])[z_] := 
          Evaluate[(X . MatrixExp[-z Λ] . 
                  Inverse[X] . {0.1 (10 - i), 0, 0.1  i})[[2]]], 
        (Subscript[b3, i])[z_] := 
          Evaluate[(X . MatrixExp[-z Λ] . 
                  Inverse[X] . {0.1 (10 - i), 0, 
                    0.1  i})[[3]]]}, {i, 0, 10}]

P={{1,0.5},{0,0.866025}};

plotb[i_] := 
      ParametricPlot[P . {(Subscript[b2, i])[z], (Subscript[b3, i])[z]}, {z, 0, 50}, 
        PlotStyle -> RGBColor[0, 0, 1], 
        DisplayFunction -> Identity]

\(Show[Flatten[Table[{plota[i], plotc[i], plotb[i]}, {i, 0, 10}]], 
      Axes -> False, 
      Epilog -> {RGBColor[1, 0, 0], Line[{{0, 0}, {1, 0}}], 
          Line[{{0, 0}, {0.5, 0.866025}}], Line[{{1, 0}, {0.5, 0.866025}}], 
          PointSize[0.02], RGBColor[0, 0, 1], 
          Point[P . {c2\_1[50], c3\_2[50]}], 
          Text[\*""\!\(A\_1\)"", {\(-0.1\), \(-0.1\)}], 
          Text[\*""\!\(A\_2\)"", {1.1, \(-0.1\)}], 
          Text[\*""\!\(A\_3\)"", {0.5, 0.96}]}, 
      PlotRange -> {{\(-0.5\), 2}, {\(-0.5\), 2}}, 
      TextStyle -> \ {FontSize -> 14, 
          FontWeight -> "Bold"}, 
      DisplayFunction -> $DisplayFunction, 
      AspectRatio -> 1]\)

\(p2 = 
      Show[Flatten[Table[{plota[i], plotc[i], plotb[i]}, {i, 0, 10, 2}]], 
        Axes -> False, 
        Epilog -> {RGBColor[1, 0, 0], Line[{{0, 0}, {1, 0}}], 
            Line[{{0, 0}, {0.5, 0.866025}}], Line[{{1, 0}, {0.5, 0.866025}}], 
            PointSize[0.02], RGBColor[0, 0, 1], 
            Point[P . {c2\_1[50], c3\_2[50]}], 
            Text[\*""\!\(A\_1\)"", {\(-0.1\), \(-0.1\)}], 
            Text[\*""\!\(A\_2\)"", {1.1, \(-0.1\)}], 
            Text[\*""\!\(A\_3\)"", {0.5, 0.96}]}, 
        PlotRange -> {{\(-0.5\), 2}, {\(-0.5\), 2}}, 
        TextStyle -> \ {FontSize -> 14, 
            FontWeight -> "Bold"}, 
        DisplayFunction -> $DisplayFunction, 
        AspectRatio -> 1]\)

Reactions paths when diffusion effects are considered. Catalyst radius is R=1cm and diffusivities are all equal to Di=(10^(-2))(cm^2)/sec.

Values of (Subscript[φ, i]) , (Subscript[η, i]) and \(TraditionalForm\`\(λ\_i\^+\)\)for i=1, 2 and 3.

R=1;Di=10^-2;

{φ1,φ2,φ3}=R Sqrt[{λ1,λ2,λ3}/Di]

{η1,η2,η3}={3 φ1^-2 (φ1 Coth[φ1]-1),3 φ2^-2 (φ2 Coth[φ2]-1),Limit[3 φ^-2 (φ Coth[φ]-1),φ->0]}

\({\(λ\_1\^+\), \(λ\_2\^+\), \(λ\_3\^+\)} = {λ1, λ2, λ3}*{η1, η2, η3}\)

\(MatrixForm[
      Transpose[{{Index, 1, 2, 
            3}, {λ\_i, λ1, λ2, λ3}, {φ\_i, φ1, φ2, φ3}, {η\_i, η1, η2, η3}, {\(λ\_i\^+\), \(λ\_1\^+\), \(λ\_2\^+\), \(λ\_3\^+\)}}]]\)

Diagonal Matrix

\(\(Λ\^+\) = {{0.87, 0, 0}, {0, 0.27, 0}, {0, 0, 
          0}}\)

Diffusion-disguised rate constant matrix is \(TraditionalForm\`\(\(K\^+\)\(.\)\)\) Since the diffusion coefficients for the three species are all equal to Di, the tranformation matrices \(TraditionalForm\`\(X\^+\)\ and\ X\)are identical.

\(X . \(Λ\^+\) . Inverse[X] // MatrixForm\)

The matrix \(TraditionalForm\`\(K\^+\)\)corresponds to the following reaction scheme:

Diffusion modified the original scheme consisting of only consecutive recations into one that has now parallel reactions steps from A1 to A2 and A3.

Computing and plotting reaction paths for the three-species rection system when diffusion effects are considered.

\(Do[{c2\_i[z_] := 
          Evaluate[\((X . MatrixExp[\(-z\)\ \(Λ\^+\)] . 
                  Inverse[X] . {0.1\ \((10 - i)\), 0.1\ \ i, 0})\)[\([2]\)]], 
        c3\_i[z_] := 
          Evaluate[\((X . MatrixExp[\(-z\)\ \(Λ\^+\)] . 
                  Inverse[X] . {0.1\ \((10 - i)\), 0.1\ \ i, 
                    0})\)[\([3]\)]]}, {i, 0, 10}]\)

P={{1,0.5},{0,0.866025}};

plotc[i_] := 
      ParametricPlot[P . {(Subscript[c2, i])[z], (Subscript[c3, i])[z]}, {z, 0, 50}, 
        PlotStyle -> RGBColor[0, 1, 0], 
        DisplayFunction -> Identity]

\(Do[{a2\_i[z_] := 
          Evaluate[\((X . MatrixExp[\(-z\)\ \(Λ\^+\)] . 
                  Inverse[X] . {0, 0.1\ \((10 - i)\), 0.1\ \ i})\)[\([2]\)]], 
        a3\_i[z_] := 
          Evaluate[\((X . MatrixExp[\(-z\)\ \(Λ\^+\)] . 
                  Inverse[X] . {0, 0.1\ \((10 - i)\), 
                    0.1\ \ i})\)[\([3]\)]]}, {i, 0, 10}]\)

P={{1,0.5},{0,0.866025}};

plota[i_] := 
      ParametricPlot[P . {(Subscript[a2, i])[z], (Subscript[a3, i])[z]}, {z, 0, 50}, 
        PlotStyle -> RGBColor[0, 1, 0], 
        DisplayFunction -> Identity]

\(Do[{b2\_i[z_] := 
          Evaluate[\((X . MatrixExp[\(-z\)\ \(Λ\^+\)] . 
                  Inverse[X] . {0.1\ \((10 - i)\), 0, 0.1\ \ i})\)[\([2]\)]], 
        b3\_i[z_] := 
          Evaluate[\((X . MatrixExp[\(-z\)\ \(Λ\^+\)] . 
                  Inverse[X] . {0.1\ \((10 - i)\), 0, 
                    0.1\ \ i})\)[\([3]\)]]}, {i, 0, 10}]\)

P={{1,0.5},{0,0.866025}};

plotb[i_] := 
      ParametricPlot[P . {(Subscript[b2, i])[z], (Subscript[b3, i])[z]}, {z, 0, 50}, 
        PlotStyle -> RGBColor[0, 1, 0], 
        DisplayFunction -> Identity]

\(Show[Flatten[Table[{plota[i], plotc[i], plotb[i]}, {i, 0, 10}]], 
      Axes -> False, 
      Epilog -> {RGBColor[1, 0, 0], Line[{{0, 0}, {1, 0}}], 
          Line[{{0, 0}, {0.5, 0.866025}}], Line[{{1, 0}, {0.5, 0.866025}}], 
          PointSize[0.02], RGBColor[0, 0, 1], 
          Point[P . {c2\_1[50], c3\_2[50]}], 
          Text[\*""\!\(A\_1\)"", {\(-0.1\), \(-0.1\)}], 
          Text[\*""\!\(A\_2\)"", {1.1, \(-0.1\)}], 
          Text[\*""\!\(A\_3\)"", {0.5, 0.96}]}, 
      PlotRange -> {{\(-0.5\), 2}, {\(-0.5\), 2}}, 
      TextStyle -> \ {FontSize -> 14, 
          FontWeight -> "Bold"}, 
      DisplayFunction -> $DisplayFunction, 
      AspectRatio -> 1]\)

\(p1 = 
      Show[Flatten[Table[{plota[i], plotc[i], plotb[i]}, {i, 0, 10, 2}]], 
        Axes -> False, 
        Epilog -> {RGBColor[1, 0, 0], Line[{{0, 0}, {1, 0}}], 
            Line[{{0, 0}, {0.5, 0.866025}}], Line[{{1, 0}, {0.5, 0.866025}}], 
            PointSize[0.02], RGBColor[0, 0, 1], 
            Point[P . {c2\_1[50], c3\_2[50]}], 
            Text[\*""\!\(A\_1\)"", {\(-0.1\), \(-0.1\)}], 
            Text[\*""\!\(A\_2\)"", {1.1, \(-0.1\)}], 
            Text[\*""\!\(A\_3\)"", {0.5, 0.96}]}, 
        PlotRange -> {{\(-0.5\), 2}, {\(-0.5\), 2}}, 
        TextStyle -> \ {FontSize -> 14, 
            FontWeight -> "Bold"}, 
        DisplayFunction -> $DisplayFunction, 
        AspectRatio -> 1]\)

Computing and plotting the two straight line reaction paths

P.{-2,1}

Solve[-1.5 x + 0.866025 y == 0, y]

P.{0,-1}

Solve[-0.5x-0.866025 y==0,y]

Point[P.{c2[1],c3[1]}/.z->50]

y1=-0.577351 (x-0.33333)+0.384899

y2=1.73205 (x-0.33333)+0.384899

p3=Plot[y1,{x,0.25,1},Axes->False,PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity]

p4=Plot[y2,{x,0.11,0.555},Axes->False,PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity]

We get the same results as figure 1 page 541 of the paper by James Wei, Intraparticle Diffusion Effects in Complex Systems of First Order Reactions II. The Influence of Diffusion on the Performance of Chemical Reactors, Journal of Catalysis, Vol. 1, n°6, 1962.

Show[p1,p2,p3,p4,Graphics[{RGBColor[0,0,1],Text["- no diffusion effect",{-0.5,1.2},{-1,0}],RGBColor[0,1,0],Text["- with diffusion effect",{-0.5,1.3},{-1,0}]}]]