kuibit
kuibit: Analyzing Einstein Toolkit simulations with Python - Published in JOSS (2021)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
2 of 8 committers (25.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
Python 3 post-processing tools for simulations performed with the Einstein Toolkit
Basic Info
- Host: GitHub
- Owner: Sbozzolo
- License: gpl-3.0
- Language: AGS Script
- Default Branch: master
- Homepage: https://sbozzolo.github.io/kuibit/
- Size: 371 MB
Statistics
- Stars: 40
- Watchers: 4
- Forks: 13
- Open Issues: 9
- Releases: 16
Metadata Files
README.md
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. This
page is mainly intended for developers. Documentation for users is available
here.
Quick links
- Official documentation
- Tutorials
- Examples
- Archive with most recent examples and tools
- Changelog
- What people say about kuibit
- Users/developers group chat
Installation
kuibit is available in PyPI. To install it with pip
bash
pip3 install kuibit
If they are not already available, pip will install all the necessary dependencies.
kuibit follows
NEP29 and requires
Python >= 3.7.
If you intend to develop kuibit, see CONTRIBUTING.md and
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:
sh
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.
As of version 1.3.0, we adopt the following philosophy for git branches:
- master always corresponds to the latest stable version, the one available on
PyPI. Hotfixes are applied directly on master, and a new release is tagged.
- next is where most of the development occurs. This corresponds to the next
version of kuibit. next often experiences rebasing.
- Specific features that can be developed on their separate feature branch. This
will be merged into next.
The documentation of the development version is served at sbozzolo.github.io/kuibit/dev.
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
sh
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:
- Tutorial: Post-processing Cactus simulations with Python
- Introduction on kuibit - Einstein Toolkit Seminar, 2021
- Using kuibit
- kuibit - Einstein Toolkit Summer School, 2021
- Tutorial: Post-processing Cactus simulations with Python - Einstein Toolkit
Summer School, 2022
The Using
kuibit
series is a great place where to get started with kuibit.
Tests
kuibit comes with a suite of unit tests. To run the tests, (in a poetry shell),
sh
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)
sh
coverage run -m unittest
coverage html
This will produce a directory with the html files containing the analysis of
the coverage of the tests.
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 (as provided by ADSABS).
bibtex
@article{kuibit,
author = {{Bozzola}, Gabriele},
title = "{kuibit: Analyzing Einstein Toolkit simulations with Python}",
journal = {The Journal of Open Source Software},
keywords = {numerical relativity, Python, Einstein Toolkit, astrophysics, Cactus, General Relativity and Quantum Cosmology, Astrophysics - High Energy Astrophysical Phenomena},
year = 2021,
month = apr,
volume = {6},
number = {60},
eid = {3099},
pages = {3099},
doi = {10.21105/joss.03099},
archivePrefix = {arXiv},
eprint = {2104.06376},
primaryClass = {gr-qc},
adsurl = {https://ui.adsabs.harvard.edu/abs/2021JOSS....6.3099B},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
You can find this entry in Python with from kuibit import __bibtex__.
kuibit is built with NumPy, SciPy, and h5py, and optionally uses
matplotlib, mayavi, and numba. Consider citing these packages too.
Disclaimer
kuibit is developed as professional tool that can be used for research to be
published in peer-reviewed journals. As such, kuibit is tested to ensure that
results are scientifically sound. However, we do not guarantee that the entirety
of the software is correct and does what it is intended to do. Hence, users are
strongly recommended to perform their independent validations and to report any
problem.
Owner
- Name: Gabriele Bozzola
- Login: Sbozzolo
- Kind: user
- Location: San Francisco, CA
- Company: Amazon Web Services, Center for Quantum Computing
- Website: sbozzolo.github.io
- Repositories: 6
- Profile: https://github.com/Sbozzolo
Applied Scientist at the Amazon Center for Quantum Computing || Passionate about building reliable and user-friendly scientific software (and Emacs, of course)
JOSS Publication
kuibit: Analyzing Einstein Toolkit simulations with Python
Tags
Python Einstein Toolkit Cactus numerical relativity astrophysicsCitation (CITATION.cff)
# YAML 1.2
---
authors:
-
affiliation: "Department of Astronomy, University of Arizona, Tucson"
family-names: Bozzola
given-names: Gabriele
orcid: "https://orcid.org/0000-0003-3696-6408"
cff-version: "1.1.0"
date-released: 2021-04-12
doi: "10.21105/joss.03099"
keywords:
- "Numerical Relativity"
- Python
- "Einstein Toolkit"
- Astrophysics
- Cactus
- "General Relativity"
- "Gravitational-wave Astronomy"
license: "GPL-3.0+"
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/Sbozzolo/kuibit"
title: kuibit
version: "1.0.0"
...
GitHub Events
Total
- Create event: 6
- Release event: 1
- Issues event: 1
- Watch event: 2
- Issue comment event: 3
- Push event: 14
- Pull request event: 3
- Fork event: 2
Last Year
- Create event: 6
- Release event: 1
- Issues event: 1
- Watch event: 2
- Issue comment event: 3
- Push event: 14
- Pull request event: 3
- Fork event: 2
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Gabriele Bozzola | s****r@g****m | 718 |
| Eloisa Bentivegna | e****a@p****m | 2 |
| deepsource-autofix[bot] | 6****] | 1 |
| Yumeng Xu | x****x@g****m | 1 |
| Krishiv Bhatia | f****4@g****m | 1 |
| Jonah Miller | j****m@l****v | 1 |
| Cheng-Hsin Cheng | c****3@i****u | 1 |
| Benjamin Meyers | m****s | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 23
- Total pull requests: 20
- Average time to close issues: 11 days
- Average time to close pull requests: 26 days
- Total issue authors: 12
- Total pull request authors: 11
- Average comments per issue: 2.48
- Average comments per pull request: 2.05
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 6
Past Year
- Issues: 1
- Pull requests: 2
- Average time to close issues: about 9 hours
- Average time to close pull requests: 4 days
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 2.0
- Average comments per pull request: 2.5
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Sbozzolo (6)
- Yurlungur (5)
- AuroraDysis (2)
- irrationalnumbers (2)
- Brookluo (1)
- pdiener (1)
- assumpcaothiago (1)
- stevenrbrandt (1)
- svretina (1)
- bgiacoma (1)
- eloisabentivegna (1)
- ekwessel (1)
Pull Request Authors
- krishivbhatia (8)
- deepsource-autofix[bot] (6)
- eloisabentivegna (2)
- xuyumeng (2)
- meyersbs (2)
- konrad-topolski (1)
- chcheng3 (1)
- Yurlungur (1)
- irrationalnumbers (1)
- samueltootle (1)
- ekwessel (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 226 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 17
- Total maintainers: 1
pypi.org: kuibit
Read and analyze Einstein Toolkit simulations.
- Homepage: https://github.com/sbozzolo/kuibit
- Documentation: https://sbozzolo.github.io/kuibit
- License: GPL-3.0-or-later
-
Latest release: 1.5.1
published 8 months ago
Rankings
Maintainers (1)
Dependencies
- 148 dependencies
- Sphinx ^3.2.1 develop
- black ^20.8b1 develop
- coverage ^5.3 develop
- flake8 ^3.9.2 develop
- isort ^5.0.0 develop
- jedi ^0.17.2 develop
- jupyter ^1.0.0 develop
- mayavi ^4.7.4 develop
- nbsphinx ^0.8.6 develop
- snakeviz ^2.1.0 develop
- ConfigArgParse ^1.2.3
- argcomplete ^1.12.3
- h5py >=2.9.0
- lalsuite ^6.77
- matplotlib ^3.3.2
- motionpicture ^0.2.0
- numba ^0.53.1
- numpy --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.18.5" python: ">=3.6, <3.10" - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.21.4" python: ">=3.10"
- py-expression-eval ^0.3.14
- pycbc ^1.16.10
- python ^3.6.1, <3.11
- scipy ^1.5.2
- tikzplotlib --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: ">=0.9.5, <=0.9.12" python: ">=3.6, <3.7" - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^0.9.5" python: ">=3.7"
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- ad-m/github-push-action master composite
- snok/install-poetry v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- ad-m/github-push-action master composite
- pypa/gh-action-pypi-publish release/v1 composite
- snok/install-poetry v1 composite
- softprops/action-gh-release v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- codecov/codecov-action v2 composite
- snok/install-poetry v1 composite
