guppy

module
v0.0.0-...-7eedc68 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2022 License: MIT

README

Guppy

Guppy is a compression algorithm designed to reduce the size of N-body simulations. For a typical cosmological simulation, guppy can reduce snapshots by a factor ten to fifteen in exchange for small, tightly controled errors on the positions and velocities of particles.

guppy will soon be ready for public use. Check back in 1-2 weeks

This github repository contains a command line program which can create compressed .gup files. It also contains libraries for reading these files in C, Python 3, and Go in the c/, python/, and go/ folders.

Instructions for installing and using guppy can be found in the docs/ folder:

  • docs/install.md: Installing the guppy command line program.
  • docs/run.md: Running the guppy command line program.
  • docs/c.md: Importing and using the C library for reading .gup files.
  • docs/python.md: Importing and using the Python library for reading .gup files.
  • docs/go.md: Importing and using the Go library for readign .gup files . Guppy is currently in verison 0.0.1. It may experience breaking changes and may have major bugs. The scientific paper on guppy is still being written.

FAQs

Where should I go for help if I can't compile guppy or if I think it isn't working correctly?

Please look through the Issues tab and see if someone else has encountered this problem before. If not, feel free to submit an issue there.

How should I acknowledge guppy if I use .gup files as part of a scientific paper?

We would appreciate a citation to the guppy code paper, XXXXXXXX, somewhere in your methods section.

Can I copy part of the code from the guppy repository into my software project?

Yes, guppy uses a permissive MIT license, so you can copy any part of it into your project, even if you plan to publish or sell it. However, you will need to include the text of the MIT license in that part of the code.

What should I do if my langauge doesn't have a .gup reader?

You will need to write it yourself. You can use the existing readers and the guppy code paper as references and should feel free to contact me if you have questions. If you write a reader, contact me and I will link to it here.

Directories

Path Synopsis
c
lib
package lib contains various functions needed by guppy and mpi_guppy.
package lib contains various functions needed by guppy and mpi_guppy.
config
package parse contains routines for parsing config files.
package parse contains routines for parsing config files.
eq
package eq is a simple package for telling whether two arrays are equal to one another.
package eq is a simple package for telling whether two arrays are equal to one another.
format
package format handles Guppy's miniature formatting languages for snapshot file, e.g:
package format handles Guppy's miniature formatting languages for snapshot file, e.g:
mpi
particles
package particles contains functions for manipulating particles with generic fields and ID-orderings.
package particles contains functions for manipulating particles with generic fields and ID-orderings.
snapio
package snapio contains functions for reading snapshot files.
package snapio contains functions for reading snapshot files.
thread
package thread contains functions useful for multi-threading.
package thread contains functions useful for multi-threading.

Jump to

Keyboard shortcuts

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