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.
  • Manufacturer: Numerical Objects AS

  • E-mail:

  • URL:

  • Price: Varies according to license (see below)

  • Reviewer: Jim Moore

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.


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.


One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix