Example4.9 rev 1.mw

Example 4.9 Laminar Flow in a CVD Reactor

Consider the laminar flow in a CVD reactor. The governing equation is

=D

u(x,0) = 1 (4.1.13)

(0,z) = 0 and u(∞,z) is defined

where vmax is the average velocity (cm/s), B is the half-width of the reactor (cm) and D is the diffusion coefficient (cm2/s). Next, the transformation is used to simplify the governing equation as:

= (4.1.14)

The following transformation is used to combine the variable:[7]

η= (4.1.15)

The variable u in the new coordinate η is represented by U. The boundary conditions for U are:

U(0)=0

(4.1.16)

U(0)=1

The governing equation for U is then solved with the above boundary conditions to obtain the final solution. Example 4.9 is solved in Maple below:

> | restart:

> | with(student):

> | with(plots):

> | eq:=V*x*diff(u(x,z),z)-diff(u(x,z),x$2);

| (1)

> | eq1:=changevar(u(x,z)=U(eta(x,z)),eq):

> | eq2:=expand(simplify(subs(eta(x,z)=x/(9*z/V)^(1/3),eq1))):

> | eq2:=subs(x=eta*(9*z/V)^(1/3),eq2):

> | eq2:=expand(eq2*z):

> | eq2:=simplify(eq2/(z/V)^(1/3)):

> | eq2:=eq2*9/3^(2/3)/V:

> | eq2:=convert(eq2,diff):

The governing equation in the combined variable is:

> | eq2:=-eq2;

| (2)

The boundary conditions for U are entered here:

> | bc1:=U(0)=0;

| (3)

> | bc2:=U(infinity)=1;

| (4)

> | rhs(dsolve({eq2,bc1,bc2},U(eta)));

| (5)

Maple cannot find the limit as η→∞. Alternatively, the governing equation is solved using the first boundary condition (bc1) only:

> | U:=rhs(dsolve({eq2,bc1},U(eta)));

| (6)

The solution is a combination of exponential and Whittaker functions. In the literature this problem is usually left in terms of integrals (Gamma functions). However, Maple is able to solve the differential equation explicitly. Next, the constant _C2 is found using the boundary condition bc2.

> | eval(limit(U,eta=infinity));

| (7)

Since the limit does not exit, U/_C2 is plotted until η=10.

> | plot(U/_C2,eta=0..10,axes=boxed,thickness=4,title="Figure Exp. 4.1.18.");

An initial guess L = 1 is used to replace x = ∞.

> | evalf(subs(eta=1.,U/_C2));

| (8)

> | L:=1;

| (9)

> | err:=1;

| (10)

The value of U/C2 is found at x = L:

> | c0:=evalf(subs(eta=1.,U/_C2));

| (11)

Next, the length L is increased until the U/_C2(x = ) becomes a constant:

> | while err>1e-6 do L:=L+1; c1:=evalf(subs(eta=L,U/_C2));err:=abs(c1-c0);c0:=c1;od;

| (12)

The length and the constant have converged to 10 digit accuracy. The final length is

> | L;

| (13)

The constant _C2 is found using the boundary condition U(L) = 1

> | _C2:=1/c0;

| (14)

The solution to the transformed coordinate is:

> | U;

| (15)

> | plot(U,eta=0..10.,thickness=4,axes=boxed,title="Figure Exp. 4.1.19.",labels=[eta,'u']);

The solution in the original coordinates is obtained as:

> | u:=subs(eta=x/(9*z/V)^(1/3),U);

| (16)

> | pars:={V=0.001};

| (17)

A plot was made by specifying a value for V.

> | plot3d(subs(pars,u),x=0..10,z=0..10,axes=boxed,title="Figure Exp. 4.1.20.",orientation=[120,60],labels=[x,y,"u"]);

> | u;

| (18)

> |