Skip to main content

Read and analyze Einstein Toolkit simulations.

Project description

DOI codecov Tests Documentation GPLv3 license Get help on Telegram PyPI version DeepSource

kuibit

kuibit is a Python library to analyze simulations performed with the Einstein Toolkit largely inspired by PostCactus. kuibit can read simulation data and represent it with high-level classes. For a list of features available, look at the official documentation. For examples and tools that are ready to be used, read the Experimental branch and examples section. The testimonials page collects short reviews about kuibit.

Installation

kuibit is available in PyPI. To install it with pip

pip3 install kuibit

If they are not already available, pip will install all the necessary dependencies.

The minimum version of Python required is 3.6.

If you intend to develop kuibit, follow the instruction below.

Development

For development, we use poetry. Poetry simplifies dependency management, building, and publishing the package.

To install kuibit with poetry, clone this repo, move into the folder, and run:

poetry install -E full

This will download all the needed dependencies in a sandboxed environment (the -E full flag is for the optional dependencies). When you want to use kuibit, just run poetry shell from within the kuibit directory. This will drop you in a shell in which you have full access to kuibit in "development" version, and its dependencies (including the one needed only for development). Alternatively, you can activate the virtual environment directly. You can find where the environment in installed running the command poetry env info --path in the kuibit directory. This is a standard virtual environment, which can be activated with the activate scripts in the bin folder. Once you do that, you will be able to use kuibit for anywhere.

Help!

Users and developers of kuibit meet in the Telegram group. If you have any problem or suggestion, that's a good place where to discuss it. Alternatively, you can also open an issue on GitHub.

Documentation

kuibit uses Sphinx to generate the documentation. To produce the documentation

cd docs && make html

Documentation is automatically generated after each commit by GitHub Actions.

We use nbsphinx to translate Jupyter notebooks to the examples. The extension is required. Note: Jupyter notebooks have to be un-evaluated. nbsphinx requires pandoc. If don't have pandoc, you should comment out nbsphinx in docs/conf.py, or compiling the documentation will fail.

Videos

Here is a list of videos describing kuibit and how to use it:

Tests

kuibit comes with a suite of unit tests. To run the tests, (in a poetry shell),

poetry run python -m unittest

Tests are automatically run after each commit by GitHub Actions.

If you want to look at the coverage of your tests, run (in a poetry shell)

coverage run -m unittest
coverage html

This will produce a directory with the html files containing the analysis of the coverage of the tests.

Experimental branch and examples

The git repo of kuibit has an experimental branch, which contains the version of kuibit that is currently under development (which will become 1.1.0). The main new features added are new modules to produce visualizations and to write non-interactive scripts. The branch also collects a large number of real-world scripts in the folder examples. When using kuibit 1.1.0, these codes are ready to be used for scientific analyses. However, given that the scripts rely on the experimental features only for parsing command-line arguments and to produce visualizations, the codes are also an excellent material to learn how to use the current stable version of kuibit.

What is a kuibit?

A kuibit (also known as kukuipad, meaning harvest pole) is the tool traditionally used by the Tohono O'odham people to reach the fruit of the Saguaro cacti during the harvesting season. In the same way, this package is a tool that you can use to collect the fruit of your Cactus simulations.

Credits

kuibit follows the same design and part of the implementation details of PostCactus, code developed by Wolfgang Kastaun. This fork completely rewrites the original code, adding emphasis on documentation, testing, and extensibility. The logo contains elements designed by freepik.com. We thank kuibit first users, Stamatis Vretinaris and Pedro Espino, for providing comments to improve the code and the documentation.

Citation

kuibit is built and maintained by the dedication of one graduate student. Please, consider citing kuibit if you find the software useful. You can use the following bibtex key.

@article{kuibit,
  doi = {10.21105/joss.03099},
  url = {https://doi.org/10.21105/joss.03099},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {60},
  pages = {3099},
  author = {Gabriele Bozzola},
  title = {kuibit: Analyzing Einstein Toolkit simulations with Python},
  journal = {Journal of Open Source Software},
  archivePrefix = {arXiv},
  eprint = {2104.06376},
  primaryClass = {gr-qc}
}

You can find this entry in Python with from kuibit import __bibtex__.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kuibit-1.1.1.tar.gz (337.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kuibit-1.1.1-py3-none-any.whl (347.9 kB view details)

Uploaded Python 3

File details

Details for the file kuibit-1.1.1.tar.gz.

File metadata

  • Download URL: kuibit-1.1.1.tar.gz
  • Upload date:
  • Size: 337.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for kuibit-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5271c1d16d980ecfdf3db85ed41b84f517a6f3ff40a3976130450b8aa138340d
MD5 15e1df616cfb2d742835bb3ba509e5fc
BLAKE2b-256 2cc593ce41c13e1f1bd451bfe33dcc848312416e7f2d6321c33367b85f79b840

See more details on using hashes here.

File details

Details for the file kuibit-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: kuibit-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 347.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for kuibit-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b22fb58deee167b2e5b66526714b718a0a44c8f20ddef8ecd4253dd713d0ed07
MD5 781a127fe2c52d1b37b747172f5f24cc
BLAKE2b-256 43c4e1b6758fa75059f48c880ea72e85341a58fe8d63886033a482398643903d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page