Skip to content

Releases: gusmaogabriels/mkin4py

mkin4py 2.0.0 — JAX microkinetics on PyPI

Choose a tag to compare

@gusmaogabriels gusmaogabriels released this 25 Sep 17:23

mkin4py 2.0.0 brings the JAX implementation to PyPI. A normal upgrade now installs the current solver instead of the legacy 2015 release.

python -m pip install --upgrade mkin4py

Requires Python 3.11 or later. JAX is installed as a dependency.

  • JIT-compiled QMR/Newton and RK4 steady-state solving, with the original model configuration API and analytic derivatives.
  • Forward- and reverse-mode steady-state sensitivities, including jit, grad, jacfwd, jacrev, hessian and vmap support.
  • Local JSON CLI for model setup and solving, and opt-in local usage counts with reliable concurrent writes.
  • Updated installation instructions and PyPI publishing through the repository's trusted release workflow.

Validation covers the historical ethylene epoxidation example, independent adsorption equilibria and sensitivities, solver failure behavior, and the local CLI. Release CI checks Linux with Python 3.11–3.13, macOS and Windows with Python 3.12, and the minimum JAX dependency. The wheel and source archive are checked with Twine, and the installed wheel is exercised outside the source tree.

The solver retains one normalized surface balance; RK4 integrates the Newton correction flow rather than physical time. Sensitivities require a converged isolated root with a nonsingular reduced Jacobian. See JAX execution and compatibility for details.

mkin4py 2.0.0a1 — JAX microkinetics and local CLI

Choose a tag to compare

@gusmaogabriels gusmaogabriels released this 15 Sep 04:01
a232831

JAX prerelease of the original microkinetic catalytic-system package.

  • Preserves Environment/MKmodel configuration, analytic derivatives, QMR/Newton corrections and RK4 steady-state solving.
  • Adds the local JSON CLI: mkin4py methods --json, mkin4py example --json, and mkin4py solve model.json --json.
  • Fixes current array compatibility, Hessian corrections, index validation and consistent nonconvergence results.
  • Tests the original ethylene epoxidation README example, analytic adsorption, autodiff derivatives and QMR against SciPy.
  • Keeps original theory and examples, with JAX imports and explicit 64-bit precision for stiff kinetics.

Requires Python >=3.11 and JAX >=0.4.38. The CLI runs locally. Compilation, warm kernel execution, Python API time and a fresh CLI process are measured separately.

This is an alpha release. The compiled steady-state loop does not provide reverse-mode differentiation through the entire solve; the pure rate kernels support autodiff. max_time is checked between compiled attempts. See docs/jax.md for usage and compatibility details.

Bug fix

Choose a tag to compare

@gusmaogabriels gusmaogabriels released this 11 Nov 17:25
36380c7

Fixed a bug that would lead to improper vector multiplication when handling a list and a numpy-array.

mkin4py v1.0

mkin4py v1.0 Pre-release
Pre-release

Choose a tag to compare

@gusmaogabriels gusmaogabriels released this 27 Oct 23:27
Update README.md