Skip to content

Commit b697a0d

Browse files
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
1 parent d510ad8 commit b697a0d

File tree

201 files changed

+14249
-12122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

201 files changed

+14249
-12122
lines changed

.flake8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ max-line-length = 88
33
max-doc-length = 88
44
enable-extensions = H106,H203,H204,H205,H210,H904
55
extend-ignore = E203
6-
max-complexity = 17
6+
max-complexity = 10
77
doctests = True
88
docstring-convention = numpy
99
include-in-doctest = "*.rst"

.github/dependabot.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
9+
# Maintain dependencies for GitHub Actions
10+
- package-ecosystem: "github-actions"
11+
directory: "/" # Location of package manifests
12+
schedule:
13+
interval: "daily"
14+
# Raise pull requests for version updates
15+
# against the `dev` branch
16+
target-branch: "dev"
17+
18+
# Maintain dependencies for pip
19+
- package-ecosystem: "pip" # See documentation for possible values
20+
directory: "/" # Location of package manifests
21+
schedule:
22+
interval: "daily"
23+
# Raise pull requests for version updates
24+
# against the `dev` branch
25+
target-branch: "dev"

.github/workflows/pythonpackage.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,21 @@ name: build
55

66
on:
77
push:
8-
branches: [ master ]
8+
branches: [ main, dev ]
99
pull_request:
10-
branches: [ master ]
10+
branches: [ main, dev ]
1111

1212
jobs:
1313
build:
14-
15-
runs-on: ubuntu-latest
1614
strategy:
1715
matrix:
18-
python-version: [3.6, 3.7, 3.8, '3.x', 'pypy3']
16+
os:
17+
- ubuntu-latest
18+
# - windows-latest
19+
# - macos-latest
20+
python-version: [ 3.6, '3.x' ]
21+
22+
runs-on: ${{ matrix.os }}
1923

2024
steps:
2125
- uses: actions/checkout@v2

CONTRIBUTING.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Reporting issues
1717
----------------
1818

1919
The easiest way to get help with the project is to `open an issue on Github
20-
<http://github.com/schneiderfelipe/overreact/issues>`__:
20+
<http://github.com/geem-lab/overreact/issues>`__:
2121

2222
- Describe what you expected to happen.
2323
- If possible, include a `minimal reproducible example <https://stackoverflow.com/help/minimal-reproducible-example>`__
@@ -40,3 +40,4 @@ Submitting patches
4040
- Include a string like “Fixes #123” in your commit message (where 123 is the
4141
issue you fixed).
4242
See `Closing issues using keywords <https://help.github.com/articles/creating-a-pull-request/>`__.
43+
- Use `semantic versioning <https://semver.org/>`__.

COPYING

Lines changed: 0 additions & 674 deletions
This file was deleted.

INSTALL.rst

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@ The package, together with the above dependencies, can be installed from
1414

1515
pip install overreact
1616

17-
Optionally, extra functionality is provided by
18-
`thermo <https://github.com/CalebBell/thermo>`_::
17+
Optionally, extra functionality is provided such as a command-line interface
18+
and solvent properties::
1919

20-
pip install 'overreact[thermo]'
20+
pip install 'overreact[cli,fast,solvents]'
2121

22-
This last line installs thermo as well. thermo is used to calculate the
23-
dynamic viscosity of solvents in the context of the
24-
:doc:`tutorials/collins-kimball` for diffusion-limited reactions.
22+
This last line installs `Rich <https://github.com/willmcgugan/rich>`_,
23+
`JAX <https://jax.readthedocs.io/en/latest/index.html>`_ and
24+
`thermo <https://github.com/CalebBell/thermo>`_ as well.
25+
Rich is used in the command-line interface, JAX helps speedup calculations,
26+
and thermo is used to calculate the dynamic viscosity of solvents in the
27+
context of the :doc:`tutorials/collins-kimball` for diffusion-limited
28+
reactions.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2021 Felipe Silveira de Souza Schneider
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
|build|_
22

3-
.. |build| image:: https://github.com/schneiderfelipe/overreact/workflows/build/badge.svg
4-
.. _build: https://github.com/schneiderfelipe/overreact/actions?query=workflow:build
3+
.. |build| image:: https://github.com/geem-lab/overreact/workflows/build/badge.svg
4+
.. _build: https://github.com/geem-lab/overreact/actions?query=workflow:build
55

66
overreact
77
=========
@@ -13,7 +13,7 @@ overreact
1313
>>> from overreact import api
1414
>>> api.get_k("S -> E‡ -> S", {"S": "data/ethane/B97-3c/staggered.out",
1515
... "E‡": "data/ethane/B97-3c/eclipsed.out"})
16-
array([8.15810511e+10])
16+
array([8.16e+10])
1717

1818
The two lines above calculate the rate of methyl rotation in ethane at
1919
`B97-3c <https://doi.org/10.1063/1.5012601>`__.
@@ -23,5 +23,5 @@ The two lines above calculate the rate of methyl rotation in ethane at
2323
overreact uses precise thermochemical partition funtions and tunneling
2424
corrections.
2525
See the
26-
`installation instructions <https://schneiderfelipe.github.io/overreact/installation.html>`__
27-
and a `short introduction <https://schneiderfelipe.github.io/overreact/quickstart.html>`__.
26+
`installation instructions <https://geem-lab.github.io/overreact/installation.html>`__
27+
and a `short introduction <https://geem-lab.github.io/overreact/quickstart.html>`__.

ROADMAP.rst

Lines changed: 6 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
Initial code idea:
22

33
y0 = [1.0, 0.0]
4-
t_span = [0.0, 100.0]
54
freeenergies = [0.0, 20.0, -10.0]
65

76
model = parse("A -> A‡ -> B")
@@ -13,8 +12,8 @@ model = parse("A -> A‡ -> B")
1312
k = eyring(model.B @ freeenergies)
1413

1514
dydt = get_dydt(model, k)
16-
t, y, r = get_y(dydt, t_span, y0)
17-
y[:, -1]
15+
y, r = get_y(dydt, y0)
16+
y(y.t_max)
1817

1918
In some advanced tutorial, I might show how to create a polymerization model
2019
(Pn + P -> Pn+1‡ -> Pn+1) using data extrapolated from data on small to
@@ -40,12 +39,6 @@ I use flake8 to ensure style. The following plugins are used:
4039
I use black to ensure formatting. flake8 configuration is such that it is
4140
minimally compatible with black.
4241

43-
TODO
44-
----
45-
46-
[ ] Ensure raises are correct and documented.
47-
[ ] Select which functions are exposed in the final API.
48-
4942
Extras #1
5043
---------
5144

@@ -60,17 +53,6 @@ citation here).
6053
to 1000 times faster than the fastest reaction constant, but this might
6154
depend on a case-by-case basis, so the user should have some freedom here
6255

63-
Extras #2
64-
---------
65-
66-
TODO: promote reproducible science and get citations at the same time:
67-
generate a state file (checkpoint? choose a pretty name) that has all the
68-
basic data to reproduce anything. Things can be remade, retested, shared, etc
69-
with it. Furthermore, it might be useful locally as well if, as we override
70-
it by doing a similar calculation (e.g. in the same folder), we first check
71-
if files have changed (by, say, a hash) and only reread what has changed
72-
(say, because it has been recalculated).
73-
7456
The future CLI
7557
--------------
7658

@@ -159,7 +141,7 @@ in the future.
159141

160142
// All compound below will be read and the analysis will be made for all of
161143
// common temperatures in the logfiles. Logfiles are check for having the
162-
// same level of theory if possible (here MP2/6-311G(3d,2p)).
144+
// same level of theory if possible (here UMP2/6-311G(3d,2p)).
163145
$compounds
164146
[H3C·H·Cl]‡:
165147
logfile=ch4cl_ts_mp2_3d2p.out
@@ -247,69 +229,30 @@ collins-kimball for diffusion limit
247229
Marcus theory for electron transfer
248230
molar fractions for pH
249231

250-
Roadmap
251-
-------
252-
253-
The following is what I think how overreact will soon be:
254-
255-
io
256-
# standard structure-energy data <- many sources
257-
# read gibbs freeenergies and electronic energies, symmetry numbers, IRC potential energy surface, etc. from logfiles
258-
# databases? this might be a very simple set of utilities if tutorials are well written
259-
rates:
260-
def eyring(delta_freeenergy : np.ndarray, temperature : float) -> np.ndarray
261-
262232
Things I which cclib could read from ORCA logfiles
263233
--------------------------------------------------
264234
- Absolute free and electronic energies
265-
- Symmetry numbers
266235

267236
Approximations per paper
268237
------------------------
269238
Items with an * are not necessary in our present approach, or are
270239
incorporated in chunks compatible with our methodology, but the effects are
271240
still taken in consideration.
272241

273-
doi:10.1002/qua.25686 (EyringPy):
274-
- Partition function* (we read from logfiles)
275-
- Transition state theory (TST)
276-
- Gas to solution equilibrium constant correction
277-
- Gas to solution standard state correction
278-
- Reaction symmetry
279-
- Tunneling corrections:
280-
- Wigner
281-
- Eckart
282-
- Pre-reactive and product complexes* (we simulate kinetics)
242+
doi:10.1002/qua.25686:
283243
- Corrections for reactions in solution:
284244
- Diffusion effect through Collins-Kimball theory
285245
- Electron transfer through Marcus theory
286-
- Effect of pH (maybe solved by simulation)
287246
- Some of the above are from QM-ORSA for reactions in solution*
288247

289248
doi:10.1039/C5CP00628G:
290-
- Gas to solution standard state correction
291-
- Molecular symmetry numbers
292-
- Anharmonicity and low frequency modes
293-
- Conformations* (solved by simulation)
294-
- Molecular charge and pH
295-
- Solvation thermodynamics
296-
297-
doi:10.1016/0301-0104(94)00069-7:
298-
- Transition state theory
299-
- Eckart tunneling correction
300-
301-
doi:10.1021/acs.orglett.0c00367:
302-
- Sistematic adjustment of free energies
249+
- Anharmonicity
250+
- Molecular charge
303251

304252
doi:10.1021/acs.jpca.8b06092:
305-
- High level calculation
306253
- Variational transition state theory
307254
- Small curvature tunneling
308255

309-
doi:10.1021/jp8012464:
310-
- High level calculation
311-
- Wigner tunneling correction
312-
313256
doi:10.1021/acscatal.7b00115:
314257
- Degree of rate control
315258
- Degree of selective control
@@ -319,7 +262,6 @@ doi:10.1021/acscatal.7b00115:
319262
- Use of degree of rate control for screening catalysts
320263

321264
doi:10.1039/c8cs00398j (lots of interesting things, some highlighted below):
322-
- Microkinetic modeling
323265
- Apparent activation energy
324266
- Degree of rate control
325267
- Linear free energy relationships

data

Submodule data updated from 874f047 to f4c8d2d

0 commit comments

Comments
 (0)