Introduction
Heat-wave is a program that numerically solves the heat and damped-wave equations. It operates on a 2 dimentional sheet of floating-point values that represent temperatures when applying the heat equation.
The values can also represent concentrations or partial pressures since the heat equation also models diffusion. Gases, information, or anything that can be thought of as small particles diffuse as they move and mix randomly. Or if you're solving the wave equation, the values can be thought of as displacements (shear waves) or pressures (compression waves).
Heat-wave displays the sheet of temperatures as a color-coded height map, animated as it evolves over time. The drawing is done using OpenGL, the standard 3D graphics interface.
Heat-wave also shows statistics about the speed of solving and drawing.
Heat-wave is built on the window and widget classes provided by Qt. Qt is a cross-platform C++ toolkit developed by TrollTech which is now a division of Nokia.
Heat-wave also uses the Boost C++ Libraries, which have become an essential part of almost all C++ development projects started in the last couple of years.
The illustrations and backgrounds used in these pages are all from Heat-wave. For example, the background for this page comes from the screenshot at the right.

The following are unorganized notes. They should be gone when this tutorial is finished.
The latest version of heat-wave, compiled for Windows, is here: heat_wave_1.exe
You should probably R-Click and "Save As..." if you want to run it.
This EXE should work on XP, Vista, and Windows7. It's compiled with static libraries so you shouldn't need any additional DLLs, just the EXE. It does use OpenGL so it'll be terribly slow without some kind of graphics card or graphics chip. But it should still work. Feel free to contact me (nealabq -at- gmail -dot- com) if it doesn't.
There's also a Linux (Ubuntu) version, although it's about a month out-of-date. Download the executable for Linux here.
The following pictures are all from heat-wave, waiting to be used in these pages.
Here's a snapshot of the cross-platform source code.