Enzo is a community-developed adaptive mesh refinement simulation code, designed for rich, multi-physics hydrodynamic astrophysical calculations.
Enzo is freely available, developed in the open, with a strong support structure for assistance. Simulations conducted with Enzo have been featured in numerous refereed journal articles, and it is capable of running on computers from laptop to Top500.
Image credit:
Enzo can be obtained in several places, corresponding to the degree of stability and development accessibility.
There are several places to get help with Enzo, from mailing lists to documentation to online tutorials and recordings of workshop presentations.
Enzo is developed in the open by a community of developers from different institutions. Contributions, fixes, and changes are all welcomed!
There are several places to get help with Enzo, from mailing lists to documentation to online tutorials and recordings of workshop presentations.
Enzo is provided through several channels: a public repository of code that is under active development, as well as a stable channel that is carefully curated and that corresponds to releases. Tarfiles of stable releases are also available, but are discouraged. If you want to use the development version, it's probably a good idea to check out the development guide.
The simplest way to get a copy of the current stable source code is to clone the repository using Mercurial:
$ hg clone https://code.google.com/p/enzo/
Makefiles are provided for many commonly-used supercomputers, clusters and operating systems. If you're interested in helping package up the Enzo source code and its dependencies for a platform, get in touch!
Using Enzo effectively can be a bit challenging at times -- but there is plently of assistance available, thanks to the broad community of users and developers. There are a number of tutorials in the documentation, including example problems in the current source tree. For more narrative descriptions of how to use Enzo, there are a number of videos from the 2010 Enzo Users' Workshop.
But, in addition to prepared materials, there are also several forums available to get in touch with people who may be able to help you out with problems using or developing Enzo. There's both a user-centeric mailing list as well as a mailing list more suited for development issues. If this still doesn't help, we are tracking known issues in a public bug tracker.
There are also usually a couple people in the channel
#enzo on irc.freenode.org. You can get
there with an IRC client like Adium, or we even have a website that will connect you right in
your browser!
The Enzo Project is built on the contributed code of dozens of computational astrophysicists -- in the form of physics modules, star formation prescriptions, infrastructure, initial conditions, and on and on. We welcome contributions from users and developers alike, and we are endeavoring to make it as easy as possible to contribute code.
To facilitate this, we provide not only a developer guide, but we also host our code on BitBucket, where we invite you to fork the project, make changes, and then issue a "Pull Request" so that your changes can be reviewed, accepted, and incorporated into the next released version.
If you're going to be developing, you should definitely join the developer mailing list, where you should feel free to ask questions if you get stuck. It might also be a good idea to familiarize yourself with Mercurial and to browse the development and stable versions of the Enzo source.
Enzo users and developers are, on the whole, a pretty active community. We are endeavoring to hold biannual developer workshops, with users' workshops every other year or so. We're passionate about ensuring physical fidelity of the simulation code, enabling scientific progress through both large- and small-scale simulations, and encouraging reproducibility of results in the literature.
There are a couple ways to get involved with the Enzo community.
The first, and easiest, is just to sign up for both the
users'
and developers'
mailing lists, and trying to help out people with questions or
just sharing with others what you've been working on. We also
encourage you to come visit the IRC channel. You can get at it
by visiting #enzo on irc.freenode.org
with an IRC client like Adium, XChat or irssi.
Mostly, though, we encourage you to talk to other people in the community; speak up if you have problems, ideas or suggestions; and get involved by contributing fixes and changes if you want to. And then, come to a workshop! They're usually quite accessible for new and experienced developers, and it's an excellent way to put faces with names on the mailing list. We had one in San Diego in the Summer of 2010, and it was productive, informative, and fun.