-
Notifications
You must be signed in to change notification settings - Fork 7
Home
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), NRAO, STScI, and elsewhere. The souce code is available under the GNU GPL.
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. These programs can perform a wide range of simulation and analysis tasks. While many 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 programs 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 programs 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; the latter 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 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.
`Beneath the hood', ZENO uses a variety of techniques to provide an 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.