Zeno System Guide
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 SUN, SGI, and LINUX platforms. It is in active use
at the Institute for Astronomy (IfA), at U. Victoria, and at NRAO.
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 unusually flexible and powerful working
environment:
- 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
formats.
- 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.
Zeno 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
systems.
- 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
equilibrium.
- 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
N-body/SPH programs:
- Pure N-body codes are available in both uniprocessor and
parallel versions.
- SPH codes offer a wide range of options for gas physics,
including isothermal, adiabatic, and radiating gasses.
- Snapshot analysis programs calculate temporal averages, evaluate
particle statistics, measure shapes and density profiles,
compute kinematic properties, and identify and track objects in
particle distributions.
- 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@ifa.hawaii.edu)
Last modified: August 11, 2001
http://www.ifa.hawaii.edu/~barnes/zeno/index.html