From the website: "deal.II is a C++ program library targeted at the computational solution of partial differential equations using adaptive finite elements." Its primary authors are: Wolfgang Bangerth at Texas A&M University, Ralf Hartmann at the Deutsches Zentrum f@uuml;r Luft- und Raumfahrt (DLR), and Guido Kanschat also at Texas A&M University.

Put more simply, this is a convenient and flexible set of subroutines which one can use to write a program for finite element simulation of mechanical stress and deformation of a solid part, flow and pressure in a fluid, heat transfer, diffusion, electromagnetics, materials microstructure development, and many other physical phenomena. But it cannot be called user-friendly: the user must write a program which calls the deal.II subroutines, or adapt one of its many example programs.

In all of these ways, deal.II is very similar to libMesh. In fact, their feature sets overlap quite a bit. For example:

- Both include a set of tutorial examples, starting with simple mesh generation and solving simple equations, and building to very complex phenomena such as time-dependent fluid dynamics and mechanical waves. The documentation for these tutorials is very different in nature: the deal.II tutorial documentation is extremely detailed, whereas the libMesh examples are more concise.
- Both can very easily switch between 1-D, 2-D and 3-D simulations, often without even recompiling a program.
- Both include subroutines for mesh generation and performing numerical integration to calculate the finite element vectors and matrices.
- Both use the PETSc suite of parallel linear and nonlinear solvers, and the METIS libraries to divide up a mesh for running on many CPUs (or its open source counterpart SCOTCH). They both also link to NetCDF, Trilinos, VTK and Tecplot.
- Both can change the mesh to focus computing power at the more complex
sections of the problem (the finite element gurus will appreciate that
both can use
*h*,*p*and*hp*refinement). - Also for the gurus: both can solve the biharmonic equation for plate
bending or Cahn-Hilliard phase field simulations, using
*C*^{1}shape functions with square integrable second derivatives.

One of the primary differences between the two suites is in their examples, which reflect the backgrounds and goals of the teams which wrote them. deal.II is oriented toward mechanics, and its tutorial builds to elastic mechanics for computing deformation waves traveling through a solid. libMesh comes from a computational fluid dynamics group, so its most complex examples involve fluid flows which change with time.

To summarize, deal.II is a flexible suite of finite element analysis tools with exhaustive documentation. It has an active community of developers, focused around but by no means limited to the three primary authors. Its examples make it an ideal foundation for building complex simulations of mechanical deformation.

As for whether deal.II or libMesh is better for your needs, that will depend on your application and personal preference for the style of the libraries. Both are easy to install and test using the Opennovation Ubuntu backport repository.

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.