2D heat transfer equation with matlab
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Antworten (1)
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
0 Kommentare
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!