1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Heat Transfer: Matlab 2D Conduction

  1. Mar 27, 2012 #1

    1. The problem statement, all variables and given/known data

    Having trouble with code as seen by the gaps left where it asks me to add things like the coefficient matrices. Any Numerical Conduction matlab wizzes out there?



    A long square bar with cross-sectional dimensions of 30 mm x 30 mm has a specied temperature on each side, The temperatures are:

    Tbottom = 100 C
    Ttop = 150 C
    Tleft = 250 C
    Tright = 300 C

    Assuming isothermal surfaces, write a software program to solve the heat equation to determine the two-dimensional
    steady-state spatial temperature distribution within the bar.
    Your analysis should use a finite difference discretization of the heat equation in the bar to establish a system of equations:



    2. Relevant equations

    AT = C

    Must use Gauss-Seidel Method to solve the system of equations



    3. The attempt at a solution

    clear all
    close all

    %Specify grid size
    Nx = 10;
    Ny = 10;

    %Specify boundary conditions
    Tbottom = 100
    Ttop = 150
    Tleft = 250
    Tright = 300

    % initialize coefficient matrix and constant vector with zeros
    A = zeros(Nx*Ny);
    C = zeros(Nx*Ny,1);

    % initial 'guess' for temperature distribution
    T(1:Nx*Ny,1) = 100;

    % Build coefficient matrix and constant vector

    % inner nodes
    for n = 2:(Ny-1)
    for m = 2:(Nx-1)
    i = (n-1)*Nx + m;
    DEFINE COEFFICIENT MATRIX ELEMENTS HERE
    end
    end

    % Edge nodes

    % bottom
    for m = 2:(Nx-1)
    6%n = 1
    i = m;

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    end
    %top:
    for m = 2:(Nx-1)
    % n = Ny
    i = (Ny-1)*Nx + m;

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    end
    %left:
    for n=2:(Ny-1)
    %m = 1
    i = (n-1)*Nx + 1;

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    end
    %right:
    for n=2:(Ny-1)
    %m = Nx
    i = (n-1)*Nx + Nx;

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    end
    % Corners
    %bottom left (i=1):
    i=1

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    %bottom right:
    i = Nx

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    C(Nx) = -(Tbottom + Tright);
    %top left:
    i = (Ny-1)*Nx + 1;

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    %top right:
    i = Nx*Ny;

    DEFINE COEFFICIENT MATRIX AND CONSTANT VECTOR ELEMENTS HERE

    %Solve using Gauss-Seidel
    residual = 100;
    iterations = 0;
    while (residual > 0.0001) % The residual criterion is 0.0001 in this example
    7% You can test different values
    iterations = iterations+1
    %Transfer the previously computed temperatures to an array Told
    Told = T;
    %Update estimate of the temperature distribution

    INSERT GAUSS-SEIDEL ITERATION HERE

    %compute residual
    deltaT = abs(T - Told);
    residual = max(deltaT);
    end
    iterations % report the number of iterations that were executed
    %Now transform T into 2-D network so it can be plotted.
    delta_x = 0.03/(Nx+1)
    delta_y = 0.03/(Ny+1)
    for n=1:Ny
    for m=1:Nx
    i = (n-1)*Nx + m;
    T2d(m,n) = T(i);
    x(m) = m*delta_x;
    y(n) = n*delta_y;
    end
    end
    T2d
    surf(x,y,T2d)
    figure
    contour(x,y,T2d
    1. The problem statement, all variables and given/known data



    2. Relevant equations



    3. The attempt at a solution
     
  2. jcsd
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?



Similar Discussions: Heat Transfer: Matlab 2D Conduction
  1. Heat Transfer (Replies: 0)

Loading...