FEM_IO
Read or Write a Finite Element Model
FEM_IO
is a FORTRAN90 library which
reads or writes the data that defines a finite element model.
The finite element model is assumed to include three items:
-
Node coordinates;
-
Elements defined by a sequence of node indices;
-
Node data;
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 FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
FEM_TO_MESH,
a FORTRAN90 program which
reads a pair of FEM files defining node coordinates and elements,
and creates a corresponding MESH file.
FEM_TO_TEC,
a MATLAB program which
converts an FEM model
into a TEC graphics file.
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 MATLAB 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;
MESH_IO,
a MATLAB library which
can read or write 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.
Reference:
-
Hans Rudolf Schwarz,
Finite Element Methods,
Academic Press, 1988,
ISBN: 0126330107,
LC: TA347.F5.S3313..
-
Gilbert Strang, George Fix,
An Analysis of the Finite Element Method,
Cambridge, 1973,
ISBN: 096140888X,
LC: TA335.S77.
-
Olgierd Zienkiewicz,
The Finite Element Method,
Sixth Edition,
Butterworth-Heinemann, 2005,
ISBN: 0750663200,
LC: TA640.2.Z54
-
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. This data was computed by the
FREE_FEM_POISSON program and is read by FEM_READ.
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:
-
CH_CAP capitalizes a single character.
-
CH_EQI is a case insensitive comparison of two characters for equality.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
DTABLE_DATA_READ reads data from a DTABLE file.
-
DTABLE_DATA_WRITE writes data to a DTABLE file.
-
DTABLE_HEADER_READ reads the header from a DTABLE file.
-
DTABLE_HEADER_WRITE writes the header to a DTABLE file.
-
FEM_DATA_READ reads data from a set of FEM files.
-
FEM_HEADER_PRINT prints the header to set of FEM files.
-
FEM_HEADER_READ reads the sizes of arrays in a set of FEM files.
-
FEM_WRITE writes data files associated with a finite element solution.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_NAME_SPECIFICATION determines the names of the input files.
-
FILE_ROW_COUNT counts the number of rows in a file.
-
GET_UNIT returns a free FORTRAN unit number.
-
I4MAT_TRANSPOSE_PRINT prints an I4MAT, transposed.
-
I4MAT_TRANSPOSE_PRINT_SOME prints some of the transpose of an I4MAT.
-
ITABLE_DATA_READ reads data from an integer table file.
-
ITABLE_DATA_WRITE writes data to an integer table file.
-
ITABLE_HEADER_READ reads the header from an integer table file.
-
ITABLE_HEADER_WRITE writes the header to an integer table file.
-
R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.
-
R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
-
S_BLANK_DELETE removes blanks from a string, left justifying the remainder.
-
S_TO_I4 reads an I4 from a string.
-
S_TO_I4VEC reads an I4VEC from a string.
-
S_TO_R8 reads a R8 number from a string.
-
S_TO_R8VEC reads a R8VEC from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TIMESTRING writes the current YMDHMS date into a string.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 28 September 2008.