2D heat transfer equation with matlab

3 Ansichten (letzte 30 Tage)
Alexey
Alexey am 11 Okt. 2014
Beantwortet: Hadj Merad am 10 Jan. 2022
Good day all!
I'm solly for my bad english language. I trying to solve the heat transfer equation with matlab in 2D. I have time dependent equation with linear coefficient lambda, Cp, rho. I turned this code. The problem is that the values of Nnew(i, j) filled just over the border and inside equal to H0(i,j). Please, see my code and edit.
clc
clear all
global t Tbf Cth Cf L Wtot Ww V tend dt lamda rho Cp T0 a TU TD TR TL H0
t=0;
Tbf=-0.47+273.15;
Cth=2845;
Cf=1899;
L=45000;
Wtot=0.25;
Ww=0.12;
V=Ww/Wtot;
tend=1000;
dt=0.1;
lamda=57;
rho=7900;
Cp=450;
T0=270.15;
Lx=20;
Nx=20;
Ly=20;
Ny=20;
dx=Lx/(Nx-1);
dy=Ly/(Ny-1);
a=lamda/(rho*Cp);
Kx=(dx)^2/(a*dt);
Ky=(dy)^2/(a*dt);
TU=-12+273.15; %temp up
TD=-3.5+273.15; %temp down
TL=-2.5+273.15; %temp left
TR=60+273.15; %temp right
T=zeros(Nx,Ny);
H=zeros(Nx,Ny);
H0=Cf*(T0-Tbf);
Hnew=H0;
for i=1:1:Nx for j=1:1:Ny H(i,j)=H0; end end
for i=1:1:Nx for j=1:1:Ny T(i,j)=T0; end end
for j=1;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for i=1;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for i=Nx;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
while t<tend t=t+dt; for i=2:1:Nx-1 for j=2:1:Ny-1 Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1)); end end H=Hnew; end
Best Regards, Alexey Ishkov

Antworten (1)

Hadj Merad
Hadj Merad am 10 Jan. 2022
clc
clear all
global t Tbf Cth Cf L Wtot Ww V tend dt lamda rho Cp T0 a TU TD TR TL H0
t=0;
Tbf=-0.47+273.15;
Cth=2845;
Cf=1899;
L=45000;
Wtot=0.25;
Ww=0.12;
V=Ww/Wtot;
tend=1000;
dt=0.1;
lamda=57;
rho=7900;
Cp=450;
T0=270.15;
Lx=20;
Nx=20;
Ly=20;
Ny=20;
dx=Lx/(Nx-1);
dy=Ly/(Ny-1);
a=lamda/(rho*Cp);
Kx=(dx)^2/(a*dt);
Ky=(dy)^2/(a*dt);
TU=-12+273.15; %temp up
TD=-3.5+273.15; %temp down
TL=-2.5+273.15; %temp left
TR=60+273.15; %temp right
T=zeros(Nx,Ny);
H=zeros(Nx,Ny);
H0=Cf*(T0-Tbf);
Hnew=H0;
for j=1;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for i=1;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for i=Nx;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by