Yet Another N-body Code: a users guide


CONTENTS

  1. Overview
  2. Guarantee
  3. Unpacking
  4. Compiler options
  5. Installation
  6. Usage
  7. Bugs & Features

  1. OVERVIEW

    The codes YANC and YancNemo described here are full N-body codes, i.e. not subroutines or libraries, but executables. If you want only a Poisson solver, but otherwise use your own N-body code, you may use the code falcON, on which YANC and YancNemo are based.

  2. GUARANTEE

    This package comes with absolutely no guarantee whatsoever! The unpacking, compiling, and using of the code is entirely at the risk of the user alone.

  3. UNPACKING

    After downloading the file yanc.tar.gz, copy it into some directory, say NBODY. Then unpack it typing (after cd NBODY)

    tar zxf yanc.tar.gz,

    which should create the sub-directories src, inc, and lib (empty) as well as the files make.nbdy, make.util, Makefile, tree.ps, as well as this several other files.

  4. COMPILER OPTIONS

    Before running make, you may want arrange for some non-default settings that control certain code features as follows.

  5. INSTALLATION

    The installation is best done with GNU make (the makefiles provided don't work for, e.g., Solaris make) and using the GNU gcc compiler. I used gcc version 2.95.2. I also tried version 3.0, but I only managed to produce larger and slower code (and compilation took longer). The makings take a little while but should not produce any warning or error messages. Otherwise something might be wrong.
    The command "make YANC" should create the executable YANC.

    If you have the NEMO package for N-body simulation & analysis installed (and activated via the command "nemo"), you can also build a fully NEMO-compatible version called YancNemo, by the command "make YancNemo". Note that YancNemo is better supported and tested than YANC, which may be abandoned in later versions.

  6. USAGE

    As to the proper values of the various parameters (softening and tolerance parameter) you are strongly advised to carefully read the notes of caution and the notes on adaptive time stepping.

    1. YANC

      There is some explanation of how to use YANC when you just call the command YANC without command line arguments. YANC essentially reads all relevant input, including the phase-space position of the N bodies, from input file(s), the first is given as command line argument and further ones may be given as parameter in the input file. YANC allows regular output in ASCII format and scratch output in binary format. Either of these output files may be used to restart the simulation.
      Apart from this output, YANC also writes after each full blockstep, to standard output, a table containing information on the simulation time, total energy, bodies per time step, and CPU time consumption.

    2. YancNemo

      YancNemo comes with the usual NEMO help utility (call "YancNemo help=h") and I think there is even a man page if you install it via NEMO, though I havn't yet looked at that man page. YancNemo also reads data from a file in NEMO snapshot format, and writes outputs in regular intervals in NEMO snapshot format. Like YANC, YancNemo also writes to standard output after each full blockstep.

  7. BUGS & FEATURES

    Note that the code does not support the notion of a test particle, i.e. a body with zero mass. Such bodies will never get any acceleration (that is because the code first computes the force, which is symmetric and hence better suited for mutual computations, and then divides by the mass to obtain the acceleration). To overcome this, you may use tiny masses, but note that the forces created by such light bodies will be computed, even if they are neglible.

    As already mentioned above, individual softening lengths are not properly tested yet. If you intend to use this feature, please contact me BEFORE.

    The 2D version of the code (not described here) does seem to be buggy. If you intend to use it, please contact me BEFORE.

    If you think you found a bug, please send me a bug report. Thanks.

Have Fun!


Walter Dehnen
Last modified: Fri Apr 12 10:12:36 CEST 2002