Product Review: Diffpack

Diffpack is an object-oriented toolkit for creating numerical analysis applications. It provides high-level building blocks which may be put together to rapidly create a high-quality application for solving partial differential equations.

Diffpack is an object-oriented toolkit for creating numerical
analysis applications. It provides high-level building blocks which
may be put together to rapidly create a high-quality application
for solving partial differential equations. The software package
has an accompanying book, Computational Partial
Differential Equations (CPDE) by Hans Petter Langtangen
(Springer-Verlag).

I must admit I was immediately impressed with the book
because it was typeset with TeX by the author, and as any TeX user
will tell you, using it is a sign of intelligence. The book is well
made and beautifully set. It is written in a style very similar to
The Visualization Toolkit by William
Schroeder, et al. (Prentice Hall Computer Books) in which a careful
description of the approach and methodology for building numerical
algorithms for solving partial differential equations (PDEs) is
given, with all the examples being demonstrations of the Diffpack
software.

CPDE begins with a strong and
well-supported endorsement of object-oriented programming. It then
proceeds to describe PDEs of increasing complexity and numerical
approaches which can deal with them. The book explains the
difficulties of the mathematics as well as the intricacies involved
when the PDEs are “linearized” into systems of algebraic
equations and solved in various ways. Techniques for performance
optimization are also covered. With each level of complexity,
relevant sample problems are solved using the Diffpack software to
demonstrate how the problem can be solved.
CPDE focuses more on the finite element method
than the finite difference method, probably due to the author's
experience, but gives sufficient coverage to both.

The main chapter topics accurately describe the content of
the book:

1. Getting Started

2. Introduction to Finite Element
Discretization

3. Programming of Finite Element Solvers

4. Nonlinear Problems

5. Solid Mechanics Applications

6. Fluid Mechanics Applications

7. Coupled Problems

Appendix A. Mathematical Topics

Appendix B. Diffpack Topics

Appendix C. Iterative Methods for Sparse Linear
Systems

Appendix D. Software Tools for Solving Linear
Systems

There are 127 exercises to help a student of numerical
methods deepen her understanding of the topic. The demonstrations
make wide use of tools commonly available on Linux systems such as
Gnuplot, Plotmtv, Matlab, Vtk and Xmgr. The scientific Linux user
will feel very much “at home” reading this text. My usual
complaint for technical books is that they either go too far with
examples and don't provide enough background, or they do the
opposite and go too far with theory and leave the reader with no
concrete way to apply it. In my opinion, this book has struck the
balance well. I wholeheartedly recommend it as a general text on
the topic. If you plan to use Diffpack, it is a requirement.

Platforms

Diffpack is available for all major UNIX flavors and the
Win32 platform. I tested the software only on Linux. There are four
types of licenses: Commercial Developer, Non-Profit Developer,
University Developer and University Classroom. They initially cost
$9995 US, $3150 US, $995 US and $1995 US, respectively. The
classroom license allows five concurrent users. Annual service
contracts cost roughly 13.5% per license and additional licenses
cost less than the initial license. There is an additional fee for
multi-license, multi-platform support as well. For further price
information, contact Numerical Objects AS directly.

Though I did not test it, a plug-in called the Adaptivity
Toolbox is available which enables any application to implement
adaptive grid technology. It comes at an additional price ranging
from $995 US to $3150 US depending on the type of license. This
tool is essential for some applications and should be added
directly as part of the cost of the purchase price. If your problem
involves changes of scale of an order of magnitude or more, you
will probably need this tool.

Trending Topics

Webinar: 8 Signs You’re Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th

Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.