FEM3D_PACK
3D Finite Element Method Utility Library
FEM3D_PACK
is a MATLAB library which
contains utility routines for 3D finite element calculations.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
FEM3D_PACK is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
FEM_BASIS,
a MATLAB library which
can define and evaluate basis functions for any degree
in an Mdimensional simplex (1D interval, 2D triangle,
3D tetrahedron, and higher dimensional generalizations.)
FEM1D_PACK,
a MATLAB library which
contains utilities for 1D finite element calculations.
FEM2D_PACK,
a MATLAB library which
contains utilities 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;
FEM3D_PROJECT,
a MATLAB program which
projects a function F(X,Y,Z), given as a data, into a given finite element space
of piecewise linear tetrahedral elements.
FEM3D_SAMPLE,
a MATLAB program which
evaluates a finite element function defined on 3D tetrahedral mesh.
ONED,
a MATLAB library which
contains functions useful for 1D finite element calculations.
THREED,
a MATLAB library which
contains functions useful for 3D finite element calculations.
TWOD,
a MATLAB library which
contains functions useful for 2D finite element calculations.
Reference:

Claudio Rocchini, Paolo Cignoni,
Generating Random Points in a Tetrahedron,
Journal of Graphics Tools,
Volume 5, Number 4, 2000, pages 912.

Reuven Rubinstein,
Monte Carlo Optimization, Simulation and Sensitivity of
Queueing Networks,
Krieger, 1992,
ISBN: 0894647644,
LC: QA298.R79.

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,
ButterworthHeinemann, 2005,
ISBN: 0750663200,
LC: TA640.2.Z54.
Source Code:

bandwidth_mesh.m,
bandwidth of finite element mesh.

bandwidth_var.m,
determines the bandwidth for finite element variables.

basis_brick8.m,
evaluates basis functions for a BRICK8 element.

basis_brick8_test.m,
tests BASIS_BRICK8.

basis_brick20.m,
evaluates basis functions for a BRICK20 element.

basis_brick20_test.m,
tests BASIS_BRICK20.

basis_brick27.m,
evaluates basis functions for a BRICK27 element.

basis_brick27_test.m,
tests BASIS_BRICK27.

basis_mn_tet4.m,
all bases at N points for a TET4 element.

basis_mn_tet4_test.m,
verifies BASIS_MN_TET4.

basis_mn_tet10.m,
all bases at N points for a TET10 element.

basis_mn_tet10_test.m,
verifies BASIS_MN_TET10.

nodes_brick8.m,
returns the nodes of the BRICK8 element.

nodes_brick20.m,
returns the nodes of the BRICK20 element.

nodes_brick27.m,
returns the nodes of the BRICK27 element.

physical_to_reference_tet4.m,
maps TET4 physical points to reference points.

r8mat_det_4d.m
computed the determinant of a 4x4 R8MAT.

r8mat_solve.m
uses GaussJordan elimination to solve an N by N linear system.

r8mat_uniform_01.m,
returns a unit pseudorandom R8MAT.

r8vec_uniform_01.m,
returns a unit pseudorandom R8VEC.

reference_tet4_sample.m,
returns nonuniform sample points from the reference tetrahedron.

reference_tet4_uniform.m,
returns uniform sample points from the reference tetrahedron.

reference_tet4_uniform2.m,
returns uniform sample points from the reference tetrahedron.

reference_to_physical_tet4.m,
maps TET4 reference points to physical points.

tetrahedron_barycentric.m
computes the barycentric coordinates of a point with respect to a tetrahedron.

tetrahedron_volume.m
computes the volume of a tetrahedron.

timestamp.m,
prints the current YMDHMS date as a time stamp.
Examples and Tests:
You can go up one level to
the MATLAB source codes.
Last revised on 02 March 2010.