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:
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
FEM_IO is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.
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.
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.
You can go up one level to the C++ source codes.