Zeno System Overview
The ZENO software package integrates N-body and SPH simulation
codes with a large array of programs to generate initial conditions
and analyze numerical simulations. Written in C, the ZENO system is
portable between Mac, Linux, and Unix platforms. It is in active use
at the Institute for Astronomy (IfA), at NRAO, and elsewhere.
From the user's point of view, ZENO consists of a collection of
programs which are invoked and controlled directly from the UNIX
command line. `Beneath the hood', however, the system uses a variety
of techniques to provide an flexible and powerful working
- Structured language for binary data files identifies data
elements by name and type. Sophisticated input routines can
access binary files in an associative fashion, retrieving only
the data required for the computation at hand. Explicit typing
facilitates data exchange between machines with different data
- On-the-fly code generation. Many ZENO programs permit the user
to specify C-language expressions as input parameters. These
expressions are used to automatically generate executables to
perform specific tasks.
- Dynamically extensible particle representation. The data
associated with a particle depends on the specific application;
some calculations need only position and velocity, while others
may require many additional parameters. Instead of trying to
anticipate all possibilities, the software determines the
particle structure at run-time.
programs can perform a wide range of simulation and analysis
tasks. While many of these programs were first created for specific
projects, they embody algorithms of general applicability and embrace
a modular design strategy, so existing code is easily applied to new
tasks. Major elements of the system include:
- Structured data file utilities facilitate basic operations on
binary data, including import/export of ZENO data to other
- Snapshot generation routines create particle distributions with
various properties. Systems with user-specified density
profiles can be realized in collisionless or gaseous form;
multiple spherical and disk components may be set up in mutual
- Snapshot manipulation routines permit the user to sift, sort,
and combine particle arrays, translate and rotate particle
configurations, and assign new values to data fields associated
with each particle.
- Simulation codes include both pure N-body and combined
- Pure N-body codes are available in both uniprocessor and
- SPH codes offer a wide range of options for gas physics,
including isothermal, adiabatic, and radiating models.
- Snapshot analysis programs calculate temporal averages, evaluate
particle statistics, measure shapes and density profiles,
compute kinematic properties, and identify and track objects in
- Visualization programs generate interactive displays and produce
still images and videos of particle distributions; the user may
specify arbitrary color schemes and viewing transformations.
Thanks to their modular design and their use of a common and
general data format, these programs combine in a tremendous variety of
ways. Generation and analysis pipelines can be prototyped in minutes,
formalized using the UNIX make utility, and tuned for
efficient processing of large data volumes.
Joshua E. Barnes
(barnes at ifa.hawaii.edu)
14 June 2012