Metadata-Version: 2.5
Name: CRNNondim
Version: 1.0.0
Summary: Automated non-dimensionalisation of polynomial dynamical systems via chemical reaction networks
Project-URL: Homepage, https://github.com/georgio-hawi/crnnondim
Project-URL: Repository, https://github.com/georgio-hawi/crnnondim
Author-email: Georgio Hawi <georgio.hawi@sydney.edu.au>, Martin Wechselberger <martin.wechselberger@sydney.edu.au>
License-Expression: MIT
License-File: LICENSE
Keywords: CRN,non-dimensionalisation,polynomial dynamical system
Requires-Python: <3.13,>=3.11.7
Requires-Dist: numpy<2,>=1.26.4
Requires-Dist: scipy<2,>=1.14.0
Requires-Dist: sympy<2,>=1.13.1
Description-Content-Type: text/markdown

# CRNNondim
CRNNondim is a Python library for automating the non-dimensionalisation of polynomial dynamical systems via chemical reaction networks (CRNs). It was developed by Georgio Hawi and Martin Wechselberger, with an accompanying paper available soon. Please direct all enquiries to georgio.hawi (at) sydney.edu.au.

Given a polynomial CRN, CRNNondim helps you move from human-readable reaction lists to carefully chosen dimensionless variables and parameters. You can analyse a proposed non-dimensionalisation, or ask the library to search for one that is optimal under a precise objective (for example, keeping parameters O(1) over a chosen time window).

CRNNondim provides tools to automate analysing and non-dimensionalising chemical reaction networks (CRNs). 
CRNNondim includes functions that let you:
- parse readable reaction network descriptions or a polynomial ODE system into a symbolic CRN-like ODE system (stoichiometry matrix `S`, reaction vector `V`, species vector `X`, and rate constants),
- analyse CRNs to derive algebraic constraints on concentration and time scales and construct non-dimensionalisations that minimise the number of free parameters,
- non-dimensionalise a CRN given an explicit choice of species scales, so you can test or refine hand-crafted scalings,
- search for optimal non-dimensionalisations using typical initial conditions and rate constants, targeting O(1) parameters over a specified time window
