CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Main CFD Forum

2D Heat Conduction - MATLAB help

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   July 12, 2010, 05:56
Default 2D Heat Conduction - MATLAB help
  #1
New Member
 
Abe
Join Date: May 2010
Posts: 4
Rep Power: 7
abe_cooldude is on a distinguished road
Hi all, I am working on the problem below, and I wrote the code, but it's not working. Can anyone help me out? And even any ideas on how to improve the code to make it more succinct?

http://i25.tinypic.com/2v0zi8m.jpg


Basically, it is a 2D conduction problem with convection heat transfer on the top, insulated at the bottom edge, and temperature held constant at the left and right edge. The dimensions of the plate are 0.8x0.7 with dx=dy=dx=0.1. I used the symmetry, and the just worked on the left side of the symmetry line (nodes 1-40), wrote nodal equations (finite difference eqs) for each node, and then created a 40x40 matrix in matlab to solve system of unknown temperatures. However, my answer is not even remotely close. It doesn't matter what values I choose for k, h, Tb, q_dot, or any other constants. Here's my code. It's very long. I hope there's an easier way to implement this. IF there is, can someone help me or give me any ideas?

clc
clear

%Material Properties & Constants
k = 205;
h = 10;
qdot = 1000;
Tinf = 293.15;
Tb = 423.15;
dx = 0.1;
c = (-qdot*dx^2)/k;
d = 2*((h*dx)/k)*Tinf;
%Matrices
n = 5*8;
a = zeros(n,n);
b = zeros(n);

%node(1)
a(1,1)=-2*((h*dx)/k+1);
a(1,2)=1;
a(1,6)=1;
b(1)=c-d;

%node(2)
a(2,2)=-2*((h*dx)/k+2);
a(2,1)=1;
a(2,3)=1;
a(2,7)=2;
b(2)=c-d;

%node(3)
a(3,3)=-2*((h*dx)/k+2);
a(3,2)=1;
a(3,4)=1;
a(3,8)=2;
b(3)=c-d;

%node(4)
a(4,4)=-2*((h*dx)/k+2);
a(4,3)=1;
a(4,5)=1;
a(4,9)=2;
b(4)=c-d;

%node(5)
a(5,5)=-2*((h*dx)/k+2);
a(5,4)=2;
a(5,10)=2;
b(5)=c-d;

%node(6)
a(6,6)=Tb;
b(6)=0;

%node(7)
a(7,7)=-4;
a(7,2)=1;
a(7,6)=1;
a(7,8)=1;
a(7,12)=1;
b(7)=c;

%node(8)
a(8,8)=-4;
a(8,3)=1;
a(8,7)=1;
a(8,9)=1;
a(8,13)=1;
b(8)=c;

%node(9)
a(9,9)=-4;
a(9,4)=1;
a(9,8)=1;
a(9,10)=1;
a(9,14)=1;
b(9)=c;

%node(10)
a(10,10)=-4;
a(10,5)=1;
a(10,9)=2;
a(10,15)=1;
b(10)=c;

%node(11)
a(11,11)=Tb;
b(11)=0;

%node(12)
a(12,12)=-4;
a(12,7)=1;
a(12,11)=1;
a(12,13)=1;
a(12,17)=1;
b(12)=c;

%node(13)
a(13,13)=-4;
a(13,8)=1;
a(13,12)=1;
a(13,14)=1;
a(13,18)=1;
b(13)=c;

%node(14)
a(14,14)=-4;
a(14,8)=1;
a(14,13)=1;
a(14,15)=1;
a(14,19)=1;
b(14)=c;

%node(15)
a(15,15)=-4;
a(15,10)=1;
a(15,14)=2;
a(15,20)=1;
b(15)=c;

%node(16)
a(16,16)=Tb;
b(16)=0;

%node(17)
a(17,17)=-4;
a(17,12)=1;
a(17,16)=1;
a(17,18)=1;
a(17,22)=1;
b(17)=c;

%node(18)
a(18,18)=-4;
a(18,13)=1;
a(18,17)=1;
a(18,19)=1;
a(18,23)=1;
b(18)=c;

