Mathcom Home
Services Customers Tech Info Contact Us

Partial Differential Equations (PDEs) and Finite Element Modeling (FEM)

  • PDE and FEM Web Sites
  • Newsgroups for PDE and FEM
  • Books and References for PDE and FEM
  • Sandia's Comparison of Meshing Software Packages
  • Albert Hines' Comparison of Meshing Software Packages
  • PDE and FEM Software on the net

    PDE and FEM Web Sites

    "Mesh Generation and Grid Generation on the Web"

    Ian MacPhedran and Roger Young's pages on finite element resources:

    The Geometry Center

    MGNet has codes, preprints, virtual proceedings, a large bibliography, and more dealing with multigrid and/or domain decomposition methods for solving PDE's. There has also been a monthly electronic newsletter for the past 6 years.

    The CFD (computational fluid dynamics) codes list

    Robert Schneiders site on mesh generation is a large site with info on people, literature, software, and numerous research efforts worldwide.

    PDEtools is a Maple package for working with PDEs, solving systems of ODEs and making general changes of variables.

    OpenFEM is an opensource finite element toolbox for Matlab and Scilab.

    Newsgroups for PDE and FEM

    Computational Fluid Dynamics (CFD) newsgroups:
  • sci.engr.analysis
  • sci.engr.marine.hydrodynamics
  • sci.geo.fluids
  • sci.mech.fluids
  • sci.physics.computational.fluid-dynamics

    There are also 2 mailing lists:

    FEA-L: To get on this list, send email to The first line of the body of the message should contain the statement SUBSCRIBE FEA-L.

    feusers: To get on this list, send email to The first 2 lines of the body of the message should contain

    Books and References for PDE and FEM

    Axelsson, O.; Barker, V.A. 1984, Finite Element Solution of Boundary Value Problems: Theory and Computation, Academic Press

    Bornemann, F., An Adaptive Multilevel Approach to Parabolic Equations in Two Space Dimensions, Dissertation, Freie Universitaet Berlin, 1991.

    Bornemann, F.; Erdmann, B.; Kornhuber, R., Adaptive Multilevel Methods in Three Space Dimensions, Int. J. Numer. Meths. in Eng., 36, 1993.

    Braess, Dietrich. 1992, Finite Elemente, Springer, (In German)

    Braess, Dietrich. 1992, Finite Elements: Theory, fast solvers, and applications in solid mechanics translated from the 2nd German Edition by Larry Schumaker. The book is directed to graduate students in mathematics and to young researchers. We take into account that most of the research is now concentrated on finite elements for hard problems and on the fast solution of the resulting equations. Therefore the nonconforming elements and saddle point problems get as much space as the conforming elements. Moreover we treat the method of conjugate gradients and multigrid methods. Finally we present an introduction to the application of finite elements in solid mechanics which up to now does not exist in textbooks in a similar way.

    Brenner; Scott. 1994, The Mathematical Theory of Finite Elements, Springer-Verlag

    Celia; Grey., Numerical Methods for Differential Equations, [G. Scott Lett] "very good".

    Ciarlet, Philippe G. 1978, The finite element method for elliptic problems, Amsterdam: North-Holland

    Deuflhard, P.; Leinen, P.; Yserentant, H., Concepts of an Adaptive Hierarchical Finite Element Code., IMPACT, 1, 1989.

    Grossmann; Roos., Numerik Partieller Differentialgleichungen, Teubner., (In German).

    Johnson, Claes. Numerical Solution of Partial Differential Equations by the Finite Element Method. [Hans Sandholt] I found great pleasure to read it.

    Hackbusch, Wolfgang, Elliptic Differential Equations. Theory and Numerical Treatment, Springer Series in Computational Mathematics 18, Springer-Verlag. See Hackbush's page.

    Hackbusch, Wolfgang, Iterative Solution of Large Sparse Systems of Equations, Applied Mathematical Sciences, Vol. 95., Springer-Verlag. See Hackbush's page. [G. Scott Lett] A good book to start; helping to bridge the gap between recipes and understanding.

    Hughes, T.J.R. 1987. The Finite Element Method

    Kornhuber, R. Monotone Multigrid Methods for Nonlinear Variational Problems. Habilitationsschrift, Freie Universitaet Berlin, 1995.

    Oden, J.T.; Reddy, J. N. 1976. An introduction to the mathematical theory of finite elements. New York: Wiley-Interscience

    Schwarz, H.R. 1984. Methode der Finiten Elemente. Teubner. (In German)

    Strang; Fix. 1973. An Analysis of the Finite Element Method. Prentice Hall

    Wait, R.; Mitchell, A.R. 1985. Finite Element Analysis and Applications. John Wiley & Sons.

    Zienkiewicz, O.C.; Morgan, K. 1983. Finite Elements and Approximation. J. Wiley & Sons

    Sandia's Comparison of Meshing Software Packages

    Sandia survey of meshing software (1998)

    Albert Hines' Comparison of Meshing Software Packages

    [Albert M. Hines, Feb 1996]:
    This table reflects the best information that I can gather
    to date on some of the more popular meshers.  Many others exist
    and may be better or worse than those listed here. This study was
    conducted by Howmet, a manufacturing corporation with no incentive
    to support or reject any package over another. Portions of the
    study were also funded by your generous tax donations through an
    ICCA program designed to enhance the capability of US investment
    casting through (among many other things) automeshing software.

    The meshes were used for heat transfer and fluid flow predominantly. A limited amount of stress analysis and electromagnetics were also investigated. The desired modeling analysis is a crucial factor in determining whether a meshing package will support the mesh quality and refinement necessary for a simulation. (e.g. mesh quality is almost a non-issue for heat transfer, but not for stress!) The geometries that I have considered are aerospace turbine engine components: complex 3-D thin walled structures. Bulky or spindly geometries may behave differently (e.g. engine blocks, oil rigs, etc.).

    The scale used is 0 to 10. A zero means that it meets none of my expectations. A 10 means that it meets all of my expectations. A cumulative score should not be obtained by adding columns. Many entries are more important than others. Weighting for the various tasks are different for each analyst/application. The scores are often subjective and should be considered at best approximate. They do not necessarily reflect the opinion of Howmet Corporation or, for that matter, of anyone other than myself. They are, however, the result of careful and expensive investigation into the market. tty



          3-D SURFACE MESH (*)

          automesh robustness (a) 9 8 7 4 3

          automesh flexibilty (b) 4 6 8 7 5

          number of elements (c) 10 6 7 6 8

          meshing speed (d) 3 1 9 5 3

          typical element quality (e) 1 8 7 4 5

          semi-auto effectiveness N/A 7 3 10 6

          mesh editing N/A 8 1 10 2


          3-D SOLID MESH

          automesh robustness (a) 8 7 (4) 7 N/A 4

          automesh options (b) 6 7 7 N/A 6

          number of elements (c) 10 4 (4) 5 N/A 3

          meshing speed (d) 4 1 9 N/A 3

          typical element quality (e) 2 6 (4) 7 N/A 4

          semi-auto effectiveness N/A 4 N/A 9 6

          mesh editing N/A 8 3 10 6

          software vendor meshing (f) 8 2 9 5 8

          auto-hex meshing N/A N/A N/A N/A 3



          Ease of use (g) 3 4 9 8 4

          I/O options 4 8 7 9 7

          Error reporting 3 4 3 3 3

          Barrier-free tech. support 8 1 10 6 3

          Competent/helpful tech. support 6 6 8 7 8

          Ease of install/maintenance 8 4 8 7 8

          "Bug-free-ness" 6 7 3 4 4

          COST(1) $12,000 $6800(2) $10,000(3) $4500 $5,525


    * OCTREE surface mesh obtained by extracting faces of its solid elements.

    (a) Should mesh the first time with given parameters. This refers to tetrahedra only.

    (b) Includes things like a finely meshed boundary with coarsely meshed interior, ignoring features smaller than a given size, multiple element layers through thin sections, multiple meshing algorithms, etc. Refers to tetrahedral elements.

    (c) Being in industry, practicality is a must. Meshes > ~100,000 nodes do not run in a reasonable amount of time in our lab. If a program cannot mesh a part within this limitation, I consider it unable to mesh the part, even if it might successfully generate the mesh. Automeshers should allow the specification of a target number of nodes. Any mesh above this size should send a flag to remesh, ignoring small features.

    (d) Again, from a practical point of view, there are limits beyond which I consider the program to fail. The most glaring comparison is between PATRAN and MeshCAST. A typical part that meshes less than 10 minutes with MeshCAST normally takes several days to mesh in PATRAN. It is likely that given infinite time, PATRAN would succeed (after all, it contains the RPI finite octree mesher as one of its algorithms!), however, I can't justify tying a machine up for a week to find out if it will mesh (and often it crashes at the end of the meshing cycle!).

    (e) There are many if's and's & but's here. Basically I use aspect ratio and dihedral angle for tetrahedra, jacobian at the gauss points for hex'es, wedge's, and quad's, and interior angle for triangles. These are the only element types that I use.

    (f) For many problems, I could not successfully mesh the part, so I sent the geometry to the software vendor. In other cases, I sent it specifically to evaluate the software run under the developer's care. Score reflects willingness, speed, size, and quality of the mesh received.

    (g) I am partial to a Mac-like interface, which I consider to be the computer world's 'reference standard'. Program should require minimal training and manuals. All options should be available on the menus (no hidden or cryptic commands). This is not just personal preference, but time and dollars in training.

    (1) Cost is annual lease, US dollars, except as noted. Platform is HP-735 network license. Cost is what we pay, not necessarily list price.

    (2) Unigraphics common database module $3,000 extra (i.e. $9,800). Base license includes one translator, we chose IGES.

    (3) This price includes the fluids, thermal, radiation, solver modules. I am not sure of the price of just MeshCAST by itself.

    (4) This is very approximated assuming infinite meshing time.

    (5) Versions tested: OCTREE: March 1,1995, P3: v1.4, Meshcast: v3.0.3, Hypermesh: v2.00b, Algor: July, 1995.

    PDE and FEM Software on the net

    PDE and FEM Software on the net: (See also Computational Geometry )
  • Fec
  • FElt
  • Femlib
  • Kaskade
  • Tri
  • QMG
  • Sinda/Fluint
  • Madpack5
  • Triangle
  • FreeFEM++ and FreeFEM3D
  • Featflow
  • ParMETIS
  • PETSc
  • deal.II


    FEMLAB is an interactive environment for modeling and solving scientific and engineering problems based on partial differential equations.


    Fec is a collection of finite element libraries in C++


    FElt is a free system for introductory level finite element analysis. FElt is intended largely as a teaching tool. At this stage it should be able to handle most static and dynamic linear analysis problems (structural and thermal) that you'd find in a one or two term introductory class in finite element analysis; it also has some capabilities for modal and spectral analysis. The FElt element library currently contains fifteen elements ranging from a simple spring to an 8-node brick. The main FElt applications are all built around a single intuitive, powerful, and easy-to-use input syntax.


    Femlib is a set of C++ classes for finite element work, garbage collection algorithms, and sparse matrix algorithms. A bit rough; incomplete in some areas.


    Kaskade solves linear scalar elliptic and parabolic problems in 1, 2, 3 space dimensions with adaptive finite element methods.

    Furthermore, the toolbox includes extensions for handling systems of equations and example algorithms for nonlinear methods used in obstacle, porous media or Stefan problems.

    Core of the program is a variety og multilevel/multigrid preconditioners for the arising linear systems.

    This object-oriented code is written in C++ and can be compiled with Gnu g++, version 2.7.2, and some other compilers. If you want to compile with Gnu g++, version 2.6.3, you have to change the definition of the complex-type in the file general.h.


    Tripoint was first developed by David Eppstein to triangulate point set input in two dimensions, following the algorithm in "Provably Good Mesh Generation" by Bern, Eppstein, and Gilbert[1]. During the summer of 1991, Scott Mitchell extended the program to triangulate polygonal regions with holes, again in two dimensions. The algorithm followed borrows ideas both from [1] and "Quality Mesh Generation in Three Dimensions" by Mitchell and Vavasis[2].

    Tripoint takes input from text files as the polygon to triangulate. Output is also as text files, using the same data format. Points are represented by their coordinates, and edges by the indecies of their endpoints. There is a matlab code front end, called drawmesh.m. This allows the graphical input of the input polygon using the mouse, and the display with zooming of the output triangulation. There is also matlab code called dispmesh.m, which allows the displaying of output only. This allows the user freedom over how to generate the input.

    The algorithm is similar to one in "Provably Good Mesh Generation"[1]. The main differences include: Tripoint uses connected component information while generating the quadtree, as in [2]. Tripoint does not cut dangling acute triangles from the input as a first step as in [1]. Ideally, as in [2], tripoint would center input verticies in boxes, and use a very general and easy algorithm for triangulating individual boxes. Instead, vertices are not centered, and the ideal algorithm is used with added special case analysis for boxes near an input vertex.


    QMG is free software available on the Web for fully automatic unstructured finite element mesh generation in two and three dimensions. It can generate meshes for complex domains with curved boundaries and nonmanifold features. QMG 2.0 can be run either from the shell, under Tcl/Tk (a freeware scripting language) or Matlab. The Matlab version includes a simple finite element solver. QMG is written in primarily in C++.

    The main new feature of QMG2.0 (compared to QMG1.1) is its ability to handle true curved geometry. QMG2.0 permits boundaries defined by Bezier curves, triangular Bezier patches and quadrilateral tensor-product Bezier patches. Representations of certain simple curved geometries (cylinders, spheres, tori) using Bezier patches are shipped with QMG.


    Sinda/Fluint is a comprehensive finite-difference, lumped parameter (circuit or network analogy) tool for analyzing complex thermal/fluid systems. It is used at over 300 sites in the aerospace, electronics, petrochemical, and automotive industries.


    Madpack is part of Craig Douglas' multigrid package. This is an abstract solver. It is PDE, domain, and discretization independent. It only handles linear problems, however. It is an ongoing project with a number of contributors from around the world. Some of these wish to remain anonymous. Serial, parallel, and semi-chaotic solvers are or will be included during 1994. A paper describing this is in the file mgnet/papers/Douglas/ This is an object oriented code. The user interface is written in C. Most of the solvers are written in Fortran-77+m4. The same calling sequence is used independent of the data's type (real and complex, single and double precision are supported). The user interface builds all of the truly nasty data structures needed by the code. The ownership of this code is convoluted.


    Triangle is a two-dimensional quality mesh generator and delaunay triangulator. Triangle generates exact Delaunay triangulations, constrained Delaunay triangulations, and quality conforming Delaunay triangulations. The latter can be generated with no small angles, and are thus suitable for finite element analysis.

    FreeFEM++ and FreeFEM3d

    FreeFEM++ and FreeFEM3D implement a language dedicated to the finite element method, intended to ease the solution of PDEs. They include a fast quadtree-based interpolation algorithm and a language for the manipulation of data on multiple meshes


    Featflow is software for incompressible Navier-Stokes equations. It including all sources, manuals and many (!) demos for nonstationary flows (as MPEG movies), is "downloadable" via Internet, see


    PLTMG is a package for solving elliptic partial differential equations in general regions of the plane. It is based on continuous piecewise linear triangular finite elements, and features adaptive local mesh refinement, multigraph iteration, and pseudo-arclength continuation options for parameter dependencies. The package includes an initial mesh generator and several graphics packages. Full documentation is provided in PLTMG: A Software Package for Solving Elliptic Partial Differential Equations - Users' Guide 8.0 (ISBN 0-89871-409-5), available from SIAM Publications. PLTMG is provided as Fortran (and a little C) source code, in both single and double precision versions. The included X-Windows GUI uses the default Athena Widget set, and makes calls to standard library routines of the X-Windows system, which must be loaded along with the PLTMG software. PLTMG is available from Netlib (see Netlib ) and Mgnet.


    MUDPACK includes a suite of portable fortran programs which automatically discretize and use multigrid techniques to generate second- and fourth-order approximations to elliptic Partial Differential Equations (PDEs) on rectangular regions. The elliptic PDEs can be real or complex in two- and three-dimensions with any combination of mixed derivate, specified, or periodic boundary conditions. Multigrid V or W cycles which use point, line(s), or planar relaxation and fully weighted residual restriction are available for algorithm tuning to obtain optimal multigrid performance. MUDPACK was written to avoid repeated "re-invention of the wheel" in human code development time which can be at least as important as saving machine cycles.


    METIS is a collection of serial and parallel programs & libraries that can be used to partitioning unstructured graphs, finite element meshes, and hypergraphs, both on serial as well as on parallel computers.


    ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices.


    MODULEF is a library containing about 3000 procedures written in Fortran 77. These procedures were designed with the utmost concern for software portability. Capabilities include:
  • Automatic generation and modification of two- and three-dimensional meshes.
  • Specification of material characteristics or external forces by sub-domain or boundary section.
  • Choice of type of finite element method, for example, conforming, non-conforming, hybrid, or mixed.
  • Linear systems can be solved using direct or iterative methods.
  • Solution methods for eigenproblems include inverse iteration, subspace iteration, Lanczos and QR methods.
  • The solution of time-dependent thermal problems and dynamic problems.
  • Non-linear elasticity
  • Solution of variational inequalities subject to bounded constraints by relaxation and complementarity.
  • Solution of the Dirichlet problem for a biharmonic operator by a mixed finite element method of order 1 or 2.
  • Calculation of velocities and pressure of a viscous incompressible fluid (Navier-Stokes equations).
  • The computation of homogenised coefficients of composite structures.
  • Decomposition of domains.
  • Calculation of stresses and interpretation of results.
  • Several modules are available for the display of results, interactively or in batch, for example to plot two- or three-dimensional meshes, deformations, stresses, isovalues, velocities and streamlines in fluid mechanics, etc.


    PETSc is a set of libraries for the implicit solution of PDEs and related problems. Features include:
  • a parallel, sparse, symmetric matrix storage format, this includes support for sequential Cholesky and ICC(k)
  • a complete framework for parallel linear multigrid on structured grids (for both linear and nonlinear problems)
  • Mandel's balancing Neumann-Neumann method for scalar PDEs
  • an interface to the Tufo-Fischer highly efficient parallel coarse grid direct solver library tfs
  • support for managing "composite" vectors consisting of subvectors that represent conceptually different quantities (for example, constraints or Lagrange multipliers)
  • more complete hypertext documentation, including links to hypertext versions of all the examples and source code


    OFELI (Object Finite Element LIbrary) is a library (or a toolkit) of C++ classes to build up finite element codes. The package contains numerous simple and less simple examples of finite element codes using OFELI. A significant documentation (html and pdf formats) is provided.


    deal.II is an object-oriented finite element library. This version features many new components. The most outstanding additions are
  • Support for dimension-independent programming
  • Extensive documentation and working example programs
  • Multigrid support
  • Locally refined grids
  • A zoo of different finite elements
  • Fast linear algebra
  • Built-in support for symmetric multi-processing (SMP) and distributed computing
  • Interfaces to PETSc, METIS, UMFPACK and other external software
  • Output for a variety of visualization platforms.
  • support for hp-finite elements, continuous and discontinuous
  • handling of arbitrary hexahedral meshes in 3D
  • support for a wider variety of systems, including Mac OS X
  • Extensive tutorial programs showing advanced FEM techniques

    deal.II can be downloaded for free and is distributed under an Open Source license.

    IMTEK Mathematica Supplement

    IMTEK is an Add-On for mathematica to do finite element analysis, model order reduction etc.

    Copyright 1995-2013 Mathcom Solutions Inc                               Updated May 15, 2013