Markov Processes, Hurst Exponents, And Nonlinear Diffusion Equations
Solution to Diffusion and Heat Conduction Equations
-
Upload
jmckenziet -
Category
Documents
-
view
167 -
download
3
Transcript of Solution to Diffusion and Heat Conduction Equations
Viscous Flows Class Project
Numerical and analytical Solutions to
Diffusion and 2D Heat conduction Equations
|2
Table of Contents Diffusion Equation ........................................................................................................................................ 3
Numerical Schemes ................................................................................................................................... 3
Explicit Solution..................................................................................................................................... 4
Implicit Solution .................................................................................................................................... 5
2-D Heat Conduction Equation .................................................................................................................... 6
Numerical Schemes ................................................................................................................................... 6
Explicit Solution..................................................................................................................................... 7
Implicit Solution .................................................................................................................................... 8
Steady State 2-D Heat Conduction Equation ............................................................................................... 9
Analytical Solution .................................................................................................................................... 9
Appendices ................................................................................................................................................. 14
Appendix A – Diffusion Equation approximation .................................................................................... 14
Explicit Solution MATLAB Code ........................................................................................................... 14
Implicit Solution MATLAB Code ......................................................................................................... 16
Appendix B- 2-D Heat Conduction Approximation ................................................................................ 19
Explicit Solution MATLAB Code .......................................................................................................... 19
Implicit Solution MATLAB Code ......................................................................................................... 21
Table of Figures
Figure 1: Solution to diffusion scheme using explicit approximation……………….………………………………………2
Figure 2: Solution to diffusion scheme using implicit approximation……………………………………………………….2
Figure 3: Solution to 2-D Heat Conduction Equation using Explicit Approximation………………………………….2
Figure 4: Solution to 2-D Heat Conduction Equation using Implicit Approximation…………………..…………….2
Figure 5: Plot of Sinh(x) and Tanh(x) showing Sinh(x)-Tanh(x)………………………..……………………………………..2
|3
Diffusion Equation
Diffusion Equation given as
[1.1]
Subject to the initial condition
( ) for [1.2] And the boundary condition
( ) for [1.3]
Equation [1.1] can be discretized using explicit scheme
(
) [1.4]
Where
[1.5]
With an imposed constraint on
[1.6]
To avoid constrain on . Equation [1.1] can be discretized using implicit scheme as
( )
[1.7]
Analytical solution to equation [1.1]
(
√ ) [1.8]
Where
( )
√ ∫
[1.9]
Solutions to equation [1.1] using both explicit and implicit approximations, equations [1.4] and [1.8],
while compared with equation [1.8] are displayed in figures (1) and (2).
|4
Figure
1: So
lutio
n to
diffu
sion
eq
uatio
n u
sing e
xplicit ap
pro
ximatio
n w
ith Exa
ct solu
tion
o
verlaid
. dt=0
.01
dy=0
.00
5
|5
Figure
2: So
lutio
n to
diffu
sion
eq
uatio
n u
sing im
plicit ap
pro
ximatio
n w
ith E
xact solu
tion
o
verlaid
. dt=0
.1 d
y=0.0
01
|6
Heat Conduction Equation
2-D heat conduction equation given as
(
) [2.1]
Subject to the initial condition
( ) [2.2]
( ) [2.3]
( ) [2.4]
( ) ( ) [2.5]
And the boundary condition
( ) [2.6] Can be discretized using explicit scheme
( )
( ( )
( ) ( ) ( )
)
[2.7]
( )
( )
( )
( )
( )
)
Where
[2.8]
[2.9]
Can be discretized using implicit scheme as
( )
( )
( )
( )
( ( )
( ) ( ) ( )
)
[2.10]
( ) ( ) ( )
( )
( )
( )
( )
( )
)
Solutions to equation [2.1] using both explicit and implicit approximations, equations [2.7] and [2.10],
are displayed n figures (3) and (4)
|7
Figure
3: So
lutio
n to
2-D
He
at Co
nd
uctio
n Eq
uatio
n u
sing Exp
licit Ap
pro
ximatio
n. d
t=1
dx=d
y=0.1
|8
Figure
4: So
lutio
n to
2-D
He
at Co
nd
uctio
n Eq
uatio
n u
sing Im
plicit A
pp
roxim
ation
. d
t=10
0 d
x=dy=0
.01
|9
Steady State Heat Conduction Equation
Two-dimensional heat conduction equation is given as
(
) [3.1]
At steady state (
) equation [1] becomes
[3.2]
Equation [3.1] is subject to the following boundary conditions
( ) [3.3]
( ) [3.4]
( ) [3.5]
( ) ( ) [3.6]
( ) ( )
Introduce temperature variant to convert to homogenous boundary conditions
[3.7] Thus, equations [3.2]-[ 3.7] become
[3.8]
Equation [3.1] is subject to the following boundary conditions
( ) [3.9] ( ) [3.10] ( ) [3.11] ( ) ( ) [3.12]
Using method of separation of variables, equation [3.8] becomes
( ) ( ) ( ) [3.13]
|10
Substitute equation [3.13] into equation [3.2]
( ) ( )
( ) ( )
[3.14]
Equation [3.14] becomes
( )
( ) [3.15]
Introduce to convert PDE to two separate ODEs
( )
( )
[3.16]
Transform the boundary conditions
( ) ( ) ( )
( ) [3.17]
( ) ( ) ( )
( ) [3.18]
( ) ( ) ( )
( ) [3.19]
( ) ( ) ( ) ( )
( ) ( ) [3.20]
Equation [3.16] becomes two Sturm-Liouville problems
( ) [3.21]
( ) [3.22]
The general Solutions to equations [3.21] and [3.22] are
( ) ( ) ( ) [3.23]
( ) [3.24]
( ) ( ) ( ) [3.25]
|11
Substituting equation [3.17] into [3.23]
( ) ( ) ( )
[3.26]
Substituting equation [3.26] into [3.23]
( ) ( ) [3.27]
Substituting equation [3.18] and [3.26] into [3.23]
( ) ( )
( )
[3.28]
Form equation [3.28], eigenfunction for is
( ) ( ) [3.29] Substituting equation [3.17] into [3.24]
( ) ( )
[3.30]
Substituting equation [3.18] and [3.30] into [3.24]
( )
[3.31]
From equation [3.30] and [3.31] there are no eigenvalues for Substituting equation [3.19] into [3.25]
( ) ( ) ( )
( ) ( )
( ) [3.32]
Substituting equation [3.32] back into equation [3.23]
( ) ( )
( ( ) ( )) [3.33]
|12
From equation [3.33] and figure 5, there are no eigenvalues for which therefore implies
[3.34]
Substituting equation [3.34] into [3.25]
( ) ( ) [3.35]
Substituting equation [3.27] and [3.35] into [3.13]
( ) ( ) ( ) [3.36]
Where
[3.37] Since equation [3.34] is linear, the summation of
also satisfies the boundary conditions
( ) ∑ ( ) ( ) [3.38]
Substitute equation [3.20] into [3.38]
( ) ∑ ( ) ( ) ( ) [3.39]
Figure 5: Plot of Sinh(x) and Tanh(x) showing Sinh(x)-Tanh(x)
|13
To apply orthogonality, introduce
( ) [3.40]
Multiply [3.39] and [3.40] and integrate over (0,L) where L=1
∑ ∫ ( ) ( )
∫ ( ( ) ) ( )
[3.41]
The solution to the RHS of equation [3.41] When
∫ ( ) ( )
( ( ) ( ) ( ) ( )
( )
∫ ( ) ( )
[3.42]
When
∫ ( )
( )
∫ ( )
[3.43]
This implies
∫ ( ( ) ) ( )
∫ ( ( ) ) ( )
[3.44]
Change summation index of equation [3.44] back to
∫ ( ( ) ) ( )
[3.45]
Substitute equation [3.45] into [3.38] to obtain the temperature profile in the plate
( ) ∑ ( ) ( )∫ ( ( ) ) ( )
|14
Appendix A MATLAB Code – Diffusion Explicit
%%%%% DIFFUSION EQUATION APPRXIMATION USING EXPLICIT SCHEME %%%% clc clear all tic % using the Forward Time Centered Space (FTCS) scheme. Uo = 1; dt = 0.01; dy = 0.005; h = 0.20; v = 1.5*10^-5; d = v*dt/(dy^2); JM = 1+(h/dy); t = 60; %* Set initial and boundary conditions. u = zeros(JM,1); % Initialize velocity to zero at all points u(1)= Uo; u(JM)= 0; unew = zeros(JM,1); unew(1)=Uo; unew(JM)= 0;
plotu = zeros(JM,4); %% p=1; for t=dt:dt:60 for j=2:JM-1 unew(j) = u(j)+d*(u(j+1)-2*u(j)+u(j-1)); end u=unew; if (t==1)||(t==2)||(t==5)||(t==10) plotu(:,p)=u; p=p+1; end end
h = 0; for i = 2:JM y(1)=0; y(i) = h+dy; h = y(i); end
hold on
plot(plotu(:,1),y,plotu(:,2),y,plotu(:,3),y,plotu(:,4),y) title('FTCS Implicit dt=0.01') xlabel('Velocity [m/s]') ylabel('height [m]') axis([0 1 0 .2]) legend('t=1','t=2','t=5','t=10') toc tic
|15
Appendix A MATLAB Code – Diffusion Explicit
%% ------------- Compare Solution --------------------------- %% syms x h y = exp(-x^2); a = 0; t = 1; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf1 = (2/(sqrt(pi)))*fnint; U1 = (1-erf1); y = exp(-x^2); a = 0; t = 2; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf2 = (2/(sqrt(pi)))*fnint; U2 = (1-erf2); y = exp(-x^2); a = 0; t = 5; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf3 = (2/(sqrt(pi)))*fnint; U3 = (1-erf3); y = exp(-x^2); a = 0; t = 10; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf4 = (2/(sqrt(pi)))*fnint; U4 = (1-erf4); h=0; for i = 2:10 y(1)=0; y(i) = h+dy; h = y(i); end h = y;
u1 = subs(U1); u1 = double(u1); u2 = subs(U2); u2 = double(u2); u3 = subs(U3); u3 = double(u3); u4 = subs(U4); u4 = double(u4);
plot(u1,h,'-.',u2,h,'-.',u3,h,'-.',u4,h,'-.') title('Explicit Approximation with Exact Solution') toc hold off
|16
Appendix A MATLAB Code – Diffusion Implicit
Appendix A
%%%%% DIFFUSION EQUATION APPRXIMATION USING IMPLICIT SCHEME %%%% clc clear all tic % using the Forward Time Centered Space (FTCS) scheme. Uo = 1; dt = 0.1; dy = 0.001 h = 0.20; v = 1.5*10^-5; d = v*dt/(dy^2); JM = 1+(h/dy); t = 60; %* Set initial and boundary conditions. u = zeros(JM,1); % Initialize velocity to zero at all points u(1)= Uo; u(JM)= 0;
unew = zeros(JM,1); unew(1)=Uo; unew(JM)= 0; plotu = zeros(JM,4);
% Thomas Alg. a = -d; b = 2*d+1; c = -d; p=1; for t=dt:dt:t for i=2:JM D(1) = u(1); D(i) = u(i);
H(1) = 0; H(i)=c/(b-a*H(i-1));
G(1) = Uo; G(i)=(D(i)-a*G(i-1))/(b-a*H(i-1)); end
for j=JM-1:-1:2 unew(j)=-H(j)*unew(j+1)+G(j); end u=unew; if (t==1)||(t==2)||(t==5)||(t==10) plotu(:,p)=u; p=p+1; end end h = 0; for i = 2:JM y(1)=0;
|17
Appendix A MATLAB Code – Diffusion Implicit
y(i) = h+dy; h = y(i); end
hold on plot(plotu(:,1),y,plotu(:,2),y,plotu(:,3),y,plotu(:,4),y) xlabel('Velocity [m/s]') ylabel('height [m]') axis([0 1 0 .2]) legend('t=1','t=2','t=5','t=10') toc tic %% ------------- Compare Solution --------------------------- %% syms x h y = exp(-x^2); a = 0; t = 1; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf1 = (2/(sqrt(pi)))*fnint; U1 = (1-erf1);
y = exp(-x^2); a = 0; t = 2; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf2 = (2/(sqrt(pi)))*fnint; U2 = (1-erf2);
y = exp(-x^2); a = 0; t = 5; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf3 = (2/(sqrt(pi)))*fnint; U3 = (1-erf3);
y = exp(-x^2); a = 0; t = 10; b = h/(2*sqrt(v*t)); fnint = int(y,x,a,b); erf4 = (2/(sqrt(pi)))*fnint; U4 = (1-erf4);
h=0; for i = 2:10 y(1)=0; y(i) = h+dy; h = y(i); end
|18
Appendix A MATLAB Code – Diffusion Implicit
h = y; u1 = subs(U1); u1 = double(u1); u2 = subs(U2); u2 = double(u2); u3 = subs(U3); u3 = double(u3); u4 = subs(U4); u4 = double(u4);
plot(u1,h,'-.',u2,h,'-.',u3,h,'-.',u4,h,'-.') title('Implicit Approximation with Exact Solution') xlabel('Velocity [m/s]') ylabel('height [m]') axis([0 1 0 .2]) legend('t=1','t=2','t=5','t=10','(Exact) t=1',... '(Exact) t=2','(Exact) t=5','(Exact) t=10') toc hold off
|19
Appendix B MATLAB Code – Heat Conduction Explicit
%%%%% 2-D HEAT CONDUCTION APPRXIMATION USING EXPLICIT SCHEME %%%% clc clear all tic
% Domain Size x = 1; y = 1;
% Step Size dx = 0.1; dy = 0.1;
% Time Step dt = 1;
% Grid Size JM = 1+(y/dy); IM = 1+(x/dx);
% Thermal Diffusivity k = 1.5*10^-5; d1 = (1/2)*(k*dt/dx^2); d2 = (1/2)*(k*dt/dy^2);
% Initial Conditions T1 = 300; T3 = 300; T4 = 300;
%% Initialize Boundary Conditions T=300*ones(IM,JM); T(:,JM)=T3; T(IM,:)=T4; T(:,1)=T1;
Tx=300*ones(IM,JM); Tx(:,JM)=T3; Tx(IM,:)=T4; Tx(:,1)=T1;
Tnew=300*ones(IM,JM); Tnew(:,JM)=T3; Tnew(IM,:)=T4; Tnew(:,1)=T1;
Twall=zeros(JM);
% Preallocate vectors for Thomas algorithm H=zeros(IM); G=zeros(IM);
|20
Appendix B MATLAB Code – Heat Conduction Explicit
D=zeros(IM);
% Solve for T(0,y,t) y=0; for j=1:JM T2 = 300+500*sin(pi*y); y = y+dy; T(1,j)=T2; Tx(1,j)=T2; Tnew(1,j)=T2; Twall(j)=T2; end
errormax = 0.000001; % Define max error value error = 1; %Set initial error value iterations = 0; % Iteration count set to zero
%% Thomas Algorithm while error >= errormax;
% X sweep for j=2:JM-1 for i=2:IM-1 Tx(i,j) = d2*T(i,j+1)+(1-2*d2)*T(i,j)+d2*T(i,j-1); end end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
err=0; % Set error count to zero % Y sweep for i=2:IM-1 for j=2:JM-1 Tnew(i,j) = d1*Tx(i+1,j)+(1-2*d1)*Tx(i,j)+d1*Tx(i-1,j); end % Sum error for j=2:JM-1 sum = (abs(Tnew(i,j)-T(i,j))/(T(i,j))); sumerror = sum + err; err = sumerror; end end T = Tnew; % Update values for new time step iterations = iterations + 1 % Iteration count error=err % Determine total error end contour(Tnew) colorbar colormap gray title('2-D Heat Conduction Equation Explicit Approximation')
|21
Appendix B MATLAB Code – Heat Conduction Implicit
%%%%% 2-D HEAT CONDUCTION APPRXIMATION USING IMPLICIT SCHEME %%%% clc clear all tic
% Domain Size x = 1; y = 1;
% Step Size dx = 0.01; dy = 0.01;
% Time Step dt = 100;
% Grid Size JM = 1+(y/dy); IM = 1+(x/dx);
% Thermal Diffusivity k = 1.5*10^-5; d1 = (1/2)*(k*dt/dx^2); d2 = (1/2)*(k*dt/dy^2);
% Initial Conditions T1 = 300; T3 = 300; T4 = 300;
%% Initialize Boundary Conditions T=300*ones(IM,JM); T(:,JM)=T3; T(IM,:)=T4; T(:,1)=T1;
Tx=300*ones(IM,JM); Tx(:,JM)=T3; Tx(IM,:)=T4; Tx(:,1)=T1;
Tnew=300*ones(IM,JM); Tnew(:,JM)=T3; Tnew(IM,:)=T4; Tnew(:,1)=T1;
Twall=zeros(JM);
% Preallocate vectors for Thomas algorithm H=zeros(IM); G=zeros(IM);
|22
Appendix B MATLAB Code – Heat Conduction Implicit
D=zeros(IM);
% Solve for T(0,y,t) y=0; for j=1:JM T2 = 300+500*sin(pi*y); y = y+dy; T(1,j)=T2; Tx(1,j)=T2; Tnew(1,j)=T2; Twall(j)=T2; end errormax = 0.000001; % Define max error value error = 1; %Set initial error value iterations = 0; % Iteration count set to zero
%% Thomas Algorithm while error >= errormax; % X sweep for j=2:JM-1 for i=2:IM-1 a = -d1; b = 1+2*d1; c = -d1;
D(1) = T(1,j); D(i) = d2*T(i,j+1)+(1-2*d2)*T(i,j)+d2*T(i,j-1);
H(1) = 0; H(i)=c/(b-a*H(i-1));
G(1) = Twall(j); G(i)=(D(i)-a*G(i-1))/(b-a*H(i-1)); end Tx(IM,j)=T4; for i=IM-1:-1:2 Tx(i,j)=-H(i)*Tx(i+1,j)+G(i); end Tx(1,j)=Twall(j); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
err=0; % Set error count to zero
% Y sweep for i=2:IM-1 for j=2:JM-1 a = -d2; b = 1+2*d2; c = -d2;
|23
Appendix B MATLAB Code – Heat Conduction Implicit
D(1) = T(i,1);
D(j) = d1*Tx(i+1,j)+(1-2*d1)*Tx(i,j)+d1*Tx(i-1,j);
H(1) = 0; H(j) = c/(b-a*H(j-1));
G(1) = T1; G(j)=(D(j)-a*G(j-1))/(b-a*H(j-1)); end
Tnew(i,JM)=T3; for j=JM-1:-1:2 Tnew(i,j)=-H(j)*Tnew(i,j+1)+G(j); end Tnew(i,1)=T1;
% Sum error for j=2:JM-1 sum = (abs(Tnew(i,j)-T(i,j))/(T(i,j))); sumerror = sum + err; err = sumerror; end end
T = Tnew; % Update values for new time step iterations = iterations + 1 % Iteration count error=err % Determine total error end
for i=1:IM for j=1:JM Tnew(j,i)=T(i,j); end end
contour(Tnew) colorbar colormap gray title('2-D Heat Conduction Equation Implicit Approximation') xlabel('x [m]') ylabel('y [m]') set(gca,'XTick',[1:IM/5.05:IM] ); set(gca,'XTickLabel',[0:.2:x]); set(gca,'YTick',[1:JM/5.05:JM] ); set(gca,'YTickLabel',[0:.2:y]); toc