ZEUS is a family of Eulerian (grid based) Magneto-Hydrodynamic codes (MHD) for use in astrophysics, described in a series of papers by Stone and Norman (1, 2, 3). It may be used in Cartesian (XYZ), cylindrical (ZRP), and spherical (RTP) coordinates.
While I was a graduate student working in Chris Reynolds' group, we worked with ZEUSMP, the parallel version of the code which runs in three dimensions. Several people in this group (Chris, Barry Mckernan, and myself) spent a large amount of time adapting, modifying, and fixing this code for our various research projects. Since the official NCSA page for Zeus-MP Version 1 has not been updated in several years, we have decided to make our modified version publicly available in the hopes that it will help the community to continue to have access to an up to date version of this much used code. Although I am not currently working on hydrodynamics since finishing grad. school, I still think community codes are important so I will keep this version of zeus available and will try to address any bugs that come up (although I am unlikely to come across them myself as I no longer actively use this code).
There is a new branch of Zeus-MP under development at UCSD (by John Hayes) refereed to as ZEUS-MP Version 2. It is a Fortran 90 rewrite of Zeus-MP. Our version is a modified fork of the FORTRAN 77 Version 1 of Zeus-MP. As of the last time I checked, it is not clear if this version is still being developed or not (although I'd be happy to be corrected and find out it is still actively developed).
We do ask that any research that uses our modified code acknowledges us by including a reference to our paper: Vernaleo and Reynolds 2006 (astro-ph/0511501, ApJ, 645 83.)
It would also be nice (but is in no way required) if you let us know that you are using that code.
This version of ZEUSMP is meant to be run on GNU/Linux Beowulf clusters. Much of the work on this has been done on the Astronomy Department cluster at the University of Maryland, the Borg. This has been tested on several different Linux distributions (Redhat 9, Fedora Core 1 and 2, Mandrake 8.1 and 10.1, Ubuntu, and Gentoo), all on the x86 (PC) platform. It has also been used on Mac OS X (darwin) on a G4 PPC. It should however be usable on other modern Unix like systems as long as the proper libraries are installed.
There are three basic requirements to compile ZEUSMP. A FORTRAN 77 compiler is necessary. There is a small amount of C as well, but odds are, if you have a F77 compiler, you have a C compiler as well. The cross-platform, free GNU compiler (gcc/g77) works well. As of gcc4, g77 is no longer being updated. Gfortran is the new Fortran compiler from the GNU project. It is a Fortran 95 compiler, but as of zeusmp v1.5.11, it can be used. For actual production use, the Intel compilers produce very fast executables (even on the AMD chips we tend to run on) and are our primary compilers. The Portland Group Compilers do not work with this code. They worked with older versions, but it was not worth maintaining compatibility (especially since they disagree with the GNU compilers as to what is acceptable code, produce slow executables, and are expensive).
Output requires the HDF4 libraries. ZEUSMP uses MPI for its parallel features. Although they should both work, I have had better luck with Lam-MPI than with MPICH. OpenMPI is also supported. Currently, even when running on a single processor, an MPI library is necessary to both compile and run the code. The most recent versions of these libraries that I have personally be able to use with ZEUSMP are available in the download directory for convenience, but I cannot provide any help with them. Any problems should be directed to the authors or maintainers of those packages. Some additional MPI links can be found here.
This code is provided as-is, with NO warranty. I cannot promise that it will even compile for you, let alone give correct answers (although the algorithms themselves are very well tested, and a variety of test case are included which you should use to convince yourself that things work). We cannot provide support for this code. If you run into bugs, I would like to hear about it so they can go into the documentation, but that does not mean I can or will fix them. If you have patches to fix bugs, then I definitely want to hear about it. (My email is at the bottom of the page, and in the README that comes with the code).
The most recent version is 1.5.19 and is available here: zeusmp1.5.19.tar.gz
A very preliminary version of a new quick start guide is available here: Quick Start Guide.
As usual, it is strongly recommended that you do not use any version earlier than this. See the VERSION file in the tarball for details on this update. This fix includes some minor bug fixes, a new combined build process for the executable and the post-processor, and support for the new computing cluster at the University of Maryland, deepthought. For non-UMD users, this means things are now set up to work with the PBS batch processing system.
Previous versions (including v1.0b, the NCSA release) and libraries that are known to work are available in this directory
In the near future, I plan on adding more documentation (both on the web and in the source code) and clean up the source code a bit.
If there are any questions, comments, or opinions on this code, or if you have bugfixes or additions that you would like to make publicly available as part of this package, please email me at: firstname.lastname@example.org
This work was made possible by financial support from NASA under the Chandra Theory Program grant TM45007X and the National Science Foundation under grant AST0205990.