The codes YANC and YancNemo described here are full N-body codes, i.e. not a subroutines or libraries, but an 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.
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.
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.
Before running make, you may want to edit the file make.nbdy in order to set some options as follows:
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". YancNemo is also distributed with NEMO version 3.1 and later.
As to the proper values of the various parameters (softening and tolerance parameter) you are strongly advised to carefully read the notes of caution .
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.
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 look 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.
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. Apart from this feature, I know of no real bug. If you think you found a bug, please send me a bug report. Thanks.