gotetra is a Go-based package which uses phase-space tesselation techniques
to extract information about cosmological N-body simulations. The key
applications of this code are the measurement of splahsback shells around halos
and the generation of high resolution images of density fields.
Extremely unfinished function documentation can be found in this README and at http://godoc.org/github.com/phil-mansfield/gotetra.
(Briefly: it works like any other Go package. Just build the scripts in the
main/ subdirectories with either
go build or
There are three major branches:
render/: Generates 3D and 2D (projected) density fields from a particle snapshot generated by a cosmological N-body simulation.
los/: Measures density along lines of sight from the center of halos. These densities can be used to measure the splashback shells of halos.
compress/: Compresses the position space data from cosmological N-body simulations. (Very not finished. Currently lots of uncommitted ideas and tests.)
There are also a number of helper directories:
cosmo/: Library with a few useful functions that calculate cosmological quantities.
math/: Library for computing a potpourri of useful mathematical functions. In a lot of cases, this just means reimplementing things from the Go standard library in a better way.
Python code for interfacing with
gotetra output is provided in the
gotetra.py is both a python library and a command line utility.
Running it as
$ python gotetra.py my_gotetra_file.gtet will print out
information about the file, and importing it will give you access to functions
which can read in
gotetra headers and arrays.
The documentation for this is not fantastic, and I plan to make it better later.
Description of command line tools
Here are some things which I would love to add to this project but do not currently have the time to do so. In no particular order:
Create a Python librarywhich captures the behavior of the command-line utilities. Write Python bindings for all the important functions. (Difficulty: Medium)
Higher order tesselation techniques. (Difficulty: High)
Generalization from uniform initial conditions to adaptively refined initial conditions. (Difficulty: Low)
Improved documentation. (Difficulty: Low)
gtet_fooapplications to a single
gtetapplication with a
fooargument. (Diffifulty: Low)
Restructure project in a number of ways. The most obvious and easiest would be to move all the packages in
los/which are imported by files in
los/to some top level package. (Diffifulty: Low to Medium)
Write an introduction somewhere for the uninitiated. (Diffifulty: Low, but only Phil can do it.)
This project is not even close to stable yet.