Well, the easiest answer is that I knew it, and it met the requirements. The more interesting answer, though, is a combination of things. Python right now has a lot of momentum behind it, particularly in the scientific community. It’s easy to compile, portable across many architectures, relatively simple to write C-based exntesions for, and it’s well-suited to rapid application development. With access to an interpreter, new avenues of data-exploration are opened, and this can lead to much more rapid and interesting analysis.
There are several good, free books about Python available on the web. The best place to start is with the official tutorial, but there’s also Dive Into Python, an entire collection of videos on ShowMeDo.com, and a much more specific guide to using NumPy, which is the backend on which all the math done in yt is based.
As far as books go, the only book I’ve found to be absolutely indispensible is the Beazley Book.
There are also tutorials designed for Scientific computing, such as the tutorial at SC09.
Matthew Turk is the lead developer, but Britton Smith, Jeff Oishi, Dave Collins and Stephen Skory have all made substantive contributions. For the full list, see the CREDITS file.
In the book Snow Crash, yt is Uncle Enzo’s messenger. Lagos is the keeper of the data, Raven is a master slicer, and so on. In version 2.0, many of these names will be eliminated when the code base is reorganized.
yt has been released under Version 3 of the GNU General Public License.
If you found it useful, and have extended it in some meaningful way, of course I’d love to see your contributions so they can be shared with the community. Additionally, if you use yt in a paper, I’d love it if you’d drop me a line to let me know.
This is a very important question. The derived fields – and the native data types – are returned as CGS units, to the best knowledge of the code; but if you see something that looks way off, you should investigate. To see, specifically, what yt is returning for a given field, you can do:
print lagos.fieldInfo[some_field].units
and it will show you the units that have been assigned to it.
If you are defining your own derived field, you should assume that the units given to the function you define are already in CGS.
That being said, if for some reason yt is unable to determine the correct units for your simulation, it will notify you. It knows how to parse output from all of the versions of Enzo I have used or encountered, and the newest public release is a target platform. However, the Enzo and Orion codebases are so diverse and – at times – fragmented that it is difficult if not impossible to know that all the corner cases have been identified and handled.
By default, yt attempts to serialize a couple pieces of data that help speed it up in future invocations. Specifically, the entire contents of the hierarchy, the parent-child relationships between the grids, and any projections of the entire volume that are made. Furthermore, objects that have been saved to the hierarchy are stored here as well.
If you find a bug, report it. If you do something cool, write it up. If you find a place to improve the code, send in a patch. We’re very interested in contributions! There is a set of hacking guidelines on the wiki.
Well, first off, double check that you’re giving the code what it needs, and not asking it for something it can’t provide. Use the help() command on an object or a method to get more information.
If you can’t figure out what’s up, please go ahead and copy the resultant traceback information (the error message it prints out) along with any log files, and either send an email to the yt-users mailing list (subscribe first!) or attach them to a ticket at http://yt.enzotools.org/. If you are running from within a script, re-run the script with --paste on the command line; this will upload the error message to the pastebin and print a URL. Include the URL in your email message to the mailing list.
For now, axes are specified by integers – 0,1,2 for x,y,z. In version 2.0 this will probably change to allow for string-identification as well.
I’ve set up a yt-users mailing list. There’s more information about it at the yt homepage and in the section Asking for Help.