Skip to content

Commit

Permalink
updated text
Browse files Browse the repository at this point in the history
  • Loading branch information
mtod92 committed Jan 22, 2024
1 parent 718ac62 commit 253df2e
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 9 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# equpy

`equpy` is a Python package specialized in solving multiple chemical equilibria.
`equpy` was designed to provide a user-friendly experience for a class-based implementation of the algorithm developed by [Thomas Wayne Wall](https://repository.mines.edu/bitstream/handle/11124/13991/Wall_10782543.pdf?sequence=1to) to handle the solution of mixed linear/non-linear systems of equations describing the simultaneous equilibration of multiple species reacting in a close system. `equpy` relies on numpy to handle data in matrix form and matplotlib to generate figures.
`equpy` is a package specialized in solving multiple chemical equilibria.
`equpy` was designed to provide a user-friendly experience for a modern implementation of the algorithm developed by [Thomas Wayne Wall](https://repository.mines.edu/bitstream/handle/11124/13991/Wall_10782543.pdf?sequence=1to) to handle the solution of mixed linear/non-linear systems of equations describing the simultaneous equilibration of multiple species reacting in a close system. `equpy` relies on numpy to handle data in matrix form and matplotlib to generate figures.

`equpy` was designed to be used by chemical, biological and physical/chemical researchers studying systems comprising multiple species reacting/interacting. This tool is particularly well-suited for researchers that (i) need to quickly calculate equilibria with a matrix-form input, and/or (ii) cannot rely on slower and more general solvers, for example when multiple kinetic traces have to be integrated as the species equilibrate and/or global fits on large sets of parameters have to be performed.

# Summary
Determining the distribution of multiple chemical species at equilibrium for a given system is a common problem that must be routinely addressed by scholars. While simple systems consisting of a few species and reactions can be solved manually, most of these problems require the definition and solution of higher-order equations and are intractable without reliable numerical methods, that can be slow and inefficient. In this work, we present straightforward Python and MATLAB implementations of the geometric-programming algorithm developed by [Thomas Wayne Wall](https://repository.mines.edu/bitstream/handle/11124/13991/Wall_10782543.pdf?sequence=1to) (1984) and we provide clear and easy-to-use scripts and examples for researchers approaching the problem. The performance and stability of the algorithm is tested versus out-of-the-box MATLAB numerical solver (*vpasolve*) and the solver available in chempy - one of the most complete open source chemistry packages available to this date - showing a speed-up as high as two orders of magnitudes.
Determining the distribution of multiple chemical species at equilibrium for a given system is a common problem that must be routinely addressed by scholars. While simple systems consisting of a few species and reactions can be solved manually, most of these problems require the definition and solution of higher-order equations and are intractable without reliable numerical methods, that can be slow and inefficient. In this work, we present straightforward Python and MATLAB implementations of the geometric-programming algorithm developed by [Thomas Wayne Wall](https://repository.mines.edu/bitstream/handle/11124/13991/Wall_10782543.pdf?sequence=1to) (1984) and we provide clear and easy-to-use scripts and examples for researchers approaching the problem. The performance and stability of the algorithm is tested versus out-of-the-box MATLAB numerical solver (*vpasolve*) and the solver available in chempy - one of the most complete open source chemistry packages available to this date - showing an execution time reduced by as much as two orders of magnitudes.

# Introduction
The mathematical treatment of multiple chemical equilibria is a problem that can be intimidating for inexperienced researchers and community members that are not familiar with computer science and linear algebra. While tutorials for the solution of simple systems are readily available on basic chemistry textbooks and online resources, the task of upscaling these is non-trivial.
Expand Down
1 change: 0 additions & 1 deletion equpy.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from typing import List, Tuple, Union, Optional, Dict
from utils import eq_system_builder


class EquationSystem:
def __init__(
self,
Expand Down
10 changes: 5 additions & 5 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ bibliography: paper.bib

# Summary

Determining the distribution of multiple chemical species at equilibrium for a given system is a common problem that must be routinely addressed by scholars. While simple systems consisting of a few species and reactions can be solved manually, most of these problems require the definition and solution of higher-order equations and are intractable without reliable numerical methods, that can be slow and inefficient. In this work, we present straightforward Python and MATLAB implementations of the geometric-programming algorithm developed by Thomas Wayne Wall (1984) and we provide clear and easy-to-use scripts and examples for researchers approaching the problem. The performance and stability of the algorithm is tested versus out-of-the-box MATLAB numerical solver (*vpasolve*) and the solver available in chempy - one of the most complete open source chemistry packages available to this date - showing a speed-up as high as two orders of magnitudes.
Determining the distribution of multiple chemical species at equilibrium for a given system is a common problem that must be routinely addressed by scholars. While simple systems consisting of a few species and reactions can be solved manually, most of these problems require the definition and solution of higher-order equations and are intractable without reliable numerical methods, that can be slow and inefficient. In this work, we introduce straightforward Python and MATLAB implementations of the geometric-programming algorithm developed by Thomas Wayne Wall (1984) and we provide clear and easy-to-use scripts and examples for researchers approaching the problem. The performance and stability of the algorithm is tested versus out-of-the-box MATLAB numerical solver (*vpasolve*) and the solver employed in *chempy* - one of the most complete open source chemistry packages available to this date - showing an execution time reduced by as much as two orders of magnitudes.

# Statement of need

`equpy` is a Python package specialized in solving multiple chemical equilibria.
`equpy` was designed to provide a user-friendly experience for a class-based
`equpy` is a package specialized in solving multiple chemical equilibria.
`equpy` was designed to provide a user-friendly experience for a modern
implementations of the algorithm developed by Thomas Wayne Wall to handle the
solution of mixed linear/non-linear systems of equations describing the simultaneous
equilibration of multiple species reacting in a close system. `equpy` relies
Expand Down Expand Up @@ -85,9 +85,9 @@ In a system with *n* different species $X_{1…n}$, the mass conservation relati
a_1[X_1] + a_2[X_2] + ... + a_n[X_n] = [X_i]_{tot}
\end{equation}

Or equivalently:
Or equivalently a summation over the species whose indexes belong to the set N = {1, 2, ..., n}:
\begin{equation}\label{eq:7}
\sum_{j=1}^n a_j[X_j] = [X_i]_{tot}
\sum_{j \epsilon N} a_j[X_j] = [X_i]_{tot}
\end{equation}

With *a* for a given species that does not take part of a mass conservation relationship being equal to zero.
Expand Down

0 comments on commit 253df2e

Please sign in to comment.