HistoryHistoryHistoryHistoryHistoryHistoryHistoryHistoryHistoryHistoryHi Zeno is based in part on the Nemo Stellar Dynamics Toolbox, initially developed by myself, Piet Hut, and Peter Teuben in the late 1980s at the Institute for Advanced Study. I began work on Zeno in 1989 at the Canadian Institute for Theoretical Astrophysics; my initial reason for creating a separate package was to try out a different way of storing particle data (now implemented as a phatstruct). Zeno and Nemo have many design features and strategies in common; however, Zeno is more compact (~125 files of source code, as compared to ~4000), and as the product of a single individual it is probably more coherent and internally consistent. zeno.000.tar.gz: 15 June 1999 * first "self-packaging" version. zeno.001.tar.gz: 21 June 1999 * added install_all and reset_all targets to ~/Zeno. * all Makefiles use $(CC) for compiler. * getparam recognizes -clue and -help switches. * changed mathfns to include LINUX names. * added snapobject program. * buildmap uses CC environment variable. * renamed FSP creation utilities from *prof to *fsp. * treecode has no-out-vel option. zeno.002.tar.gz: 23 August 1999 * added snapstat program. * buildmap implements SafeSelect feature. * added viewfile program. * snapaux, etc, report actual program name on error. * rsf/dsf completely rewritten. zeno.003.tar.gz: 7 December 1999 * filestruct recognizes files w/ opposite byte order. * csf/ssf implements swap option. zeno.004.tar.gz: 15 February 2000 * renamed dynstruct to phatstruct. * added fatal() function to error. * getparam recognizes -explain and multi-line descriptions. * renamed dynbody to phatbody. * added isothfsp program. * added snapppm program. * added UdotRad field to phatbody. * included sphcode [V 1.1] * added treepeek program. * csf, tsf, rsf have multi-line parameter descriptions. zeno.005.tar.gz: 14 August 2000 * stropen() has query mode to determine if file exists. * added snaprholist program. * added listvec option to snapshape. * added new options to snapstat. * added mkpolytrope program. * revised variants of sphcode. * changed output format of snapcm. * added snaplist program. * updated snapturn program. * added gsf program. * included History file in distribution. zeno.006.tar.gz: 12 February 2001 * fixed byte-order bug in filestruct. * added snapavg program. * added snaphist program. * added potential to FSP structure. * added r_phi_fsp() function, changed args to phi_fsp(). * renamed radius_fsp() to r_mass_fsp(). * added fsprealize program. * added snapinterp program. * added snaprect program. * updated snapcons to make frame param optional. * updated snaptrak to permit empty groups. * upgraded treecode from 1.3 to 1.4: - included multi-line parameter descriptions. - changed freq to dtime, freqout to dtout. - pared down list of options. - added outputs parameter. - included treecode_pvm in distribution. - removed fast-sqrt version (obsolete). - added code for coincident bodies. * upgraded treepeek program. * included Web pages in distribution. zeno.007.tar.gz: 12 May 2002 * upgraded snaphist to accept weighting factor. * upgraded snapstat to compute sums in double precision. * fixed FSP library to handle degenerate arrays. * upgraded fspdisk to version 1.2: - replaced eps with epsilon, implemented Plummer smoothing. - added r_mu and eta parameters. * upgraded fsprealize to version 1.1: - removed nhpnt parameter (not necessary). - added copies and randrad parameters. * upgraded halofsp to compute M(r) more accurately. * renamed snapinterp to snapsmooth version 1.2: - added threedim parameter. - addecd valout parameter. * upgraded snapmap and buildmap to define n = nbody. * added "nice" option to treecode_pvm. * updated sphcode to use newer FSP library. * upgraded snapcenter to version 2.1: - added coords parameter. * upgraded snaplist to version 1.1: - added times parameter. zeno.008.tar.gz: 12 June 2008 * relocated source directories to zeno/src. * added support for Mac OSX. * updated code in src/lib/clib: - allocate.c: better error checking. - cputime.c: now uses getrusage by default. - mathfns.{h,c}: log2, exp2 provided in OSX/BSD. - xrandom.c: OSX includes random() in stdlib.h. * added seed keyword to all snapmap client programs: - upgraded snapmap to version 1.2 - upgraded snapavg to version 1.1 - upgraded snaphist to version 2.3 - upgraded snaprholist to version 1.1 - upgraded snapstat to version 2.3 - upgraded snapaux to version 2.1 - upgraded snapcenter to version 2.2 - upgraded snapkey to version 2.1 - upgraded snaprect to version 2.1 - upgraded snapsift to version 2.1 - upgraded snapsort to version 2.1 - upgraded snaptrak to version 2.1 * renamed "fsp" to "gsp" throughout. - updated gspdisk: better precision & error messages. - updated gsprealize: better error messages. - updated polygsp: better error messages. * added gspeval program. * added snapgsp program. * added gsptestdisk program. * upgraded snapsmooth from version 1.2 to 1.6: - renamed parameters (pgmout -> out; valout -> auxout). - added value=bright option to interpolate brightness. - added pgmdepth parameter for 16-bit images. - removed rawbits option (images now always binary). - implemented absorption along line of sight. * upgraded snapview from version 1.4 to version 2.0: - implemented using OpenGL and GLUT libraries. - removed idkit variant (to become a separate program). - improved documentation of input parameters. - replaced sampling parameter pskip with maxfast. - added viewsize parameter. - removed fullscreen, noborder, position, textsize parameters. * revised phatbody structure: - removed real-valued Temperature (temp) component. - added real-valued UdotViscosity (udotvis) component. - added real-valued Tau (tau) component. - added byte-valued BodyType (type) component. - added real-valued BirthDate (birth) component. * added kepsnap program (formerly mkorbit or makecoll). * added plumsnap program. * upgraded mkpolytrope to version 1.4, renamed it polysnap. * upgraded mktestdisk to version 2.1, renamed it snaptestdisk. * upgraded sphcode to version 1.2: - multiple versions selected by compile-time options; see Makefile for available combinations. - can use entropy or energy as thermodynamic variable. - radiative cooling, opacity, diffusion, conduction implemented. - star formation implemented. * upgraded snapforce to version 1.3 * upgraded snaplist from version 1.1 to version 1.3: - improved documentation of input parameters. - added hfmt, ifmt, rfmt parameters. * upgraded snapset from version 2.3 to version 2.6: - removed temp variable. - added udotvis, tau, type, birth variables. - added seed parameter. * added snapsplit program. * made internal changes to treecode to track down rare bug; should be resolved in next release. * removed snapstataux program. * renamed stoa to snapascii and stoa_tip to snaptipsy. * renamed snapmake to makesnap. zeno.009.tar.gz: 14 June 2012 * replaced Numerical Recipes with GSL (Gnu Scientific Library). * renamed CC, CCFLAGS, and LDFLAGS environment variables to ZCC, ZCCFLAGS, and ZLDFLAGS, respectively. * revised code in src/lib/clib: - replaced besselfunc.c with bessel.c, which uses GSL; rationalized names and added non-integer orders. - replaced xrandom.c with random.c, which uses GSL; added init_random() to provide run-time selection of generator using GSL_RNG_TYPE environment variable, added get_random_state() and set_random_state(). - error.c: added set_error_stream() functionality, modified eprintf() to allow user control of Zeno verbosity using ZENO_MSG_OPTION environment variable. - getparam.c: getiparam() does error checking; getdparam() accepts ratios (val1/val2), uses strtod(); defined getprog() macro to replace getargv0(). - history.c: added skip_history(). - vectmath.h: added MULMV1() macro. - calls to error() and eprintf() include program name. - comments converted to c++ style. * upgraded gsf to version 1.6 (better parameter order). * revised phatbody structure: - added real-valued DeathDate (death) component. * renamed SAFE_SELECT environment variable to ZENO_SAFE_SELECT * upgraded snapshape to version 1.2, which uses GSL. * modified calcphi to improve message output. * modified expdgsp to check lower range of table. * added option to test spline fits to gammagsp.c * modified gsp.c; added free_gsprof() routine, improved error checking following spline fit. * upgraded gspdisk from version 1.2 to 1.4: - added support for double disks w/ different alpha values - added nlist parameter for uniform disk listing - renamed input parameter gsp to grav. - removed zerocm parameter. * modified gsplist to increase output precision. * upgraded gsprealize from version 1.1 to 2.1: - use simple iterative search to find hmax value. - added hmaxpar argument to adjust search parameters. * upgraded gspsmooth library to return new profile object. * added gspsmoothfit program (fits approx smoothing function). * modified halogsp to use GSL and warn if model extends too far. * added tablegsp program (reads Mathematica output). * added snapcmacc() function to snapcenter library. * upgraded sphcode from version 1.2 to 1.4: - BodyType input data used to determine particle types. - implemented stochastic mass loss from stars. - added uintmax parameter to energy-based versions. - renamed parameters uradmax -> uradpk, lambmax -> lambpk. - added routine to generate test data (collapse model); new parameters testbody, testseed, testuint. - added log parameter to direct log output to file. - added trace parameter to stream frames to output. - removed QUICKSCAN variant. * upgraded snapcenter to version 2.3, adding ability to center acceleration as well as position and velocity. * upgraded snapsmooth to version 1.7; added value=rgb for color. * upgraded snaplist to version 1.4; added keyhead and auxhead params. * upgraded snapset to version 2.7: added death field. * upgraded snaprect to version 2.2, which uses GSL. * upgraded treecode from version 1.4 to 1.5: - added EXTGRAV varient. - added theta-eff option. - added log parameter to direct log output to file. - added trace parameter to stream frames to output. - reordered input parameters. zeno.009d.tar.gz: 13 February 2013 (update) * upgraded tablegsp to version 1.1: fixed bug in table input; added table truncation option; added mass integration check. * upgraded expdgsp to version 1.1: added zdisk parameter. * modified gsplist to improve formatting of printout. * upgraded gsptestdisk to version 1.1: added randspin option. * upgraded gsprealize to version 2.2: automatically increases speed safety factor until VN rejection succeeds. * fixed start-up bug in sphcode. * corrected range check error in gsprealize. * fixed bug in input of midval and slope in snapsmooth. * added taux, tauy, tauz, tautot macros to mapdefs.h * added sphdensity program. * added snapregister program. * get_snap routine now deallocates old array if new one is larger. * put_snap and get_snap routines permit zero-length body arrays. * upgraded snapcons to version 2.2; removed nbody parameter. * improved accuracy and monotonicity checking in expdgsp. * updated Instructions; removed creation of libglut.a link. Joshua Barnes 13 February 2013 Honolulu, Hawaii HistoryHistoryHistoryHistoryHistoryHistoryHistoryHistoryHistoryHistoryHi