FEM_IO
Read or Write a Finite Element Model


FEM_IO is a C++ library which reads or writes FEM files, which describe the nodes, elements, and function values associated with a finite element method (FEM) model;

The finite element model is assumed to include three items:

Licensing:

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

Languages:

FEM_IO is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

FEM_DISPLAY, a MATLAB program which reads the FEM model of a 2D mesh, consisting of polygonal elements of any uniform order, and displays an image of the elements and nodes, with optional numbering.

FEM_TO_GMSH, a C++ program which reads FEM files definining a 1D, 2D or 3D mesh, namely a file of node coordinates and a file of elements defined by node indices, and creates a Gmsh mesh file.

FEM_TO_MEDIT, a C++ program which reads a pair of FEM files defining node coordinates and elements, and creates a corresponding MEDIT mesh file.

FEM_TO_TRIANGLE, a C++ program which reads FEM files defining a 2D mesh of triangles, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding pair of node and element files for use by Jonathan Shewchuk's triangle program.

FEM_TO_XML, a C++ program which reads FEM files defining a 1D, 2D or 3D mesh, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding XML file for input to DOLFIN or FENICS.

FEM1D, a data directory which contains examples of 1D FEM files, three text files that describe a 1D finite element model;

FEM2D, a data directory which contains examples of 2D FEM files, three text files that describe a 2D finite element geometry;

FEM2D_PACK, a C++ library which is useful for 2D finite element calculations.

FEM3D, a data directory which contains examples of 3D FEM files, three text files that describe a 3D finite element geometry;

GMSH_TO_FEM, a C++ program which reads a mesh data file created by the GMSH program and writes a pair of node and element files that correspond to the FEM format.

MEDIT_IO, a C++ library which can read or write MEDIT mesh files, which can be used to define the geometry of a finite element mesh in 2D or 3D, using triangles, quadrilaterals, tetrahedrons or hexahedrons.

MEDIT_TO_FEM, a C++ program which reads a mesh file created by the MEDIT program and writes a corresponding pair of node and element files that correspond to the FEM format.

TABLE_IO, a C++ library which can read and write TABLE files.

TRIANGLE_TO_FEM, a C++ program which reads the NODE and ELE files created by triangle() to describe a triangular mesh, and writes a corresponding pair of node and element files in the 2D FEM format.

Reference:

  1. Hans Rudolf Schwarz,
    Finite Element Methods,
    Academic Press, 1988,
    ISBN: 0126330107,
    LC: TA347.F5.S3313..
  2. Gilbert Strang, George Fix,
    An Analysis of the Finite Element Method,
    Cambridge, 1973,
    ISBN: 096140888X,
    LC: TA335.S77.
  3. Olgierd Zienkiewicz,
    The Finite Element Method,
    Sixth Edition,
    Butterworth-Heinemann, 2005,
    ISBN: 0750663200,
    LC: TA640.2.Z54
  4. Daniel Zwillinger, editor,
    CRC Standard Mathematical Tables and Formulae,
    30th Edition,
    CRC Press, 1996,
    ISBN: 0-8493-2479-3.

Source Code:

Examples and Tests:

FEM_IO_PRB is a test program which tests the routines that read and write finite element data.

ELL is an example of a 2D finite element model in which a scalar value is stored.

P01 is a 3D rectangular channel, with dimensions 1x1x3, using 584 nodes and 2568 elements. This data was created by DISTMESH.

TINY is a "tiny" example of a 2D finite element model in which a vector value is stored. This data was written by the FEM_WRITE routine.

List of Routines:

You can go up one level to the C++ source codes.


Last revised on 10 November 2006.