Skip to content
Thomas Quinn edited this page Aug 24, 2018 · 7 revisions

Tipsy is a research tool developed by the N-Body Shop.

Table of Contents

Overview of Tipsy

The development of TIPSY was motivated by the need to quickly display and analyze the results of N-body simulations. Most data visualization packages are designed for the display of gridded data, and hence are unsuitable for use with particle data. Therefore, a special package was built that could easily perform the following functions:

  • Display particle positions (as points), and velocities (as line segments) from an arbitrary viewpoint.
  • Zoom in to a chosen position. Due to their extremely clustered nature, structure of interest in an N-body simulation is often so small that it can not be seen when looking at the simulation as a whole.
  • Color particles to display scalar fields. Examples of such fields are potential energy, or for SPH particles, density and temperature.
  • Selection of a subset of the particles for display and analysis. Regions of interest are generally small subsets of the simulation.
  • Following selected particles from one timestep to another.
  • Finding cumulative properties of a collection of particles. This usually involves just a sum over the particles.
The basic data structure is an array of particle structures. Since TIPSY was built for use with cosmological N-body simulations, there are actually three separate arrays for each of the types of particle used in such simulations: collisionless particles, SPH particles, and star particles. A single timestep is read into these arrays from a disk file. Display is done by finding the x and y coordinates of the particles in the rotated coordinate system, and storing them in arrays. Screen coordinates are calculated from these arrays according to the current zoom factor. Also, a software Z-buffer is maintained to save time if many particles project to the same screen pixel. There are several types of display. An all plot displays all particles colored according to their type. A radial plot will color particles according to the projection of the velocity along the line-of-sight. A gas plot will color gas according to SPH quantities such as density, temperature, neutral hydrogen fraction, etc. Subsets of particles are maintained using boxes. A box structure contains a bounding box, and an array of pointers to particles within the box. All display and analysis functions are performed on the active box. By default all particles are loaded into box 0, which becomes the active box. If a new timestep is read from disk, all boxes are destroyed. A selection of particles can be followed between timesteps via a mark array. Marked particles are displayed in a different color, and the analysis functions can be told to only operate on the marked particles.

Obtaining Tipsy

To obtain TIPSY, get the tar file from our Anonymous ftp-site. The relevant tar file is /pub/hpcc/tipsy.tar.gz. The script in /pub/hpcc/unpackage_tipsy will extract the tar file. Also see /pub/hpcc/tipsy_tools.tar.Z for utilities that read and write the tipsy binary file format.

Building Tipsy

To build tipsy, change into the code directory, and type configure. This should create a Makefile appropriate for your system. Then type make to build the TIPSY binary. The man directory contains preliminary man pages for the TIPSY commands.

Build Problems

Most build problems have to do with finding the libraries on which Tipsy depends. Here are a couple of cases:

  • When building the Tipsy binary it gives this error:
rldefs.h:46:23: termcap.h: No such file or directory

This indicates the termcap development libraries aren't installed. E.g., on a Redhat/Fedora system you will need to install the libtermcap-devel RPM to get the needed include file.

  • When building the Tipsy binary, it gives this error:
readline/libreadline.a(readline.o): In function `_rl_set_screen_size': /home/shen/tipsy-2.2.2/code/readline/readline.c:1261: undefined reference to `tgetnum'

Here the library libtermcap can't be found. It may be in an unusual place, and you may need to add , e.g., -L /usr/lib64 to the LIBS definition in the Makefile to look for the library.

On Redhat/Fedora systems, the required packages include libX11-devel, libXt-devel, libXaw-devel, ncurses-devel.

  • On Ubuntu systems, the configure script may have problems finding the readline or the termcap libraries. In this case you will need to edit the Makefile by hand to change the tipsy dependency to:
tipsy: $(OBJS) $(ALLOCA) readline/libreadline.a $(CC) -o tipsy $(LDFLAGS) $(OBJS) $(ALLOCA) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS) -lreadline -ltermcap

Running Tipsy

Just type tipsy at the command line. A new display window is opened, but commands are typed in at the command line.

Reading ChaNGa Output

ChaNGa, by default, writes its output in a machine-independent <it>standard</it> format. In order for tipsy to read this, one needs to use the loads or loadstandard command, e.g.,

<yes, master>openb testpg_ms.000010

<yes, master>loads 1.0

<yes, master>zall

Running Problems

  • Tipsy doesn't respond to mouse clicks: this can occur when the CapsLock or NumLock key has been toggled.

More Documentation

Yes. Tipsy needs more documentation. However, there are unix style tipsy man pages.

Frequently Asked Questions

What is the format of the data that Tipsy reads?

Tipsy can read particle data in ASCII files, the format of which is described in the man page for the readascii command.

Tipsy can also read particle data from a binary file. The format of this file is best determined by looking at the source code for the conversion tools.

ChaNGa is a publicly available N-body integrator that reads and writes the Tipsy binary format.

Does Tipsy read GADGET 2 format files?

No.

Mouse buttons don't work for zooming/panning/makebox. What's wrong?

Your "Numlock" or "Capslock" key may be set.