FEM3D_PACK
3D Finite Element Method Utility Library
FEM3D_PACK
is a C++ 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 C++ library which
can define and evaluate basis functions for any degree
in an M-dimensional simplex (1D interval, 2D triangle,
3D tetrahedron, and higher dimensional generalizations.)
FEM1D_PACK,
a C++ library which
contains utilities for 1D finite element calculations.
FEM2D_PACK,
a C++ library which
contains utilities for 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 C++ 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 C++ program which
evaluates a finite element function defined on 3D tetrahedral mesh.
Reference:
-
Claudio Rocchini, Paolo Cignoni,
Generating Random Points in a Tetrahedron,
Journal of Graphics Tools,
Volume 5, Number 4, 2000, pages 9-12.
-
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,
Butterworth-Heinemann, 2005,
ISBN: 0750663200,
LC: TA640.2.Z54.
Source Code:
Examples and Tests:
List of Routines:
-
BANDWIDTH_MESH determines the bandwidth of the coefficient matrix.
-
BANDWIDTH_VAR determines the bandwidth for finite element variables.
-
BASIS_BRICK8: BRICK8 basis functions at natural coordinates.
-
BASIS_BRICK8_TEST verifies BASIS_BRICK8.
-
BASIS_BRICK20: BRICK20 basis functions at natural coordinates.
-
BASIS_BRICK20_TEST verifies BASIS_BRICK20.
-
BASIS_BRICK20: BRICK20 basis functions at natural coordinates.
-
BASIS_BRICK27_TEST verifies BASIS_BRICK27.
-
BASIS_MN_TET4: all bases at N points for a TET4 element.
-
BASIS_MN_T4_TEST verifies BASIS_MN_TET4.
-
BASIS_MN_TET10: all bases at N points for a TET10 element.
-
BASIS_MN_TET10_TEST verifies BASIS_MN_TET10.
-
I4_MAX returns the maximum of two I4's.
-
NODES_BRICK8 returns the natural coordinates of the BRICK8 element.
-
NODES_BRICK20 returns the natural coordinates of the BRICK20 element.
-
NODES_BRICK27 returns the natural coordinates of the BRICK27 element.
-
PHYSICAL_TO_REFERENCE_TET4 maps physical points to reference points.
-
R8_ABS returns the absolute value of an R8.
-
R8GE_FSS factors and solves multiple R8GE systems.
-
R8MAT_COPY_NEW copies one R8MAT to a "new" R8MAT.
-
R8MAT_DET_4D computes the determinant of a 4 by 4 R8MAT.
-
R8MAT_MV multiplies a matrix times a vector.
-
R8MAT_SOLVE uses Gauss-Jordan elimination to solve an N by N linear system.
-
R8MAT_UNIFORM_01_NEW returns a new unit pseudorandom R8MAT.
-
R8VEC_SUM returns the sum of an R8VEC.
-
R8VEC_UNIFORM_01_NEW returns a new unit pseudorandom R8VEC.
-
REFERENCE_TET4_SAMPLE: sample points in the reference tetrahedron.
-
REFERENCE_TET4_UNIFORM: uniform sample points in the reference tetrahedron.
-
REFERENCE_TET4_UNIFORM2: uniform sample points in the reference tetrahedron.
-
REFERENCE_TO_PHYSICAL_TET4 maps TET4 reference points to physical points.
-
TETRAHEDRON_BARYCENTRIC returns the barycentric coordinates of a point.
-
TETRAHEDRON_VOLUME computes the volume of a tetrahedron in 3D.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 02 March 2010.