# HNBody: An Integration Package for Hierarchical N-Body Systems

### Version 1.0.9

Kevin P. Rauch and Douglas P. Hamilton
WWW: http://janus.astro.umd.edu/HNBody/
e-mail: rauch@astro.umd.edu, hamilton@astro.umd.edu

## Introduction

Welcome to HNBody! The HNBody package integrates the motion of particles in self-gravitating systems where the total mass is dominated by a single object; it is based on symplectic integration techniques in which two-body Keplerian motion is integrated exactly. Options include choices of coordinate system, division of particles into classes based on mass scales, order of accuracy, and others. Please read Integration Algorithms for more information. Comments? Problems? Questions? E-mail us!

Running HNBody involves creating an input file containing integration options, then running the simulation using an appropriate driver (which determines the physical effects included in your model). This distribution supplies a standard driver (hnbody, which includes only basic N-body force terms, plus integrated options such as post-Newtonian corrections) and two sample customized drivers (ems and lunar) demonstrating how additional physics can be incorporated. These programs can be found in the bin/ directory. To get started, try running the simple 3-body integration sample.hnb using the standard driver, like this:

      hnbody sample.hnb

The file sample.hnb is heavily commented and provides a good introduction to the format of HNBody options. See the Options Reference Manual for a complete list of recognized keywords. For further information on building customized drivers, consult Creating Custom Drivers.

This distribution contains binaries and support files for a particular operating system and architecture, as described on the HNBody download page. See the MANIFEST file for the complete list of files and directories it should contain. An overview of the files in each directory is given below. For further information about the latest official release and future release plans, see the Release Notes and Problems and Limitations pages.

HNBody is freely available. If you use HNBody in your work, we simply ask that you clearly state this in your publication, and cite the Rauch & Hamilton (2004) AJ paper listed in Integration Algorithms. We would also appreciate it if you send us a reference to your paper. Although currently only binary distributions are offered, full source code will be made available at a later date.

Also check out Rogue Star, an interactive animation utilizing HNBody.

## Distribution Directory Contents

bin/

Pre-compiled driver programs and utilities; hnbody is the "standard" driver, lunar is a simple custom driver, and ems is an advanced one. hnarith, hnconvert, hnpaste, hnstats, and hntac are output file manipulation utilities. All programs accept the -h option, which will print a usage summary. You can copy these to wherever you normally keep your local executables.

doc/

HNBody documentation tree.

drivers/

Source code and Makefile for building customized drivers. Source code for the two sample customized drivers, lunar and ems, is also included. See Creating Custom Drivers for more information on creating custom HNBody drivers.

hnbody/, mutils/

Include files for building customized drivers.

input/

Sample input files demonstrating format and options; read through sample.hnb/ for a mini-tutorial. These can be used as is with the drivers for testing or experimentation.

lib/

Pre-compiled libraries; required for building customized drivers.

sm/

SM (SuperMongo) macros to automatically plot HNBody output files. Consult SM Macro Library for an overview and installation instructions. Requires SM.

test/

A set of Bourne shell scripts and input files to exercise basic functionality of the programs. To run the test suite, just type `make` and wait for the tests to finish (each could take a couple minutes). Note that each script is independent and can be run individually. Requires Unix/Linux/Cygwin.