Project

2D Heat Conduction Steady and Unsteady

STEADY STATE ANALYSIS

Governing equation

`(del^2T)/(delx^2)+(del^2T)/(dely^2)= 0`

Equivalent Numerical Equation used in Jacobi Method

`T(i,j) = 0.25 xx (Told(i,j-1)+Told(i,j+1)+Told(i-1,j)+Told(i+1,j))`

Equivalent Numerical Equation used in Gauss Siedel Method

`T(i,j) = 0.25 xx (T(i,j-1)+Told(i,j+1)+T(i-1,j)+Told(i+1,j))`

Equivalent Numerical Equation used in SOR Method

`T(i,j)=(1-w) xx Told(i,j)+w xx (0.25 xx (T(i,j-1)+Told(i,j+1)+T(i-1,j)+Told(i+1,j)))`

MATLAB CODE

%2nd order steady state 2dimensional pde
%Implicit methods

close all
clear all
clc

nx=20;
ny=20;

x=linspace(0,1,nx);
y=linspace(0,1,ny);
[xx,yy]=meshgrid(x,y);

T=zeros(nx,ny);
T(1,1:nx)=900;
T(ny,1:nx)=600;
T(1:ny,1)=400;
T(1:ny,nx)=800;

tol=1e-4;
error=1;
iter=0;
w=1.5;
prompt= \'Which method to be used(1. Jacobi 2.GS 3.GS+SOR)?\';
p=input(prompt);

if p==1
    while (error>tol)
   Told=T;
   for i=2:nx-1
      for j=2:ny-1
         T(i,j)=0.25*(Told(i,j-1)+Told(i,j+1)+Told(i-1,j)+Told(i+1,j));
      end
   end
   iter = iter+1;
   error = max(max(abs(Told-T)));

    end

end

if p==2
 while (error>tol)
   Told=T;
   for i=2:nx-1
      for j=2:ny-1
         T(i,j)=0.25*(T(i,j-1)+Told(i,j+1)+T(i-1,j)+Told(i+1,j));
         
      end
   end
   iter = iter+1;
   error = max(max(abs(Told-T)));
   
 end
end

if p==3
   while (error>tol)
   Told=T;
   for i=2:nx-1
      for j=2:ny-1
         T(i,j)=(1-w)*Told(i,j)+w*(0.25*(T(i,j-1)+Told(i,j+1)+T(i-1,j)+Told(i+1,j)));
         
      end
   end
   iter = iter+1;
   error = max(max(abs(Told-T)));
   end
end

