JESTER documentation#
JAX-accelerated equation of state inference and TOV solvers
jester performs fast and accurate Bayesian inference on the neutron star equation of state (EOS) using GPU-accelerated TOV solvers and samplers through jax.
Try it out!#
Try jester right away in your browser and infer the neutron star equation of state from GW170817 within 15 minutes — no installation required!
Want to run locally? Check the installation instructions below.
What’s in jester?#
jester combines flexible EOS parametrizations with GPU-accelerated TOV solvers and modern Bayesian samplers.
See the Overview guide for detailed explanations about what is implemented in the code.
Parametrize the equation of state of neutron star matter
⚙️ TOV solvers
Integrate neutron star structure equations
Multi-messenger astronomical observations
📊 Samplers
GPU-accelerated Bayesian inference
Curious for more?#
Check out the Constructing EOS and solving TOV equations to get familiar with using
jesterfor generating EOSs and solving TOV equations.Get familiar with the Bayesian inference workflow, starting from the Quick start guide.
Dive into the code itself in the API reference of jesterTOV
Installation#
jester depends on a specific fork of blackjax for nested sampling support,
which prevents publishing to PyPI. Instead, install the latest version by cloning the repository:
git clone https://github.com/nuclear-multimessenger-astronomy/jester
We recommend using uv for managing the Python environment and installing the package. Once uv is installed, create a virtual environment e.g. as follows:
uv venv --python=3.12 # Specify the Python version, if desired (optional)
source .venv/bin/activate # Activate the virtual environment to access the installed dependencies
The package can then be installed directly or in editable mode in case you want to modify the code or contribute to the development of jester:
cd jester
uv pip install -e . # Basic install for the core functionality (CPU-only)
Extra dependencies can be installed as follows:
uv pip install -e ".[cuda12]" # For GPU support (fast sampling)
uv pip install -e ".[dev]" # For developers (work on documentation, run tests,...)
Or using uv also as follows:
uv sync
uv sync --extra cuda12 # For GPU support (fast sampling)
uv sync --extra dev # For developers (work on documentation, run tests,...)
To run Bayesian inference, make sure to install support for CUDA or upgrade jax according to the
jax documentation page.
This should work fine by specifying the appropriate extra (.[cuda12]) when installing with uv.
Having trouble? Check out the FAQ and common pitfalls.
Contents#
Basic examples
Bayesian inference guide
API reference
Developer guide
- FAQ and common pitfalls
- Adding a new EOS model
- Adding a new TOV solver
- Adding a new likelihood
- Architecture overview
- Step 1: Create Likelihood class
- Step 2 (optional): Add data loading function
- Step 3: Update Configuration schema
- Step 4: Register in Likelihood factory
- Step 5: Write tests
- Step 6: Create example configuration
- Step 7: Documentation
- Checklist
- Common pitfalls
- Advanced: resampling during likelihood call
- Need Help?
- Documentation guide