/shellfish

A Go-based package which identifies the splashback shell of halos from N-body simulations.

Primary LanguageGoMIT LicenseMIT

Shellfish

The splashback shell around a Milky Way-sized halo

Shellfish (SHELL Finding In Spheroidal Halos) is a command line toolchain for finding the splashback shells of individual halos within cosmological simulations.

After configuration, generating halo catalogs with shellfish can be as easy as the command

cat my_halo_catalog.txt | shellfish shell | shellfish stats > my_splashback_catalog.txt

Shellfish is currently in version 1.0.4. All future versions are garuanteed to be backwards compatible with any config files or shell scripts that work on version 1.0.0. The current maintainer is Phil Mansfield at Stanford University. Shellfish is written in the programming langue Go.

DOI

Getting help

If you run into problems that you cannot solve yourself, the best thing to do is to make a github account (it's quick!) and submit an "Issue" about your question or bug here. (Don't worry about the tabs on the right hand part of the submit form: I'll take care of this when I see it). The second best option is to email me: you should do this if you do not want your question or bug report to be public.

Installation

There are two steps to installing Shellfish. The first is installing a Go compiler (which is relatively painless compared to installing most other compilers), and the second is compiling Shellfish and its dependencies (which is completely painless).

If you are working on a computer that you own, download the latest version of the Go compiler from here and follow the instructions. If you are working on a cluster, It's probably easiest to ask the cluster staff to install the compiler for you. Regardless of how you install it, you will need to make a few changes to your .profile file, so make sure to read the section titled Test your installation and run the hello world program there (don't worry: you don't need to know the language to use Shellfish).

Once you've done this, its time to download and install Shellfish's dependencies. You will need the version control software git installed on your machine. Clone this repo into the directory $GOPATH/src/github.com/phil-mansfield/shellfish. Run the shell script download.sh (no need for root access). To test whether installation was successful, type $ shellfish hello. If you get any errors during this process, it means that one of Shellfish's dependencies has changed its public API without warning (again): email me or submit an issue, and I'll fix it.

After you've downloaded shellfish for the first time, you can update it to the latest version at any time by running the shell script update.sh.

How to Use Shellfish

Shellfish is a set of unix-like command line tools which produce human-readable catalogs. You write a configuration file describing the layout of your particle snapshots and halo catalog, specify the halos you want to measure the splashback shell for, and then Shellfish will take care of the rest.

You can find a tutorial on using Shellfish here. It typically takes about 10 minutes to read through.

List of Supported File Formats

Currently supported particle catalog types:

  • gotetra
  • LGadget-2 (works on most other versions of Gadget, too)
  • Gadget-2
  • ARTIO (experimental)
  • Bolshoi
  • BolshoiP

Currently supported halo catalog types:

  • All text column-based catalogs

Currently supported merger tree types:

  • consistent-trees

If you would like to use a particle catalog type which is not supported here, plase submit an Issue requesting support. Shellfish is written in a way that makes it easy to interact with unsupported halo catalogs and meger trees (as covered in the tutorial), but feel free to submit an issue requesting support as well.