fem1d_heat_explicit


fem1d_heat_explicit, a Python code which solves the time-dependent 1D heat equation, using the finite element method in space, and an explicit version of the method of lines to handle integration in time.

This code 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)
      

The spatial derivatives are approximated using the finite element method, with piecewise linear elements.

The solver applies an explicit forward Euler approximation to the first derivative in time.

Licensing:

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

Languages:

fem1d_heat_explicit is available in a MATLAB version and a Python version.

Related Data and codes:

fd1d_heat_explicit, a Python code which uses the finite difference method and explicit time stepping to solve the time dependent heat equation in 1D.

fem1d_bvp_linear, a Python code which applies the finite element method (FEM), with piecewise linear elements, to a two point boundary value problem (BVP) in one spatial dimension, and compares the computed and exact solutions with the L2 and seminorm errors.

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: