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.


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


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.


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

Source Code: