Example 3.2.13 Multiple Steady States in a Catalyst Pellet - η vs. Φ

The non-isothermal reaction in a rectangular pellet (example 3.2.2) is again considered. The dimensionless concentration is governed by:

(3.2.43)

with the boundary conditions:

(3.2.44)

and

y(1)=1 (3.2.45)

The effectiveness factor of the pellet is given by

η= (1) (3.2.46)

For a given value of Φ, equation (3.2.33) can be solved for the boundary conditions ((3.2.35) and (3.2.36)). Once the numerical solution is obtained the effectiveness factor can be calculated using equation (3.2.37). It is of interest to plot the effectiveness factor as a function of Φ. For this purpose, one can solve the boundary value problem for different values of Φ and predict the effectiveness factor. However, since multiple steady states occur different initial guesses have to be used to capture all of the steady states. This boundary value problem is difficult to solve because for every value of Φ, there can be three different ηs and, hence, 3 different values for the derivative () at x = 1. On the contrary, for every value of (1), there is a unique value for Φ. Hence, (1) can be specified and Φ can be treated as an unknown, which can be solved as we know 3 boundary conditions ((0) = 0, y(1) = 1, (1) is known). The difficulty with this approach is that (1) can take any value between 0 and ∞.

Based on the previous argument, for every value of Φ, there corresponds to 3 different values (1) and, hence, 3 different values for y(0). On the contrary, for every value of y(0), there is a unique value for Φ. The advantage of setting y(0) is that y(0) can practically vary only between 0 and 1. Now both y(0) and (0) are known and equation (3.2.43) can be solved as an initial value problem and the unknown Φ can be found by using the boundary condition y(1) = 1. Since the problem is well defined with known initial conditions for y(0) and (0), stiff solvers can be used to solve equation 3.2.43. By defining X =Φx, this boundary value problem can be transformed as:

(3.2.47)

with the boundary conditions:

(3.2.48)

and

y(Φ)=1 (3.2.49)

The effectiveness factor of the pellet is given by

η=(3.2.50)

We know that for low values of Φ, the concentration at the center y(0) is close to 1. For high values of Φ, y(0) approaches zero. We take the concentration at the center as

y(0)=y0 (3.2.51)

where y0 varies between 0 and 1. This system of equations is similar to example 3.2.12. The program used for example 3.2.12 is modified below to solve this example.

> | restart:

> | with(plots):

The values of the parameters are substituted here:

> | Eq:=diff(y(X),X$2)=y(X)*exp(gamma*beta*(1-y(X))/(1+beta*(1-y(X))));

| (1)

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

| (2)

> | IC:=D(y)(0)=0,y(0)=1e-6;

| (3)

> | sol:=dsolve({eq,IC},{y(X)},type=numeric,abserr=1e-10,stiff=true,stop_cond=[y(X)-1]);

| (4)

> | g1:=sol(1000);

Warning, cannot evaluate the solution further right of .20038679, stop condition #1 violated

| (5)

> | Phi1:=rhs(g1[1]);

| (6)

> | dydX1:=rhs(g1[3]);

| (7)

> | eta1:=dydX1/Phi1;

| (8)

> | odeplot(sol,[X,y(X)],0..2,thickness=4,title="Figure Exp. 3.2.25.",axes=boxed);

Warning, cannot evaluate the solution further right of .20038680, stop condition #1 violated

> | _Env_dsolve_nowarnstop := true;

| (9)

Initial guesses ranging from 1e - 10 to 0.9996 are provided for y(0):

> | Y0:=[1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,5e-2,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.825,0.85,0.875,0.9,0.91,0.92,0.93,0.94,0.95,0.955,0.96,0.965,0.968,0.97,0.975,0.98,0.99,0.995,0.996,0.997,0.998,0.999,0.9995,0.9996];

| (10)

> | M:=nops(Y0);

| (11)

> | for i from 1 to M do Sol[i]:=dsolve({eq,D(y)(0)=0,y(0)=Y0[i]},{y(X)},type=numeric,stiff=true,abserr=1e-12,stop_cond=[y(X)-1]);;od:

> | for i to M do g[i]:=Sol[i](100000):od:

> | for i to M do Phi[i]:=rhs(g[i][1]);od:

> | for i to M do dydX[i]:=rhs(g[i][3]);od:

> | for i to M do eta[i]:=dydX[i]/Phi[i];od:

> | loglogplot([seq([Phi[i],eta[i]],i=1..M)],axes=boxed,title="Figure Exp. 3.2.26.",thickness=4,labels=[phi,eta],color=green);

This plot captures the multiple steady state part. However, to predict the effectiveness factor at higher values of Φ, we choose initial values ranging from 1e - 40 to 1e - 10. For these low values, one has to perform highly accurate simulations. For this purpose, absolute error (abserr) is set to 1e - 41 and the relative error (relerr) is set to 1e - 12.

> | p1:=loglogplot([seq([Phi[i],eta[i]],i=1..M)],axes=boxed,thickness=4,labels=[phi,eta],color=red):

> | Y00:=[1e-40,1e-35,1e-30,1e-25,1e-20,1e-15,1e-10];

| (12)

> | MM:=nops(Y00);

| (13)

> | for i from 1 to MM do Sol0[i]:=dsolve({eq,D(y)(0)=0,y(0)=Y00[i]},{y(X)},type=numeric,stiff=true,maxfun=1000000,abserr=1e-41,relerr=1e-12,stop_cond=[y(X)-1]);od:

> | for i to MM do g[i]:=Sol0[i](100000):od:

> | for i to MM do Phi1[i]:=rhs(g[i][1]);od:

> | for i to MM do dydX1[i]:=rhs(g[i][3]);od:

> | for i to MM do eta1[i]:=dydX1[i]/Phi1[i];od:

> | p2:=loglogplot([seq([Phi1[i],eta1[i]],i=1..MM)],axes=boxed,title="Figure Exp. 3.2.27.",thickness=4,labels=[phi,eta]):

> | display({p1,p2});

The total time to predict this curve is 25 seconds in a 1.5 GHz processor. Simulating this curve by solving the problem as a boundary value problem will be time consuming. Next, η vs. Φ curve for a second order reaction is obtained by just changing the governing equation as:

> |