function [T] = adwekcja_dyfuzja(a, b1, b2, p, kroki_t, dt, alp2, v0, phi) dx = a/p; dy = a/p; %obszar roboczy T = zeros(p); v = linspace(v0, v0*b1/b2, p); % T_ym1 = zeros(1, p); % T_yp1 = zeros(1, p); for step = 1:kroki_t T_prev = T; for x = 2:p-1 %w poziomie for y = 1:p % w pionie if y == 1 %pierwszy wiersz od dołu Ty_1 = T_prev(y+1, x) - 2*phi*dy; T(y,x) = T_prev(y,x)+dt*(v(y)*(T_prev(y+1,x)-T_prev(y,x))/dy+alp2*((T_prev(y,x+1)-2*T_prev(y,x)+T_prev(y,x-1))/dx^2+(T_prev(y+1,x)-2*T_prev(y,x)+Ty_1)/dy^2)); elseif y == p %ostatni od góry Ty1 = +2*phi*dy + T_prev(y-1, x); T(y,x) = T_prev(y,x)+dt*(v(y)*(Ty1-T_prev(y,x))/dy+alp2*((T_prev(y,x+1)-2*T_prev(y,x)+T_prev(y,x-1))/dx^2+(Ty1-2*T_prev(y,x)+T_prev(y-1,x))/dy^2)); else %cała reszta T(y,x) = T_prev(y,x)+dt*(v(y)*(T_prev(y+1,x)-T_prev(y,x))/dy+alp2*((T_prev(y,x+1)-2*T_prev(y,x)+T_prev(y,x-1))/dx^2+(T_prev(y+1,x)-2*T_prev(y,x)+T_prev(y-1,x))/dy^2)); end end end end end
raciu68