%node(19)
a(19,19)=-4;
a(19,14)=1;
a(19,18)=1;
a(19,20)=1;
a(19,24)=1;
b(19)=c;

%node(20)
a(20,20)=-4;
a(20,15)=1;
a(20,19)=2;
a(20,25)=1;
b(20)=c;

%node(21)
a(21,21)=Tb;
b(21)=0;

%node(22)
a(22,22)=-4;
a(22,17)=1;
a(22,21)=1;
a(22,23)=1;
a(22,27)=1;
b(22)=c;

%node(23)
a(23,23)=-4;
a(23,18)=1;
a(23,22)=1;
a(23,24)=1;
a(23,28)=1;
b(23)=c;

%node(24)
a(24,24)=-4;
a(24,19)=1;
a(24,23)=1;
a(24,25)=1;
a(24,29)=1;
b(24)=c;

%node(25)
a(25,25)=-4;
a(25,20)=1;
a(25,24)=2;
a(25,30)=1;
b(25)=c;

%node(26)
a(26,26)=Tb;
b(26)=0;

%node(27)
a(27,27)=-4;
a(27,22)=1;
a(27,26)=1;
a(27,28)=1;
a(27,32)=1;
b(27)=c;

%node(28)
a(28,28)=-4;
a(28,23)=1;
a(28,27)=1;
a(28,29)=1;
a(28,33)=1;
b(28)=c;

%node(29)
a(29,29)=-4;
a(29,24)=1;
a(29,28)=1;
a(29,30)=1;
a(29,34)=1;
b(29)=c;

%node(30)
a(30,30)=-4;
a(30,25)=1;
a(30,29)=2;
a(30,35)=1;
b(30)=c;

%node(31)
a(31,31)=Tb;
b(31)=0;

%node(32)
a(32,32)=-4;
a(32,27)=1;
a(32,31)=1;
a(32,33)=1;
a(32,37)=1;
b(32)=c;

%node(33)
a(33,33)=-4;
a(33,28)=1;
a(33,32)=1;
a(33,34)=1;
a(33,38)=1;
b(33)=c;

%node(34)
a(34,34)=-4;
a(34,29)=1;
a(34,33)=1;
a(34,35)=1;
a(34,39)=1;
b(34)=c;

%node(35)
a(35,35)=-4;
a(35,30)=1;
a(35,34)=2;
a(35,40)=1;
b(35)=c;

%node(36)
a(36,36)=Tb;
b(36)=0;

%node(37)
a(37,37)=-4;
a(37,32)=2;
a(37,36)=1;
a(37,38)=1;
b(37)=c;

%node(38)
a(38,38)=-4;
a(38,33)=2;
a(38,37)=1;
a(38,39)=1;
b(38)=c;

%node(39)
a(39,39)=-4;
a(39,34)=2;
a(39,38)=1;
a(39,40)=1;
b(39)=c;

%node(40)
a(40,40)=-4;
a(40,35)=2;
a(40,39)=2;
b(40)=c;

T=a\b;

fprintf(' Forcing Function Vector \n ')
b(:,1)
fprintf(' NODE TEMPERATURE (K) \n ')
TSolution=T(:,1);

contourf(T)

for i=1:length(TSolution)
fprintf(' %4.0f \t \t %6.1f \n',i,TSolution(i))
end
abe_cooldude is offline   Reply With Quote

Reply

Tags
conduction, convection, diffusion, heat transfer, matlab

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Heat transfer, convection, radiation, conduction Sandra H. OpenFOAM 1 March 3, 2010 09:02
how to simulate 2d solid heat conduction using CFX richard CFX 3 March 24, 2008 08:27
Conduction heat not balanced? Nepal CFX 7 May 31, 2005 11:51
Convective Heat Transfer - Heat Exchanger Mark CFX 6 November 15, 2004 16:55
Heat conduction through solid rib in periodic duct Dieter Fauconnier FLUENT 0 October 7, 2004 08:22


All times are GMT -4. The time now is 02:23.