libMesh - A C++ Finite Element Library
The libMesh library is a C++ framework for the numerical simulation of partial differential equations on serial and parallel platforms. Development began in March 2002 with the intent of providing a friendly interface to a number of high-quality software packages that are currently available.
A major goal of the library is to provide support for adaptive mesh refinement (AMR) computations in parallel while allowing a research scientist to focus on the physics they are modeling. The library currently offers:
- Partitioning Algorithms
- Generic 2D Finite Elements
- 3 and 6 noded triangles (
Tri3,Tri6) - 4, 8, and 9 noded quadrilaterals (
Quad4,Quad8,Quad9) - 4 and 6 noded infinite quadrilaterals (
InfQuad4,InfQuad6)
- 3 and 6 noded triangles (
- Generic 3D Finite Elements
- 4 and 10 noded tetrahedrals (
Tet4,Tet10) - 8, 20, and 27 noded hexahedrals (
Hex8,Hex20,Hex27) - 6, 15, and 18 noded prisms (
Prism6,Prism15,Prism18) - 5 noded pyramids (
Pyramid5) - 8, 16, and 18 noded infinite hexahedrals (
InfHex8,InfHex16,InfHex18) - 6 and 12 noded infinite prisms (
InfPrism6,InfPrism12)
- 4 and 10 noded tetrahedrals (
- Generic Finite Element Families
- Lagrange
- Hierarchic
- Discontinuous Monomials
- Dimension-independence
- Operators are defined to allow the same code to run unmodified on 2D and 3D applications
- The code you debug and verify on small 2D problems can immediately be applied to large, parallel 3D applications
- Sparse Linear Algebra
PETScprovides a suite of iterative solvers and preconditioners for serial and parallel applications- Complex values are supported with
PETSc LASPACKprovides iterative solvers and preconditioners for serial applications- The
SparseMatrix,NumericVector, andLinearSolverallow for transparent switching between solver packages. Adding a new solver interface is as simple as deriving from these classes
- Mesh IO & Format Translation Utilities
- Ideas Universal (UNV) format (.unv) with support through
MeshDatafor arbitrary float data, like boundary conditions, associated with mesh entities - Sandia National Labs ExodusII format (.exd)
- Amtec Engineering's Tecplot binary format (.plt)
- Amtec Engineering's Tecplot ascii format (.dat)
- Los Alamos National Labs GMV format (.gmv)
- AVS Unstructured UCD format (.ucd)
- Ideas Universal (UNV) format (.unv) with support through
- Mesh Creation & Modification Utilities
- refine or coarsen a mesh: prescribed, level-one-compatible, or uniform
- build equispaced n-cubes out of
Edge2,Tri3,Tri6,Quad4,Quad8,Quad9,Hex8,Hex20,Hex27 - build circles/spheres out of
Tri3,Tri6,Quad4,Quad8,Quad9,Hex8 - add infinite elements to a volume-based mesh, handle symmetry planes
- convert
Quad4,Quad8,Quad9toTri3,Tri6 - convert a mesh consisting of any of the fore-mentioned n-dimensional linear elements to their second-order counterparts
- distort/translate/rotate/scale a mesh
- determine bounding boxes/spheres
- extract the mesh boundary for boundary condition handling or as a separate mesh
Site Created By: libMesh Developers
Last modified: February 05 2013 19:54:45 UTC
Hosted By: