Review of Programming the Finite Element Method, Third Edition
William F. Mitchell
Programming the Finite Element Method. 3rd Edition. By I.M. Smith and D.V. Griffiths. John Wiley & Sons Ltd., West Sussex, UK, 1998. $49.95. xii+534pp., paperback. ISBN 0-471-96543-X.This is the third edition of this book. The principal differences between thisedition and the second edition are the complete rewriting of all examples and libraries in Fortran 90, and the addition of mesh-free methods. The book is written primarily for engineers, with most of the presentation oriented toward practical implementation of the finite element method, mainly for structural analysis. Presentation of the mathematics of the finite element method is minimal. A strong point of the book is the complete listings of all library routines and examples, and the availability of the code via ftp.The first chapter discusses programming techniques for well-organized softwareand efficient use of high performance computers. Although most of the text in thebook is unchanged from the second edition, this chapter has been extensively rewritten. In particular, a large section on new features in Fortran 90 has been added. Many of these features are used in the code presented in the book, resulting in software that is a vast improvement, by today's programming standards, over the FORTRAN 77 code in the previous editions. Some of the best used features are allocatable arrays for dynamic memory, modules for the libraries, IMPLICIT NONE and INTENT. The listings are somewhat crowded and hard to read, primarily due to overuse of the semicolon to put multiple statements on a line and a shortage of comments, but this may be for the sake of brevity in the book.The second chapter presents the finite element method. It is not presented inthe manner with which most mathematicians are familiar, i.e., the approximation of a function via a finite dimensional subspace. Instead, finite elements are presented for increasingly complicated structures and forces, beginning with a rod element and ending with stress and strain on a three dimensional brick element. Simplified fluid flow is also examined. Throughout this chapter, only individual elements are considered. The differential equations for the forces on the structure are presented, and the finite element is used to derive the matrix representation. The accuracy of these approximations is not addressed; in fact there is no error analysis in the book.Chapter 3 discusses programming the finite element method. After preliminariessuch as numerical integration and matrix assembly, the use of the library routines as building blocks for a nite element program is described. Listings of these routines are presented in an appendix. Solution of the linear systems is primarily by Gauss elimination or Choleski factorization, although the conjugate gradient method is briefly described in conjunction with the mesh-free, or element-by-element, approach.Chapters 4 through 11 apply these techniques to a sequence of increasingly complicated problems. These are primarily structural analysis problems, but there is one chapter on steady-state flow. All of the examples are worked out completely, resulting in a program to solve that problem. Many of these chapters have exercises, with solutions given in an appendix.This book is most suitable as an engineering text or as a reference and codesource for a practicing structural engineer. However, the applied mathematician will probably find it disappointing.