Example 3.2.2  Series Solutions for Non-isothermal Catalyst Pellet - Multiple Steady States 

The dimensionless concentration in a non-isothermal catalyst pellet[8] is governed by: 

 

Typesetting:-mrow(Typesetting:-mo( 

with the boundary conditions: 

 

Typesetting:-mrow(Typesetting:-mo( 

 

and 

Typesetting:-mrow(Typesetting:-mo( 

 

This boundary value problem  has multiple solutions for Φ=0.2, β=0.8 and γ=20.  The series solutions are obtained for this problem in Maple below: 

> restart:
 

> with(plots):
 

The governing equation is entered here: 

> eq:=diff(c(x),x$2)=Phi^2*c(x)*exp(gamma*beta*(1-c(x))/(1+beta*(1-c(x))));
 

diff(diff(c(x), x), x) = `*`(`^`(Phi, 2), `*`(c(x), `*`(exp(`/`(`*`(gamma, `*`(beta, `*`(`+`(1, `-`(c(x)))))), `*`(`+`(1, `*`(beta, `*`(`+`(1, `-`(c(x)))))))))))) (1)
 

The values for the parameters are entered here: 

> eq:=subs(gamma=20,beta=0.8,eq);
 

diff(diff(c(x), x), x) = `*`(`^`(Phi, 2), `*`(c(x), `*`(exp(`+`(`/`(`*`(16.0, `*`(`+`(1, `-`(c(x))))), `*`(`+`(1.8, `-`(`*`(.8, `*`(c(x)))))))))))) (2)
 

The boundary condition at x=1 is entered here: 

> bc:=c(x)-1;
 

`+`(c(x), `-`(1)) (3)
 

The order of the series solution is specified and the governing equation is solved as a function of c1, the concentration at the center, and Φ: 

> Order:=8;
 

8 (4)
 

> sol:=dsolve({eq,c(0)=c1,D(c)(0)=0},{c(x)},type=series);
 

c(x) = series(`+`(c1, `*`(`*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))))))), `*`(`^`(x, 2))), `*`(`/`(`*`(`/`(1, 24), `*`(...
c(x) = series(`+`(c1, `*`(`*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))))))), `*`(`^`(x, 2))), `*`(`/`(`*`(`/`(1, 24), `*`(...
(5)
 

The series solution obtained is stored in ca: 

> ca:=convert(rhs(sol),polynom);
 

`+`(c1, `*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))), `*`(`^`(x, 2)))))), `/`(`*`(`/`(1, 24), `*`(`^`(Phi, 4), `*`(`^`(ex...
`+`(c1, `*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))), `*`(`^`(x, 2)))))), `/`(`*`(`/`(1, 24), `*`(`^`(Phi, 4), `*`(`^`(ex...
(6)
 

The boundary condition at x=1 is evaluated using the series solution obtained: 

> eqc:=subs(c(x)=ca,bc);
 

`+`(c1, `*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))), `*`(`^`(x, 2)))))), `/`(`*`(`/`(1, 24), `*`(`^`(Phi, 4), `*`(`^`(ex...
`+`(c1, `*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))), `*`(`^`(x, 2)))))), `/`(`*`(`/`(1, 24), `*`(`^`(Phi, 4), `*`(`^`(ex...
(7)
 

> eqc:=subs(x=1,eqc);
 

`+`(c1, `*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))))))), `/`(`*`(`/`(1, 24), `*`(`^`(Phi, 4), `*`(`^`(exp(`+`(`/`(`*`(80...
`+`(c1, `*`(`/`(1, 2), `*`(`^`(Phi, 2), `*`(c1, `*`(exp(`+`(`/`(`*`(80, `*`(`+`(`-`(1), c1))), `*`(`+`(`-`(9), `*`(4, `*`(c1))))))))))), `/`(`*`(`/`(1, 24), `*`(`^`(Phi, 4), `*`(`^`(exp(`+`(`/`(`*`(80...
(8)
 

The equation for c1 is plotted as a function of c1.  We observe that there are four solutions: 

> plot(subs(Phi=0.2,eqc),c1=0..1,view=[0..1,-1..1],title="Figure Exp. 3.2.2.",thickness=4);
 

Plot_2d
 

The values for the constant c1 are obtained using the 'fsolve' command. 

> cc[1]:=fsolve(subs(Phi=0.2,eqc),c1=1);
 

.9716851561 (9)
 

> cc[2]:=fsolve(subs(Phi=0.2,eqc),c1=0.8);
 

.8079753866 (10)
 

> cc[3]:=fsolve(subs(Phi=0.2,eqc),c1=0.0);
 

0.2667544163e-4 (11)
 

> cc[4]:=fsolve(subs(Phi=0.2,eqc),c1=0.03);
 

0.2914597330e-1 (12)
 

We obtain four different solutions for c1.  These values for c1 and Φ are substituted in the series solution obtained and plots are made: 

> p1:=plot(subs(c1=cc[1],Phi=0.2,ca),x=0..1,thickness=4,color=black,axes=boxed):
 

> p2:=plot(subs(c1=cc[2],Phi=0.2,ca),x=0..1,thickness=4,color=blue,axes=boxed):
 

> p3:=plot(subs(c1=cc[3],Phi=0.2,ca),x=0..1,thickness=4,color=brown,axes=boxed):
 

> p4:=plot(subs(c1=cc[4],Phi=0.2,ca),x=0..1,thickness=4,color=red,axes=boxed):
 

> display({p1,p2,p3},title="Figure Exp. 3.2.3.",labels=[x,c]);
 

Plot_2d
 

> display(p4,labels=[x,c],title="Figure Exp. 3.2.4.");
 

Plot_2d
 

We observe that the first three values of c1 make sense and we discard the fourth value.  There is no guarantee that the solution obtained is the converged one.  The accuracy and convergence of the series solution are analyzed below by increasing the number of terms in the series. 

> Order:=16;
 

16 (13)
 

> sol:=dsolve({eq,c(0)=c1,D(c)(0)=0},{c(x)},type=series):
 

> ca:=convert(rhs(sol),polynom):
 

> eqc:=subs(c(x)=ca,bc):
 

> eqc:=subs(x=1,eqc):
 

> cc2[1]:=fsolve(subs(Phi=0.2,eqc),c1=1);
 

.9717223260 (14)
 

> cc2[2]:=fsolve(subs(Phi=0.2,eqc),c1=0.8);
 

.7894024799 (15)
 

> cc2[3]:=fsolve(subs(Phi=0.2,eqc),c1=0.0);
 

0.2503698214e-6 (16)
 

> for i to 3 do print(cc[i],cc2[i]);od;
 

 

 

.9716851561, .9717223260
.8079753866, .7894024799
0.2667544163e-4, 0.2503698214e-6 (17)
 

We observe that the first value for c1 has converged (3-digit accuracy).  The second value of c1 has converged to two digit accuracy.  The third value has not converged yet.  But the order of magnitude for the third value of c1 has converged.  Next, plots are made for three different values of c1. 

> Order:=20;
 

20 (18)
 

> sol:=dsolve({eq,c(0)=c1,D(c)(0)=0},{c(x)},type=series):
 

> ca:=convert(rhs(sol),polynom):
 

> eqc:=subs(c(x)=ca,bc):
 

> eqc:=subs(x=1,eqc):
 

> cc3[1]:=fsolve(subs(Phi=0.2,eqc),c1=1);
 

.9717223334 (19)
 

> cc3[2]:=fsolve(subs(Phi=0.2,eqc),c1=0.8);
 

.7842153648 (20)
 

> cc3[3]:=fsolve(subs(Phi=0.2,eqc),c1=0.0);
 

0.1164370979e-6 (21)
 

> for i to 3 do print(cc[i],cc2[i],cc3[i]);od;
 

 

 

.9716851561, .9717223260, .9717223334
.8079753866, .7894024799, .7842153648
0.2667544163e-4, 0.2503698214e-6, 0.1164370979e-6 (22)
 

We observe that the first value for c1 has converged (3-digit accuracy).  The second value of c1 has converged to two digits accuracy.  The third value has not converged yet.  But, the order of magnitude for the third value of c1 has converged.  Next, plots are made for three different values of c1. 

> p1:=plot(subs(c1=cc3[1],Phi=0.2,ca),x=0..1,thickness=4,color=black,axes=boxed):
 

> p2:=plot(subs(c1=cc3[2],Phi=0.2,ca),x=0..1,thickness=4,color=blue,axes=boxed):
 

> p3:=plot(subs(c1=cc3[3],Phi=0.2,ca),x=0..1,thickness=4,color=brown,axes=boxed):
 

> display({p1,p2,p3},labels=[x,c],title="Figure Exp. 3.2.5.");
 

>
 

Plot_2d
 

Multiple steady states in a rectangular catalyst pellet were analyzed in this example.  This problem will be revisited later in this chapter. 

>