gotetra

module
v0.0.0-...-e3578a0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2016 License: MIT

README

gotetra

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.

An example image

http://www.benediktdiemer.com/visualization/images/

Installation

Coming soon...

(Briefly: it works like any other Go package. Just build the scripts in the various main/ subdirectories with either go build or go install.)

Project Structure

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

Python code for interfacing with gotetra output is provided in the python/ directory. 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

Coming soon...

Relavent Papers

Coming soon...

Wishlist

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)

  • Convert various gtet_foo applications to a single gtet application with a foo argument. (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.)

Version

0.0.2

This project is not even close to stable yet.

License

MIT

Directories

Path Synopsis
los
package los computes line of sight densities oriented in rings around a point.
package los computes line of sight densities oriented in rings around a point.
geom
package geom contains routines for computing geometric quantities.
package geom contains routines for computing geometric quantities.
sphere_halo
package sphere_halo is essentially a redo of the implementation of HaloProfiles found in the los package but with a different internal geometry kernel.
package sphere_halo is essentially a redo of the implementation of HaloProfiles found in the los package but with a different internal geometry kernel.
math
calc
package calc provides some basic calculus routines.
package calc provides some basic calculus routines.
interpolate
package interpolate provides routines for creating smooth analytic funcitons through sparse or noisy data.
package interpolate provides routines for creating smooth analytic funcitons through sparse or noisy data.
mat
mat contains routines for executing operations on matrices.
mat contains routines for executing operations on matrices.
sort
package sort provides functions for sorting and finding the median of float64 slices without the overhead of Go's interfaces.
package sort provides functions for sorting and finding the median of float64 slices without the overhead of Go's interfaces.
geom
package geom provides routines and types for dealing with an array of geometry-related tasks.
package geom provides routines and types for dealing with an array of geometry-related tasks.
io

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL