pybammsolvers
Python interface for the IDAKLU solver
What it is and what it does
pybammsolvers is a Python wrapper around the IDAKLU solver, a C/C++ implementation of implicit differential equation solvers built on SUNDIALS and SuiteSparse. It is designed for solving stiff ordinary differential equations, particularly those arising in battery electrochemistry and electrochemical modeling. The package bundles SUNDIALS and SuiteSparse as git submodules and compiles them during installation, so it carries medium install friction on platforms without precompiled wheels.
The package depends on casadi and numpy at runtime. It is actively maintained and supports Python 3.10 through 3.13 with precompiled wheels for common platforms. Local builds are possible but require a C/C++ toolchain and build dependencies (cmake, ninja, pybind11). The project includes unit tests, integration tests, and performance benchmarks.
Use it for:
- Solving stiff differential equations in battery electrochemistry simulations within PyBaMM.
- Benchmarking solver performance against released PyBaMM versions.
- Developing or testing new solver implementations on unsupported architectures via local builds.
- Integrating IDAKLU into custom electrochemical modeling workflows that require implicit ODE solvers.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pybammsolvers provides a Python interface to the IDAKLU solver, a C/C++ differential equation solver used in battery modeling applications.
Yes, if you are using PyBaMM or developing electrochemical models that require a robust implicit ODE solver. The package is actively maintained, has no known vulnerabilities, and offers precompiled wheels for modern Python versions on common platforms. Install friction is moderate but manageable for most developers; local builds require a C/C++ toolchain but are well-documented. The unclear license treatment warrants verification before use in proprietary projects.
Install
pybammsolvers on PyPI
pip
pip install pybammsolversuv
uv add pybammsolverspoetry
poetry add pybammsolversInstalling pybammsolvers
Before you install
Medium install friction: precompiled wheels are available for Python 3.10–3.13 on macOS (Intel and ARM), Linux (x86_64 and aarch64), and Windows, but local builds require cmake, ninja, pybind11, and system libraries (SUNDIALS, SuiteSparse). Active maintenance with a release 24 days ago.
Quickstart
pip install pybammsolvers
import pybammsolvers
# Use within PyBaMM or via casadi/numpy for ODE integration
Requires Python 3.10–3.13; local builds need cmake, ninja, pybind11, and system C/C++ compiler plus SUNDIALS/SuiteSparse libraries.
Verify before relying
- Whether pybammsolvers can be used standalone or is intended primarily as a PyBaMM dependency.
- Performance characteristics or solver stability guarantees compared to other ODE solvers.
- Documentation availability and completeness for the Python API.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (<3.15,>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — casadi, numpy |
| Maintenance | actively maintained — 24 days since the last release |
| First released | |
| Downloads | 119,307/month — #12,078 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pybammsolvers-0.9.0-cp310-cp310-macosx_10_13_x86_64.whl; pybammsolvers-0.9.0-cp310-cp310-macosx_11_0_arm64.whl; pybammsolvers-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pybammsolvers-0.9.0-cp310-cp310-manylinux_2_34_aarch64.whl; pybammsolvers-0.9.0-cp310-cp310-win_amd64.whl; pybammsolvers-0.9.0-cp311-cp311-macosx_10_13_x86_64.whl; pybammsolvers-0.9.0-cp311-cp311-macosx_11_0_arm64.whl; pybammsolvers-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pybammsolvers-0.9.0-cp311-cp311-manylinux_2_34_aarch64.whl; pybammsolvers-0.9.0-cp311-cp311-win_amd64.whl; pybammsolvers-0.9.0-cp312-cp312-macosx_10_13_x86_64.whl; pybammsolvers-0.9.0-cp312-cp312-macosx_11_0_arm64.whl; pybammsolvers-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pybammsolvers-0.9.0-cp312-cp312-manylinux_2_34_aarch64.whl; pybammsolvers-0.9.0-cp312-cp312-win_amd64.whl; pybammsolvers-0.9.0-cp313-cp313-macosx_10_13_x86_64.whl; pybammsolvers-0.9.0-cp313-cp313-macosx_11_0_arm64.whl; pybammsolvers-0.9.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pybammsolvers-0.9.0-cp313-cp313-manylinux_2_34_aarch64.whl; pybammsolvers-0.9.0-cp313-cp313-win_amd64.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
pybammPyBaMM is a Python framework for simulating…
permissive · top 15,000 on PyPI
torchdiffeqProvides PyTorch-based ODE solvers with…
permissive · top 5,000 on PyPI
qpsolversProvides a unified Python interface to solve…
copyleft · top 5,000 on PyPI
gekkoGEKKO is a Python package for optimization and…
permissive · top 15,000 on PyPI
pyamgPyAMG provides Algebraic Multigrid (AMG)…
permissive · top 15,000 on PyPI
diffraxDiffrax provides numerical solvers for…
permissive · top 15,000 on PyPI
nvidia-cusolverProvides CUDA solver native runtime libraries…
unclear · top 1,000 on PyPI
torchcdeProvides differentiable GPU-capable solvers for…
permissive · top 15,000 on PyPI
nvidia-cusolver-cu12Provides CUDA solver native runtime libraries…
unclear · top 1,000 on PyPI
torchsdeSolves stochastic differential equations (SDEs)…
permissive · top 5,000 on PyPI