Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.6 kB
2
Indexable
Never
function chimney_heat_transfer(T_gas, k, h_o)
    % Other Constants
    T_ambient = 15; % °C
    T_sky = 250; % K
    h_i = 75; % W/m²°C
    epsilon = 0.9;
    sigma = 5.67e-8; % Stefan-Boltzmann constant W/m²K⁴

    % Grid
    T = zeros(10, 10); % considering symmetry

    % Initial guess
    T(:,:) = T_gas;

    % Iteration settings
    max_iter = 5000;
    tol = 1e-6;

    % Jacobi iteration
    for iter = 1:max_iter
        T_old = T;
        
        % Update inner nodes
        for i = 2:9
            for j = 2:9
                T(i,j) = 0.25 * (T_old(i+1,j) + T_old(i-1,j) + T_old(i,j+1) + T_old(i,j-1));
            end
        end
        
        % Update boundary conditions
        T(1,:) = (T_old(2,:) + dx * h_i / k * T_gas) / (1 + dx * h_i / k);
        T(10,:) = (T_old(9,:) + dx * (h_o * T_ambient + epsilon * sigma * (T_sky^4 - T_old(10,:).^4) / k)) / (1 + dx * h_o / k);
        
        % Check convergence
        if max(max(abs(T - T_old))) < tol
            break
        end
    end

    % Calculate heat loss
    Q_conv = h_o * sum(T(10,:) - T_ambient) * 1; % 1 m length
    Q_rad = epsilon * sigma * sum(T(10,:).^4 - T_sky^4) * 1; % 1 m length

    % Total heat loss per unit length
    Q_total = Q_conv + Q_rad;

    % Display result
    disp(['Total heat loss per unit length: ', num2str(Q_total), ' W/m'])

    % Plot temperature distribution
    [X,Y] = meshgrid(1:10, 1:10);
    surf(X, Y, T);
    xlabel('X');
    ylabel('Y');
    zlabel('Temperature (°C)');
    title('Temperature Distribution in Chimney Wall');
end