Example4.6 rev1.mw

Example 4.6

Consider the transient heat conduction problem in a slab.[4] The governing equation in dimensionless form is

=α

u(x,0) = 1 (4.1.6)

(0,t) = h*u(0,t) and u(∞,t) is defined

where α is the thermal diffusivity (m2/s) and h is the heat transfer coefficient (m-1). Carslaw and Jaeger[4] presented solutions for this problem after transforming the governing equation and boundary conditions to a form convenient for similarity transformation. Equation (4.1.6) is solved in Maple below using the Laplace transform technique (note that the transformation is not necessary with this approach):

> | restart:with(linalg):with(inttrans):with(plots):

The governing equation is entered here:

> | eq:=diff(u(x,t),t)=alpha*diff(u(x,t),x$2);

| (1)

> | u(x,0):=1;

| (2)

Enter the boundary condition here:

> | bc1:=diff(u(x,t),x)-h*u(x,t)=0;

| (3)

> | bc2:=u(infinity,t)=defined;

| (4)

> | eqs:=laplace(eq,t,s);

| (5)

> | eqs:=subs(laplace(u(x,t),t,s)=U(x),eqs);

| (6)

> | bc1:=laplace(bc1,t,s);

| (7)

> | bc1:=subs(laplace(u(x,t),t,s)=U(x),bc1);

| (8)

> | bc1:=convert(bc1,D);

| (9)

The boundary condition in the Laplace domain is:

> | bc1:=subs(x=0,bc1);

| (10)

U is solved as:

> | U(x):=rhs(dsolve({eqs,bc1}));

| (11)

> | eqc:=coeff(U(x),exp(1/alpha^(1/2)*s^(1/2)*x));

| (12)

> | coef:=solve(eqc,{_C1});

| (13)

The temperature profile in the Laplace domain is:

> | U(x):=evala(subs(coef,U(x)));

| (14)

Maple cannot find the inverse of the Laplace transform:

> | invlaplace(U(x),s,t);

| (15)

The above expression is split into two terms U1 and U2 as shown below:

> | U1:=1/(s);

| (16)

> | u1:=invlaplace(U1,s,t);

| (17)

> | U2:=U(x)-U1;

| (18)

The inverse of U2 is:

> | U2:=subs({x=x1,alpha=alpha1},U2);

| (19)

> | assume(x1>0,alpha1>0);

> | u2:=invlaplace(U2,s,t);

| (20)

> | u2:=subs({x1=x,alpha1=alpha},u2);

| (21)

Finally, the temperature distribution is given by:

> | u:=u1+u2;

| (22)

> | pars:={alpha=1e-3,h=0.01};

| (23)

> | plot3d(subs(pars,u),x=1..0,t=500..0,axes=boxed,title="Figure Exp. 4.1.13.",labels=[x,t,"u"],orientation=[110,60]);

> | plot([subs(pars,t=10,u),subs(pars,t=100,u),subs(pars,t=200,u),subs(pars,t=500,u)],x=0..1,axes=boxed,title="Figure Exp. 4.1.14.",thickness=5,labels=[x,"u"]);

> | us:=eval(subs(x=0,u));

| (24)

> |