lab10 backup.txt

(1 KB) Pobierz
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
Zgłoś jeśli naruszono regulamin