The CMHOG Code
CMHOG is a code for ideal compressible hydrodynamics based on the Lagrange-plus-remap version of the piecewise parabolic method (PPM) of Colella & Woodward (1984, J. Comp. Phys., 74, 1). It works in one-, two- or three-dimensional Cartesian coordinates with either an adiabatic or isothermal equation of state. A limited amount of extra physics has been added using operator splitting, including optically-thin radiative cooling, and chemistry for combustion simulations.
The code was written by Jim Stone while a postdoc at the NCSA at the University of Illinois in 1991. It was written for a number of reasons, but mostly for research into the dynamics of hydrodynamical shocks in a number of astrophysical problems. Originally it was written in F90 to exploit a new kind of massively parallel supercomputer which had just been installed at NCSA; the Connection Machine 2 (eventually replaced by the CM-5). It was later translated into F77 to work on vector and scalar processors.
The name of the code reflects its origins: it is an acroynym for Connection Machine Higher Order Godunov code, but is pronounced like the name of the dragon in J.R.R. Tolkein's The Hobbit (which seemed especially fitting for the combustion simulations).
CMHOG has been used for a variety of projects, including the interaction of strong shocks with dense clumps in the interstellar medium, the propagation and stability of cooling jets, gas dynamics in barred spiral galaxies and merging clusters of galaxies. See the description of research projects on my homepage for more details.
There is a more detailed description of the version of CMHOG used to study the gas dynamics in barred spiral galaxies at Peter Teuben's CMHOG2 code page.
You can dowloaded gzipped tar files of some sample versions of the code using the links below.
cmhog1.0 A one-dimensional version of the CMHOG code in F77 (adiabatic EOS).
cmhog3.0 A three-dimensional version of the CMHOG code in F77 (adiabatic EOS).
You may use the code freely as is, modify it for your own applications, or use it as a template for your own code.
For another example of a Lagrange-plus-remap PPM code which is available for free check out the VH-1 homepage.
The best source of documentation for the PPM algorithm remains the original Colella & Woodward paper in JCP. The code is commented with equation numbers that refer to this original paper. Otherwise, the only other documentation is this short description of how to install and compile the code. If you are familiar with using the ZEUS code, then CMHOG will seem very similar.
I'm afraid that I cannot offer any technical support for the code!