2D Implicit Transient Heat conduction Problem
조회 수: 22 (최근 30일)
이전 댓글 표시
Dear all,
I am trying to solve a 2D transient implicit Heat conduction problem using Iterative methods like Jacobi, Gauss Siedel and SOR method.
I have written a code for it. But I have a little problem in looping the inner nodes. I have properly assigned Boundary conditions, also given the inner loop
Iteration. But I am not able to figure out the reason for the proper profile. The solution is stopping after only 3 Iterations.
I have attached the code below. Please let me know if anyone get it. Thanks !!
% Space Initialization
Lx = 1; Ly = 1;
nx = 11;
ny = 11;
dx = Lx/(nx-1); dy = Ly/(ny-1);
% Time Initialization
time = 0.2;
k = 1.65e-4; % Thermal Diffusivity
dt = 1e-4;
nt = time/dt;
k1 = k*dt/(dx^2);
k2 = k1;
% Mesh
x = linspace(0,Lx,nx);
y = linspace(0,Ly,ny);
[X, Y] = meshgrid(x,y);
% Limits
tol = 1e-4;
error = 9e9;
% Temp Initialization
T = ones(nx,ny);
% Boundary conditions
T(:,1) = 400; % Left
T(:,end) = 800; % Right
T(1,2:end-1) = 600; % Top
T(end,2:end-1) = 900; % Bottom
% Copying T
Told = T;
% Implicit method
iter = 1;
T_prev_dt = Told;
% Loop
for k = 1:nt
while(error > tol)
for i = 2:nx-1
for j = 2:ny-1
term1 = (1+(2*k1)+(2*k2))^-1;
term2 = k1*term1;
term3 = k2*term1;
H = (Told(i-1,j)+Told(i+1,j));
V = (Told(i,j-1)+Told(i,j+1));
T(i,j) = (T_prev_dt(i,j)*term1)+(H*term2)+(V*term3);
end
end
error = max(max(abs(Told - T)));
Told = T;
iter = iter+1;
end
T_prev_dt = T;
end
%%Plotting
C = contourf(X,Y,T,'edgecolor','none');
set(gca,'YDIR','reverse');
colormap(jet);
clabel(C,'FontSize',12);
댓글 수: 2
Vineet Sengar
2020년 6월 10일
Guys, don't get confused. This is an explicit method, not an implicit one. This guy lied to us and said it's an implicit method.
답변 (1개)
darova
2020년 6월 11일
- the first problem is that you are using both variable Told and T_prev_dt - use the one only
- second problem: dt value is too smal. It causes large difference between term1 and term2/term3 (solving is very slow)
I suggest you to add these lines inside your script to see solution process
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!