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!#

Open In Colab

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.

🧮 EOS models

Parametrize the equation of state of neutron star matter

⚙️ TOV solvers

Integrate neutron star structure equations

Curious for more?#

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#

Indices and tables#