figure(1)
[C,h] = contourf(xx,yy,T);
colorbar;
colormap(jet);
clabel(C,h);
title(sprintf(\'2D steady state heat conduction (Implicit Method)  Number of iterations: %d \',iter));
xlabel(\'Bottom\');
ylabel(\'Left side\');

Code Output Plots

1. Jacobi Method

2. Gauss Seidel Method

3. GS and Successive Over Relaxation (w=1.5)

UNSTEADY STATE ANALYSIS

Governing equation

`(del^2T)/(delx^2)+(del^2T)/(dely^2)= alpha (delT)/(delx)`

1. EXPLICIT METHOD

Equivalent Numerical Equation used

`T(i,j)= Told(i,j)+k1*(Told(i,j-1)-2 Told(i,j)+Told(i,j+1))+k2*(Told(i-1,j)-2*Told(i,j)+Told(i+1,j))`

MATLAB CODE

%2nd order unsteady state 2dimensional pde
%Explicit method
close all
clear all
clc

nx=20;
ny=20;
dx=1/(nx-1);
dy=1/(ny-1);
x=linspace(0,1,nx);
y=linspace(0,1,ny);
[xx,yy]=meshgrid(x,y);

T=zeros(nx,ny);
T(1,1:nx)=900;
T(ny,1:nx)=600;
T(1:ny,1)=400;
T(1:ny,nx)=800;

dt= 0.01;
alpha= 1e-4;

k1=alpha*dt/dx^2;
k2=alpha*dt/dy^2;

for iter = 1:20000 %Compare with results for 200000 iterations
   Told=T; 
   for i=2:nx-1
      for j=2:ny-1
         T(i,j)= Told(i,j)+k1*(Told(i,j-1)-2*Told(i,j)+Told(i,j+1))+k2*(Told(i-1,j)-2*Told(i,j)+Told(i+1,j));
      end
   end
   
end

figure(1)
[C,h] = contourf(xx,yy,T);
colorbar;
colormap(jet);
clabel(C,h);
title(sprintf(\'2D unsteady state heat conduction (Emplicit Method)  Number of iterations: %d \',iter));
xlabel(\'Bottom\');
ylabel(\'Left side\');

Code Output Plots

2. IMPLICIT METHOD

`k1=alpha*dt/(dx)^2`

`k1=alpha*dt/(dy)^2`

`term1=(1+2*k1+2*k2)^(-1)`

`term2=k1*term1`

`term3=k2*term1`

Equivalent Numerical Equation used in Jacobi Method

`h=Told(i,j-1)+Told(i,j+1)`

`v=Told(i-1,j)+Told(i+1,j)`

`T(i,j)=T_prev_dt(i,j)*term1+h*term2+v*term3`

Equivalent Numerical Equation used in Gauss Siedel Method

`h=T(i,j-1)+Told(i,j+1)`

`v=T(i-1,j)+Told(i+1,j)`

`T(i,j)=T_prev_dt(i,j)*term1+h*term2+v*term3`

Equivalent Numerical Equation used in SOR Method

`h=T(i,j-1)+Told(i,j+1)`

`v=T(i-1,j)+Told(i+1,j)`

`T(i,j)=(1-w)*Told(i,j)+w*(T_prev_dt(i,j)*term1+h*term2+v*term3)`

MATLAB CODE

%2nd order unsteady state 2dimensional pde
%Implicit method

close all
clear all
clc

nx=20;
ny=20;
dx=1/(nx-1);
dy=1/(ny-1);
x=linspace(0,1,nx);
y=linspace(0,1,ny);
[xx,yy]=meshgrid(x,y);

T=zeros(nx,ny);
T(1,1:nx)=900;
T(ny,1:nx)=600;
T(1:ny,1)=400;
T(1:ny,nx)=800;


tol=1e-4;

iter=0;

dt= 0.01;
t=0;
tend=200;
alpha=1e-4;

p=0;

k1=alpha*dt/dx^2;
k2=alpha*dt/dy^2;
term1=(1+2*k1+2*k2)^(-1);
term2=k1*term1;
term3=k2*term1;   

prompt= \'Which method to be used(1. Jacobi 2.GS 3.GS+SOR)?\';
p=input(prompt);

if p==1
    
while(t<=tend)

error=1e9;
T_prev_dt=T;
 while (error>tol)
    Told=T;
    for i=2:nx-1
      for j=2:ny-1
         h=Told(i,j-1)+Told(i,j+1);
         v=Told(i-1,j)+Told(i+1,j);
         T(i,j)=T_prev_dt(i,j)*term1+h*term2+v*term3;
      end
   end
   iter = iter+1;
   error = max(max(abs(Told-T)));
  end

t=t+dt;
end

end

if p==2
    
while(t<=tend)

error=1e9;
T_prev_dt=T;
 while (error>tol)
    Told=T;
    for i=2:nx-1
      for j=2:ny-1
         h=T(i,j-1)+Told(i,j+1);
         v=T(i-1,j)+Told(i+1,j);
         T(i,j)=T_prev_dt(i,j)*term1+h*term2+v*term3;
      end
   end
   iter = iter+1;
   error = max(max(abs(Told-T)));
  end

t=t+dt;
end    
    
end

if p==3
    
    
    while(t<=tend)

error=1e9;
T_prev_dt=T;
 while (error>tol)
    Told=T;
    w=1.1;
    for i=2:nx-1
      for j=2:ny-1
         h=T(i,j-1)+Told(i,j+1);
         v=T(i-1,j)+Told(i+1,j);
         T(i,j)=(1-w)*Told(i,j)+w*(T_prev_dt(i,j)*term1+h*term2+v*term3);
      end
    end
      iter = iter+1;
    error = max(max(abs(Told-T)));
      end

t=t+dt;

 end

end

figure(1)
[C,h] = contourf(xx,yy,T);
colorbar;
colormap(jet);
clabel(C,h);
title(sprintf(\'2D unsteady state heat conduction (Implicit Method)  Number of iterations: %d \',iter));
xlabel(\'Bottom\');
ylabel(\'Left side\');



Code Output Plots

1. Jacobi Method

2. Gauss Seidel Method

3. GS and Successive Over Relaxation(w=1.1)

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.