fem_basis_t6_display, a MATLAB code which reads data defining a quadratic triangular ("T6") mesh 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 quadratic, 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 six nodes that make up each element.

Note that the six nodes making up each element are to be listed in a particular order, in which the vertices come first, followed by the midside nodes. Moreover, the first midside node is the one between vertices 1 and 2, as suggested by the following diagram:

        | \
        |  \
        6   5
        |    \
        |     \
        |      \

In general, a mesh of quadratic triangles allows the sides to be bent. However, for this application, it is assumed that the sides of each triangle are straight, that is, that each midside node lies on the line segment joining the corresponding vertices.


fem_basis_t6_display ( 'prefix' )
where The program queries the user for a node index and then displays the basis function corresponding to that node.


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


fem_basis_t6_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 triangle "t3" mesh.

fem_basis_t4_display, a MATLAB code which displays a basis function associated with a 4-node triangle "t4" mesh.

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

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_contour, a MATLAB code which makes 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:

Tests and Examples

SMALL_SQUARE is a simple mesh of 25 nodes and 8 elements over the [0,4] by [0,4] square. Test files you may copy include:

BIG_SQUARE is a simple mesh of 169 nodes and 72 elements over the [0,1] by [0,1] square. Test files you may copy include:

Last revised on 12 February 2010.