fem_basis_t4_display, a MATLAB code which reads data defining a T4 mesh of 4-node triangles, and displays the basis function associated with any node in the mesh.

The entire mesh is shown (which could be a problem for large meshes!). However, a finite element basis function is nonzero over only a relatively small number of elements. Over these elements, the basis function is cubic, and the curved nature of this part of the surface is suggested by taking many plot points in this region.

The best part of the presentation is that MATLAB allows the user to turn the plot or zoom in and out, which makes it much easier to understand the information that is being presented.

The triangular mesh is defined by a node file containing the coordinates of nodes, and an element file containing sets of the four nodes that make up each element.

Note that the four nodes making up each element are to be listed in a particular order, in which the vertices come first, followed by the centroid, as suggested by the following diagram:

        | \
        |  \
        |   \
        | 4  \
        |     \
        |      \


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


fem_basis_t4_display is available in a MATLAB version.

Related Programs:


bezier_surface_display, a MATLAB code which displays a bezier surface.

fem_basis_t3_display, a MATLAB code which displays a basis function associated with a 3-node t3 mesh.

fem_basis_t6_display, a MATLAB code which displays a basis function associated with a 6-node t6 mesh.

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

fem2d_pack, a MATLAB code which is useful for 2d finite element calculations.

fem2d_poisson, a MATLAB code which solves poisson's equation on a square, using the finite element method.

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

polygonal_surface_display, a MATLAB code which reads two files defining a polygonal surface and displays it within MATLAB.

quad_surface_display, a MATLAB code which reads files defining a 3d quadrilateral mesh surface and displays it within MATLAB.

tet_mesh_display, a MATLAB code which can read in the node and tetra files defining a tet mesh and display a wireframe image.

tri_surface_display, a MATLAB code which reads data defining a triangular mesh of a 3d surface and displays it.

triangulation_order6, a directory which contains a description and examples of order 6 triangulations.

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

triangulation_plot, a MATLAB code which creates an eps image of a triangulation.


  1. Klaus-Juergen Bathe,
    Finite Element Procedures,
    Prentice Hall, 1996.
  2. Eric Becker, Graham Carey, John Oden,
    Finite Elements, An Introduction, Volume I,
    Prentice-Hall, 1981.
  3. Herbert Edelsbrunner,
    Geometry and Topology for Mesh Generation,
    Cambridge, 2001,
    LC: QA377.E36,
    ISBN: 0-521-79309-2.
  4. Max Gunzburger,
    Finite Element Methods for Viscous Incompressible Flows,
    A Guide to Theory, Practice, and Algorithms,
    Academic Press, 1989,
    LC: TA357.G86.
  5. Gilbert Strang, George Fix,
    An Analysis of the Finite Element Method,
    Prentice Hall, 1973,
    LC: TA335.S77.

Source code:

Last revised on 16 July 2023.