Metadata-Version: 2.4
Name: jaxmod
Version: 0.3.0
Summary: Lightweight utility functions for JAX arrays, batching, and pytrees
Project-URL: homepage, https://planetology.ethz.ch
Project-URL: documentation, https://jaxmod.readthedocs.io/en/latest
Project-URL: repository, https://github.com/ExPlanetology/jaxmod
Project-URL: issues, https://github.com/ExPlanetology/jaxmod/issues
Author-email: Dan J Bower <dbower@eaps.ethz.ch>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Keywords: equinox,jax,optimistix
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: <=4.0,>=3.11
Requires-Dist: equinox>=0.13.2
Requires-Dist: jax!=0.7.0,!=0.7.1,>0.4.38; sys_platform != 'darwin' or platform_machine != 'x86_64'
Requires-Dist: jax==0.4.38; sys_platform == 'darwin' and platform_machine == 'x86_64'
Requires-Dist: molmass>=2025.9.4
Requires-Dist: optimistix>=0.0.11
Requires-Dist: pandas>=2.3.0
Provides-Extra: docs
Requires-Dist: doc8>=2.0.0; extra == 'docs'
Requires-Dist: nbsphinx-link>=1.3.1; extra == 'docs'
Requires-Dist: nbsphinx>=0.9.6; extra == 'docs'
Requires-Dist: pypandoc>=1.15; extra == 'docs'
Requires-Dist: setuptools>=80.9.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=3.0.2; extra == 'docs'
Requires-Dist: sphinx>=8.2.3; extra == 'docs'
Requires-Dist: sphinxcontrib-bibtex>=2.6.5; extra == 'docs'
Description-Content-Type: text/markdown

# Jaxmod

[![Release 0.3.0](https://img.shields.io/badge/Release-0.3.0-blue.svg)](https://github.com/ExPlanetology/jaxmod/releases/tag/v0.3.0)
[![Python 3.11+](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://www.python.org/downloads/release/python-3110/)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-yellow.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![CI](https://github.com/ExPlanetology/jaxmod/actions/workflows/ci.yml/badge.svg)](https://github.com/ExPlanetology/jaxmod/actions/workflows/ci.yml)
[![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
[![bear-ified](https://raw.githubusercontent.com/beartype/beartype-assets/main/badge/bear-ified.svg)](https://beartype.readthedocs.io)
[![Test coverage](https://img.shields.io/badge/Coverage-93%25-brightgreen)](https://github.com/ExPlanetology/jaxmod)

## About
Jaxmod&mdash;short for "JAX for modelling"&mdash;is a lightweight "extension pack" for JAX-based scientific computing. It provides convenience utilities, wrappers, and conventions on top of the excellent [Equinox](https://docs.kidger.site/equinox/) and [Optimistix](https://docs.kidger.site/optimistix/) libraries, making them even easier to use for real scientific workflows.

The library was originally created to avoid code duplication in thermochemistry applications for planetary science. Many such problems share similar structural patterns&mdash;stoichiometric systems, batched equilibrium calculations, constraints, and differentiable solvers. Jaxmod consolidates this boilerplate into reusable components and establishes consistent conventions, whether for vectorising models efficiently or extending solver behaviour in a principled way.

## Documentation

The documentation is available online, with options to download it in EPUB or PDF format:

[https://jaxmod.readthedocs.io/en/latest/](https://jaxmod.readthedocs.io/en/latest/)

## Quick install

Jaxmod is a Python package that can be installed on a variety of platforms (e.g. Mac, Windows, Linux). It is recommended to install Jaxmod in a dedicated Python environment. Before installation, create and activate the environment, then run:

```pip install jaxmod```