Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatically use reaction symmetry when necessary #62

Merged
merged 3 commits into from
Nov 24, 2020

Conversation

schneiderfelipe
Copy link
Member

This PR introduces automatic detection and usage of reaction symmetry (#8). The only thing it still lacks is some proper testing.

An important use case is an explicit-implicit aquation: n H2O + A <=> A·nH2O (I believe that if the product structure is strongly bound, results will be comfortably comparable to the experiment). I'll try to add a simple test like this soon.

Closes #8.

@schneiderfelipe schneiderfelipe added the enhancement New feature or request label Nov 24, 2020
@schneiderfelipe schneiderfelipe self-assigned this Nov 24, 2020
@schneiderfelipe schneiderfelipe linked an issue Nov 24, 2020 that may be closed by this pull request
@schneiderfelipe
Copy link
Member Author

Tests are now in place. Merging.

@schneiderfelipe schneiderfelipe merged commit 7ba6508 into dev Nov 24, 2020
@schneiderfelipe schneiderfelipe deleted the reaction-symmetry branch November 24, 2020 16:14
schneiderfelipe added a commit that referenced this pull request Jul 28, 2021
* Set build action to run on central and dev repositories

* Drop official support for PyPy3 (#53)

* Invert minor imaginary frequencies (#50)

* Use Rich library in the CLI (#47)

* Improve reporting capabilities

* Make get_y return a function and use a clever default for t_span (#48)

* Create dependabot.yml (#54)

* Solve a standard error due to randomness (#55)

* Test only on the oldest supported and latest Python versions

* Show initial and final concentrations in the output (#56)

* Simple justification of text in the output

* Automatically use reaction symmetry when necessary (#62)

* Automatically introduce reaction symmetry when it exists

* Add tests for get_reaction_entropies

* Ensure standard state corrections are correct (#64)

* Use bias in the CLI and make model objects immutable (#66)

* Make model objects immutable and improve dotdict

* Improve numerical stability when integrating the ODE system (#69)

* Use the default integrator in general

* Optionally use JAX for speed

* Use an exact Jacobian using JAX

* Use rtol and atol with solve_ivp

* Improve reaction rate constants for equilibria

* Allow the user to choose among ODE solvers

* Allow the user to choose a simulation time

* Improve CLI, plots, and some tests (#73)

* Enlarge the default max simulation time

* Base max. time and plot on active species

* Select plot points according to simulation profile

* Allow selection of tunneling correction in the CLI

* Use an integrated keyword for --plot

* Improve CLI help page

* Refactor and allow fixing concentrations of selected compounds (#74)

* Allow fixing concentrations of certain compounds

* Improve testing convert_rate_constant

* Improve tests and docs on equilibrium_constant

* Improve get_k and its tests and docs

* Change the default behavior of convert_rate_constant

* Always use rate constants as a vector

* Correct bug about equilibria adjustments

* Correct and improve regressions

* Reproduce some literature data as graphs

* Match results from the literature and simplify API

* Make flake8 more strict on function complexity

* Make CLI receive only biases in kcal/mol

* Optimize biases from experiments using get_bias

* Update documentation

* Update links (fix #82)

* Make it future-proof and compatible with RTDs

* Update docs with a new theme

* Use MIT license

* Make the program display a (better) startup notice

* Inform we use semantic versioning
schneiderfelipe added a commit that referenced this pull request Oct 13, 2021
* Set build action to run on central and dev repositories

* Drop official support for PyPy3 (#53)

* Invert minor imaginary frequencies (#50)

* Use Rich library in the CLI (#47)

* Improve reporting capabilities

* Make get_y return a function and use a clever default for t_span (#48)

* Create dependabot.yml (#54)

* Solve a standard error due to randomness (#55)

* Test only on the oldest supported and latest Python versions

* Show initial and final concentrations in the output (#56)

* Simple justification of text in the output

* Automatically use reaction symmetry when necessary (#62)

* Automatically introduce reaction symmetry when it exists

* Add tests for get_reaction_entropies

* Ensure standard state corrections are correct (#64)

* Use bias in the CLI and make model objects immutable (#66)

* Make model objects immutable and improve dotdict

* Improve numerical stability when integrating the ODE system (#69)

* Use the default integrator in general

* Optionally use JAX for speed

* Use an exact Jacobian using JAX

* Use rtol and atol with solve_ivp

* Improve reaction rate constants for equilibria

* Allow the user to choose among ODE solvers

* Allow the user to choose a simulation time

* Improve CLI, plots, and some tests (#73)

* Enlarge the default max simulation time

* Base max. time and plot on active species

* Select plot points according to simulation profile

* Allow selection of tunneling correction in the CLI

* Use an integrated keyword for --plot

* Improve CLI help page

* Refactor and allow fixing concentrations of selected compounds (#74)

* Allow fixing concentrations of certain compounds

* Improve testing convert_rate_constant

* Improve tests and docs on equilibrium_constant

* Improve get_k and its tests and docs

* Change the default behavior of convert_rate_constant

* Always use rate constants as a vector

* Correct bug about equilibria adjustments

* Correct and improve regressions

* Reproduce some literature data as graphs

* Match results from the literature and simplify API

* Make flake8 more strict on function complexity

* Make CLI receive only biases in kcal/mol

* Optimize biases from experiments using get_bias

* Update documentation

* Update links (fix #82)

* Make it future-proof and compatible with RTDs

* Update docs with a new theme

* Use MIT license

* Make the program display a (better) startup notice

* Inform we use semantic versioning
schneiderfelipe added a commit that referenced this pull request Oct 13, 2021
* Set build action to run on main and dev repositories

* Drop official support for PyPy3 (#53)

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Invert small imaginary frequencies (#50)

* Use Rich library in the CLI (#47)

* Use Rich library in the CLI

* Improve reporting capabilities

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Make get_y return a function and use a clever default for t_span (#48)

* Create dependabot.yml (#54)

* Solve a common error due to randomness (#55)

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Run tests on macOS as well (#45)

* Run all essential tests on macOS as well

* Test only on the oldest supported and latest Python versions

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Do not test on macOS anymore, only on Ubuntu/Linux (#57)

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Show initial and final concentrations in the output (#56)

* Simple justification of text in the output

* Show initial and final concentrations in the output

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Automatically use reaction symmetry when necessary (#62)

* Create a function for calculating reaction symmetries

* Automatically introduce reaction symmetry when it exists

* Add tests for get_reaction_entropies

* Ensure standard state corrections are correct (#64)

* Use bias in the CLI and make model objects immutable (#66)

* Use bias in the CLI

* Make model objects immutable and improve dotdict

* Improve numerical stability when integrating the ODE system (#69)

* Use the default integrator in general

* Optionally use JAX for speed

* Use an exact Jacobian using JAX

* Use rtol and atol with solve_ivp

* Improve reaction rate constants for equilibria

* Allow the user to choose among ODE solvers

* Allow the user to choose a simulation time

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Improve CLI, plots, and some tests (#73)

* Test more liquid viscosities

* Check and manage some TODOs and docs

* Enlarge the default max simulation time

* Base max. time and plot on active species

* Select plot points according to simulation profile

* Allow selection of tunneling correction in the CLI

* Use an integrated keyword for --plot

* Improve CLI help page

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>

* Refactor and allow fixing concentrations of selected compounds (#74)

* Allow fixing concentrations of certain compounds

* Improve testing convert_rate_constant

* Improve tests and docs on equilibrium_constant

* Improve testing eyring

* Improve get_k and its tests and docs

* Change default behavior of convert_rate_constant

* Always use rate constants as a vector

* Correct bug about equilibria adjustments

* Correct and improve regressions

* Reproduce some literature data as graphs

* Match results from the literature and simplify API

* Add a get_bias function for fitting experimental/reference kinetic data (#79)

* Make flake8 be more strict on function complexity

* Make CLI receive only biases in kcal/mol

* Optimize biases from experiments using get_bias

* Bump actions/setup-python from 1 to 2.2.2 (#85)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 1 to 2.2.2.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v1...v2.2.2)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Make documentation awesome 🎉 (#83)

* Set build action to run on central and dev repositories

* Drop official support for PyPy3 (#53)

* Invert minor imaginary frequencies (#50)

* Use Rich library in the CLI (#47)

* Improve reporting capabilities

* Make get_y return a function and use a clever default for t_span (#48)

* Create dependabot.yml (#54)

* Solve a standard error due to randomness (#55)

* Test only on the oldest supported and latest Python versions

* Show initial and final concentrations in the output (#56)

* Simple justification of text in the output

* Automatically use reaction symmetry when necessary (#62)

* Automatically introduce reaction symmetry when it exists

* Add tests for get_reaction_entropies

* Ensure standard state corrections are correct (#64)

* Use bias in the CLI and make model objects immutable (#66)

* Make model objects immutable and improve dotdict

* Improve numerical stability when integrating the ODE system (#69)

* Use the default integrator in general

* Optionally use JAX for speed

* Use an exact Jacobian using JAX

* Use rtol and atol with solve_ivp

* Improve reaction rate constants for equilibria

* Allow the user to choose among ODE solvers

* Allow the user to choose a simulation time

* Improve CLI, plots, and some tests (#73)

* Enlarge the default max simulation time

* Base max. time and plot on active species

* Select plot points according to simulation profile

* Allow selection of tunneling correction in the CLI

* Use an integrated keyword for --plot

* Improve CLI help page

* Refactor and allow fixing concentrations of selected compounds (#74)

* Allow fixing concentrations of certain compounds

* Improve testing convert_rate_constant

* Improve tests and docs on equilibrium_constant

* Improve get_k and its tests and docs

* Change the default behavior of convert_rate_constant

* Always use rate constants as a vector

* Correct bug about equilibria adjustments

* Correct and improve regressions

* Reproduce some literature data as graphs

* Match results from the literature and simplify API

* Make flake8 more strict on function complexity

* Make CLI receive only biases in kcal/mol

* Optimize biases from experiments using get_bias

* Update documentation

* Update links (fix #82)

* Make it future-proof and compatible with RTDs

* Update docs with a new theme

* Use MIT license

* Make the program display a (better) startup notice

* Inform we use semantic versioning

* Update docs & README.md (#87)

* Move docs to https://geem-lab.github.io/overreact-docs/

* Update README.md

Co-authored-by: Felipe S. S. Schneider <schneiderfelipe@posgrad.ufsc.br>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
schneiderfelipe added a commit that referenced this pull request Oct 13, 2021
* Create a function for calculating reaction symmetries

* Automatically introduce reaction symmetry when it exists

* Add tests for get_reaction_entropies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Detect reaction symmetry numbers
1 participant