libMesh is an extensive library of C++ classes for writing finite element analysis (FEA) programs. Its primary authors are at the University of Texas at Austin CFDLab (Computational Fluid Dynamics Laboratory) led by Dr. Graham Carey.
[Update 2008/8/29: see also a comparison with deal.II.]
Based on its CFD “pedigree”, it should be no surprise that the capabilities of libMesh include fluid flow. These examples each come with a short code using the library with graphical output, and solve equations such as: the Laplace equation (for diffusion, heat conduction, or electrostatics), convection-diffusion (for transport of heat or chemicals in fluid flow), Navier-Stokes (the nonlinear system of fluid flow equations), and the biharmonic equation (for bending of a stiff plate under load). The Wiki provides several more examples of libMesh usage.
To solve these equations efficientnly, libMesh can do automatic mesh refinement, such that regions with complex behavior receive a lot of grid points and computational attention, and those which are relatively uniform do not take much work. For a dynamic simulation, such as phose field simulations shown to the right, this can improve accuracy and reduce computation time considerably. (This is the research of Roy Stogner, see his paper and presentation slides for details.)
libMesh also uses PETSc (the Portable Extensible Toolkit for Scientific Computation), a state-of-the-art set of parallel solvers for systems of linear and nonlinear equations. And it links with the (non-open-source) ParMETIS library, which partitions a mesh to distribute the computational work across a cluster of computers, making a large number of PCs act as a single large computer.
Based on these capabilities, Opennovation is using libMesh for next-generation phase field simulations, such as those for electrochemical reactions and polymer phase inversion. Stay tuned for new open source code postings based on this work in the coming months.
libMesh source code files begin with the library's goal: “The Next Great Finite Element Library”. Based on its flexibility and performance features, libMesh has what it takes to live up to this goal. On the other hand, as you will see in other profiles, it also has a lot of competition...
All of the content and formatting on this page is Copyright 2008 Opennovation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.