NEMO (Stellar Dynamics Toolbox)

NEMO (Not Everybody Must Observe) is a toolkit for stellar dynamics. At its core it manipulates an n-body system (snapshot), but can also derive or compute orbits, derive images and extract tables to take to other analysis systems.

Architecture

NEMO was developed on Sun Workstations, but ports to most Unix like systems. At its core NEMO defines a series of objects (SnapShot, Orbit, Image) and associated header files and libraries to operate on them, and these mirror the data stored in a portable binary name and type tagged XML like format, dubbed structured file. The program tsf in NEMO will show the contents of such a file in a human readable way. Another feature of NEMO is that all its data can be piped from one task into the next, thus creating whole simulations in a simple Unix pipe. For example,

  mkplummer - 1000 | snapscale - - vscale=0.5 | hackcode1 - - tstop=10 | snaptrim - - times=10 | snapgrid - - | ccdfits - final.fits

would create a 1000 particle Plummer sphere, scale the velocities down to below virial equilibrium, integrate this for 10 virial times to see it collapse, and take the particle distribution of the last snapshot and turn that into a FITS file to view in another astronomical analysis package.

History

NEMO was conceived and written by Josh Barnes, Piet Hut and Peter Teuben in 1986, at the Institute for Advanced Study, prompted by the wish to have a toolkit built around the just developed Barnes–Hut simulation. NEMO was presented at the 1994 Astronomical Data Analysis Software and Systems (ADASS) conference held in Baltimore, MD.

NEMO is still in active use and development, and has been used in many publications. Peter Teuben maintains NEMO, whereas Josh Barnes maintains ZENO, a spin-off from NEMO.

gollark: mildly nicer.
gollark: This would be mk
gollark: You could have a single `f: &dyn Fn(u64, u64) -> Option<u64>`.
gollark: `f:&dyn Fn(u64,u64)->u64, cond:&dyn Fn(u64, u64)->bool` - this is not very idiomatic, consider using `Option`.
gollark: Rust lets you `move` stuff, I don't think it allows much specificity.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.