HOT_POINT
A Sample Heat Flow Problem


HOT_POINT is a MATLAB program which describes a particular heat problem suitable for solution by FEM_50_HEAT, a MATLAB program that solves the time dependent heat equation in two dimensions, by Jochen Alberty, Carsten Carstensen, Stefan Funken.

The region is the unit square, containing 169 nodes, whose locations are specified in coordinates.txt. You may examine a PNG image of the nodes in nodes.png, created by the TRIANGULATION_PLOT program.

Triangular elements are used (in fact, FEM_50_HEAT can't currently use quadrilateral elements.) The triples of nodes that form each triangle are listed in elements3.txt. You may examine a PNG image of the elements in elements.png, created by the TRIANGULATION_PLOT program..

The pair of data files coordinates.txt and elements3.txt describe an order 3 triangulation. For more examples of this data structure, see the order 3 triangulation.txta page.

You may examine a PNG image of the grid, which displays both the nodes and elements, in grid.png, created by the TRIANGULATION_PLOT program.

Dirichlet boundary conditions are applied on the boundary, of the form


        U(x,y,t) = 0.1 * ( x + y )
      
The list of element sides at which these conditions apply are given in dirichlet.txt.

The (time dependent) right hand side of the Dirichlet conditions is evaluated by the function u_d.m.

No Neumann boundary conditions are applied. The (empty) list of element sides at which these conditions apply are given in neumann.txt.

The right hand side of the (empty) Neumann conditions is evaluated by the function g.m.

The initial condition is


        U(x,y,t_start) = 0
      
at all points, except a single point in the center, whose initial value is 1. The initial condition information is evaluated by the function u_init.m.

The time dependent heat equation has the form


        dU/dt = Uxx + Uyy + F(x,y,t)
      
The right hand side function F(x,y,t) is zero and is evaluated by the function f.m.

Internal to the script FEM_50_HEAT are statements that choose parameter values. For this run, we suggest using:

Any of these quantities may be changed to values that you find more suitable.

Related Data and Programs:

FEM_50_HEAT, a MATLAB program which is a modified version of FEM_50 suitable for solving the heat equation.

FEM_IO, a MATLAB library which reads and writes the node, element and data files that define a finite element model.

FEM2D_HEAT, a MATLAB program which solves the time dependent heat equation in the unit square.

FEM2D_POISSON, a MATLAB program which solves Poisson's equation on a square, using the finite element method.

FEM2D_SAMPLE, a MATLAB library which evaluates a finite element function defined on an order 3 or order 6 triangulation.

HOT_PIPE, a MATLAB library which defines a sample problem that can be run with FEM_50_HEAT.

TRIANGULATION_ORDER3, a data directory which contains a description and examples of how an order 3 (linear) triangulation is defined by a node and element file.

TRIANGULATION_ORDER6, a data directory which contains a description and examples of how an order 6 (quadratic) triangulation is defined by a node and element file.

TRIANGULATION_ORDER6_CONTOUR, a MATLAB program which can make contours of a scalar quantity defined on the nodes of an order 6 triangulation.

Author:

Jochen Alberty,
Carsten Carstensen,
Stefan Funken.

References:

  1. Jochen Alberty, Carsten Carstensen, Stefan Funken,
    Remarks Around 50 Lines of MATLAB:
    Short Finite Element Implementation,
    Numerical Algorithms,
    Volume 20, pages 117-137, 1999.
  2. Carsten Carstensen's web page "http://www.math.hu-berlin.de/~cc".

Source Code:

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


Last revised on 17 September 2005.