FD1D_HEAT_IMPLICIT
Finite Difference Solution of the
Time Dependent 1D Heat Equation
using Implicit Time Stepping


FD1D_HEAT_IMPLICIT is a FORTRAN77 program which solves the time-dependent 1D heat equation, using the finite difference method in space, and an implicit version of the method of lines to handle integration in time.

This program solves

        dUdT - k * d2UdX2 = F(X,T)
      
over the interval [A,B] with boundary conditions
        U(A,T) = UA(T),
        U(B,T) = UB(T),
      
over the time interval [T0,T1] with initial conditions
        U(X,T0) = U0(X)
      

A second order finite difference is used to approximate the second derivative in space.

The solver applies an implicit backward Euler approximation to the first derivative in time.

The resulting finite difference form can be written as

       U(X,T+dt) - U(X,T)                     ( U(X-dx,+dtT) - 2 U(X,+dtT) + U(X+dx,+dtT) )
       ------------------  = F(X,T+dt) + k *  ---------------------------------------------
                dt                                   dx * dx
      
or, assuming we have solved for all values of U at time T, we have
            -     k * dt / dx / dx   * U(X-dt,T+dt)
      + ( 1 + 2 * k * dt / dx / dx ) * U(X,   T+dt)
            -     k * dt / dx / dx   * U(X+dt,T+dt)
      =               dt             * F(X,   T+dt)
      +                                U(X,   T)
      
which can be written as A*x=b, where A is a tridiagonal matrix whose entries are the same for every time step.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Related Data and Programs:

FD1D_HEAT_EXPLICIT is a FORTRAN77 program which uses the finite difference method to solve the time dependent heat equation in 1D, using an explicit time step method.

FD1D_HEAT_IMPLICIT is available in a FORTRAN77 version. a FORTRAN90 version.

FD1D_HEAT_STEADY is a FORTRAN90 program which uses the finite difference method to solve the steady (time independent) heat equation in 1D.

FD1D_PREDATOR_PREY is a FORTRAN77 program which uses finite differences to solve a 1D predator prey problem.

FEM_50_HEAT is MATLAB program which applies the finite element method to solve the 2D heat equation.

FEM1D is a FORTRAN77 program which applies the finite element method, with piecewise linear basis functions, to a linear two point boundary value problem;

FEM1D_ADAPTIVE is a FORTRAN77 program which applies the finite element method to a linear two point boundary value problem in a 1D region, using adaptive refinement to improve the solution.

FEM1D_NONLINEAR is a FORTRAN77 program which applies the finite element method to a nonlinear two point boundary value problem in a 1D region.

FEM1D_PMETHOD is a FORTRAN77 program which applies the p-method version of the finite element method to a linear two point boundary value problem in a 1D region.

FEM2D_HEAT is a FORTRAN90 program which applies the finite element method to solve the 2D heat equation.

FREE_FEM_HEAT is a FORTRAN90 program which applies the finite element method to solve the time dependent heat equation in an arbitrary triangulated 2D region.

HOT_PIPE is a MATLAB program which uses FEM_50_HEAT to solve a heat problem in a pipe.

HOT_POINT is a MATLAB program which uses FEM_50_HEAT to solve a heat problem with a point source.

Reference:

  1. George Lindfield, John Penny,
    Numerical Methods Using MATLAB,
    Second Edition,
    Prentice Hall, 1999,
    ISBN: 0-13-012641-1,
    LC: QA297.P45.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the FORTRAN77 source codes.


Last revised on 30 May 2009.