Finite element methods are widely used to find accurate numerical solutions to partial differential equations. They are used not just by mathematicians but have also proven to be extremely valuable in the physical sciences and in engineering applications. Textbooks in this area tend to concentrate on either the theory behind the methods or on computational and software aspects. The current book aims to teach both the underlying theory and develop skills in implementation for practical problems. The author intends the book to be accessible to undergraduates with some knowledge of linear algebra.

The book’s title says “the finite element method”, but several different finite element methods exist. For good pedagogical reasons, the author focuses on Galerkin’s finite element method for steady-state boundary value problems. He also concentrates almost exclusively on two-dimensional problems.

The book is organized into four parts: the basic framework, data structures and implementation, solving the finite element equations, and adaptive methods. In a nutshell the finite element method takes a boundary value problem for a linear partial differential equation (PDE) and reduces it to a system of linear equations \( Ku=F \). The first part of the book derives the system of equations, the second part shows how to compute the matrix \( K \) (traditionally often called the stiffness matrix) and the vector \( F \) (called the load), and the third part describes algorithms for efficiently solving what may be a very large system.

The author’s focus is on elliptic PDEs, beginning with Laplace’s and Poisson’s equations. He discusses classical boundary value problems and shows how they can be transformed into a variational form in order to use Galerkin’s method. That method is applied to get an approximate solution to the variational equation using a finite-dimensional subspace of functions, which in this case is the space of piecewise polynomial functions defined on a triangular mesh. Piecewise polynomial functions have three significant advantages: they are easy to integrate and differentiate, lead to sparse linear systems, and result in very accurate solutions.

Following his intention is to provide the “big picture” underlying the theory, the author presents quite a bit of mathematics, much of which is likely to be new to many undergraduates. This includes a good deal about boundary value problems including existence and uniqueness of solutions, variational problems, Hilbert spaces (including Lebesgue and Sobolev spaces) the Riesz representation theorem, and convergence theory for the Galerkin finite elements.

The transition to computer implementation starts with a strategy for organizing the computation and identifying appropriate data structures to hold the information needed to describe the mesh. The author begins with a simple problem to make the first implementation as concrete as possible. He provides MATLAB code to introduce the basic computational algorithms. These include algorithms to compute the finite-dimensional representation of the partial differential operator defining the PDE – that is, the stiffness matrix \( K \) – as well as the right-hand side of the PDE and relevant boundary information – the load vector \( F \).

Because the linear system \( Ku = F \) can be very large, direct solution methods can be very computationally demanding, and iterative methods are usually preferred. The author describes several – conjugate gradient, classical stationary iterations, and multigrid - that use much less time and computer memory than direct solvers.

The author concludes with a discussion of error estimates and indicators. He includes a treatment of adaptive mesh generators that can be used to create a mesh automatically to meet the demands of a particular problem.

This book is best matched to mathematics students who want to earn how to solve PDEs numerically. Engineering students might find the mathematical background (almost 200 pages) too much of a burden to bear before actually getting to solution methods. The author provides a clear path for students who want to understand the theoretical background, and manages this without doing much in the way of proofs. The exercises are plentiful and well designed. With the background he provides and the code he includes (both MATLAB and pseudocode) students can successfully get results numerically and understand what they mean.

Bill Satzer (

bsatzer@gmail.com), now retired from 3M Company, spent most of his career as a mathematician working in industry on a variety of applications ranging from speech recognition and network modeling to optical films and material science. He did his PhD work in dynamical systems and celestial mechanics.