Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
792836c
core Pourbaix files
Apr 1, 2026
4251c17
pourbaix reference data
Apr 1, 2026
4b2738e
adding pourbaix tests
Apr 1, 2026
4daa926
add NBS database for aqueous reference with pyEQL.equilibrate()
Apr 1, 2026
796ba6e
update toml file with mp-api
Apr 1, 2026
0ffddb6
update deps
Apr 1, 2026
9db4cee
update toml file
Apr 1, 2026
70cc41c
update toml
Apr 1, 2026
77ecc97
update toml
Apr 1, 2026
ca527b2
update pourbaix deps
Apr 1, 2026
e75c4ee
skip mp-api for python3.10
Apr 1, 2026
e6a0b5b
Merge branch 'main' into pourbaix_pyEQL_v1.5
rkingsbury May 28, 2026
af0a1c5
Merge branch 'main' into pourbaix_pyEQL_v1.5
rkingsbury May 31, 2026
83d20e2
Merge remote-tracking branch 'origin/main' into pourbaix_pyEQL_v1.5
Aug 2, 2026
80bc9de
added compatibility test
Aug 2, 2026
6a2bb69
Merge branch 'main' into pourbaix_pyEQL_v1.5
SuixiongTay Aug 2, 2026
81760ba
handle tcl
Aug 2, 2026
b8c443d
Merge branch 'main' into pourbaix_pyEQL_v1.5
Aug 2, 2026
ed5b509
Merge remote-tracking branch 'origin/pourbaix_pyEQL_v1.5' into pourba…
Aug 2, 2026
8df06bb
added test for correction
Aug 2, 2026
8184ea6
added test and compatibility files
Aug 2, 2026
9d28efd
small edit
Aug 3, 2026
8218d01
small corrections
Aug 3, 2026
b112ebe
Merge branch 'main' into pourbaix_pyEQL_v1.5
SuixiongTay Aug 4, 2026
e41b444
fix mp-api test
Aug 4, 2026
372113a
fix mp-api tests
Aug 4, 2026
afae428
fix mp-api tests
Aug 4, 2026
2ef7023
correcting ion parsing from NBS
Aug 4, 2026
c382044
cleaning tests
Aug 4, 2026
1eecf31
cleaning tests
Aug 4, 2026
cac3a62
removed ion.py
Aug 4, 2026
8bdd5ff
modified compatibility and added tests
Aug 5, 2026
2842f3e
build(deps): bump cryptography from 48.0.0 to 50.0.0
dependabot[bot] Aug 5, 2026
181c30d
add compatibility and CorrectionsList test
Aug 5, 2026
cec9e3f
added tests in compatibility.py
Aug 5, 2026
7ddf161
Merge pull request #456 from KingsburyLab/dependabot/pip/cryptography…
rkingsbury Aug 5, 2026
b24e126
add tests for pourbaix_api
Aug 5, 2026
dc08dd2
add tests for compatibility
Aug 6, 2026
5619c01
add oxide tests
Aug 6, 2026
35f2292
Merge branch 'main' into pourbaix_pyEQL_v1.5
SuixiongTay Aug 6, 2026
4ee26d2
add tests in compatibility
Aug 6, 2026
fbad4c1
Merge remote-tracking branch 'origin/pourbaix_pyEQL_v1.5' into pourba…
Aug 6, 2026
0f02f95
added test for pourbaix_api
Aug 6, 2026
4e4a5d5
added test for pourbaix_api
Aug 6, 2026
7614897
added test on process_entry_inplace
Aug 6, 2026
b5c65a1
trigger CI
Aug 6, 2026
3f1b4af
added test for multielement entries
Aug 7, 2026
01f253d
cleaned commits
Aug 7, 2026
dccd6f5
Merge branch 'pourbaix' into pourbaix_pyEQL_v1.5
SuixiongTay Aug 8, 2026
b1a368e
clean commits
Aug 8, 2026
42b859b
clean commit
Aug 8, 2026
a000971
add ref_solid_mapping and tutorial
Aug 9, 2026
9aae99a
add ref_solid_mapping and tutorial
Aug 9, 2026
dfb992f
cleaned commits
Aug 9, 2026
6991929
clean commits
Aug 9, 2026
ce8d00c
skip equilibrated species
Aug 9, 2026
232ef74
add caco3 example, rename tutorials, and clean commits
Aug 9, 2026
67dfb38
clean commits
Aug 9, 2026
9c21c5d
clean notebooks
Aug 9, 2026
77e9098
clean commits
Aug 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/testing-pinned.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
pull_request:
branches:
- main
- pourbaix_pyEQL_v1.5
paths-ignore:
- CHANGELOG.md
- AUTHORS.md
Expand Down Expand Up @@ -41,7 +42,11 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e . --no-deps
pip install -e ".[testing]"

- name: Install pourbaix deps
if: matrix.python-version != '3.10'
run: pip install -e ".[pourbaix]"

- name: Run tests
run: |
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/testing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -e ".[testing]"

- name: Install pourbaix deps
if: matrix.python-version != '3.10'
run: pip install -e ".[pourbaix]"

- name: List installed requirements
run: |
pip freeze

- name: Run tests
run: |
if [[ "${{ matrix.python-version }}" == "3.13" ]]; then
Expand Down
281 changes: 281 additions & 0 deletions docs/examples/.ipynb_checkpoints/pyeql_tutorial_NaCl-checkpoint.ipynb

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please delete the checkpoint file (and/or edit .gitignore to correctly ignore them - this is actually a problem right now.

(btw, the checkpoint file exposed your MP API Key, so you might want to re-generate it)

Large diffs are not rendered by default.

1,039 changes: 1,039 additions & 0 deletions docs/examples/pyeql_tutorial_pourbaix_Ca-Mg-C.ipynb

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both notebooks look good! In this one, please add a short explanatory comment near the examples to explain why, in Example 1, you set comp_dict and conc_dict equal to one another, but in Examples 2 and 3, you set comp_dict to correspond to the target phase of interest.

Large diffs are not rendered by default.

387 changes: 387 additions & 0 deletions docs/examples/pyeql_tutorial_pourbaix_Na-K-Mg-Cl.ipynb

Large diffs are not rendered by default.

12 changes: 10 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,16 @@ testing = [
"mypy>1",
"ruff>0.0.100",
"tox<4",
"openpyxl",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think openpyxl should be moved to the pourbaix group?

]
pourbaix = [
"mp-api>=0.45.0",
]
docs = [
"sphinx>=3.2.1",
"sphinx-rtd-theme",
"myst-parser[linkify]",
]
docs = ["sphinx>=3.2.1", "sphinx-rtd-theme", "myst-parser[linkify]"]
full = ["rich"]

[build-system]
Expand Down Expand Up @@ -182,5 +190,5 @@ enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
warn_unreachable = true

[tool.codespell]
ignore-words-list = "nd,formate,Te,CaCl,CaF,ore"
ignore-words-list = "nd,formate,Te,CaCl,CaF,ore, teh,hte,hsi"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are teh,hte,hsi used intentionally? (it's fine to ignore them if necessary, but they don't look like any common abbreviations that I'm aware of)

skip = "tests/test_files/*,src/pyEQL/database/*"
2 changes: 1 addition & 1 deletion requirements.txt

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert this change to whatever the upstream branch has, unless this bump is required to make your changes work (this requirement will be updated separately elsewhere)

Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ contourpy==1.3.3
# via matplotlib
coverage==7.14.0
# via pytest-cov
cryptography==48.0.0
cryptography==50.0.0
# via paramiko
cycler==0.12.1
# via matplotlib
Expand Down
66 changes: 66 additions & 0 deletions src/pyEQL/pourbaix/MITCompatibility.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
Name: MIT
Advanced:
UCorrections:
O: #Based on burp version as of Feb 28 2011
Mn: -1.687
Fe: -1.723
Co: -1.751
Cr: -2.067
Mo: -3.531 # refit number.
W: -2.762
V: -1.764
Ni: -2.164
Nb: -1.259
Re: -1.177
Cu: -1.156
Ag: -0.324
Ta: -1.027 #Adjusted correction for Ta. Shyue May 24 2012
F: #Based on burp version as of Feb 28 2011
Mn: -1.687
Fe: -1.723
Co: -1.751
Cr: -2.067
Mo: -3.531 # refit number.
W: -2.762
V: -1.764
Ni: -2.164
Nb: -1.259
Re: -1.177
Cu: -1.156
Ag: -0.324
Ta: -1.027 #Adjusted correction for Ta. Shyue May 24 2012
S: #Based on burp version as of Feb 28 2011
Mn: -1.232
Fe: -1.113

#Fit energies for elements. Note that these must be energies per atom!
#Document the fits PROPERLY. Fits by default are done over all alkali, alkali earth, and Al.
#The whole set is ("Li", "Na","K","Rb", "Cs", "Mg", "Ca","Sr", "Ba","Al")
#Last update: Sep 13 2011 by Shyue Ping Ong
CompoundEnergies:
#O2: -4.25915626315
N2: -8.00185429481
F2: -1.42203822397
Cl2: -1.26486611357
H2: -3.302
SO3: -6.16649882299 #Sulfur corrections as of Jun 18 2014
SO2: -6.08728347651

OxideCorrections:
oxide: -0.66975
peroxide: -0.44317 #Corrections fit to Li2O2, Na2O2, K2O2, SrO2
superoxide: -0.13893 #Superoxide Corrections fit to CsO2, NaO2, KO2
ozonide: 0.00

# Entropic Correction term for gases.
# For H2O, energy is corrected such that the experimental formation energy of water of -2.46 eV is reproduced.
# H2 is corrected such that the experimental formation energy of water is reproduced.
AqueousCompoundEnergies:
O2: -0.316731
N2: -0.295729
F2: -0.313025
Cl2: -0.344373
Br: -0.235039
Hg: -0.234421
H2: -3.6018845
H2O: -4.972
43 changes: 43 additions & 0 deletions src/pyEQL/pourbaix/MPCompatibility.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Name: MP
Advanced:
UCorrections:
O:
Mn: -1.68085015096 #Fit to MnO, Mn3O4 and MnO2 (BURP:-1.687)
Fe: -2.733 #Fit to FeO and Fe2O3 (Fe3O4 probably wrong)
Co: -1.874 #Fit to cobalt monoxide, Co3O4 (BURP:-1.751)
Cr: -2.013 #Fit to Cr2O3 (CrO3 missing) (BURP: -2.067)
Mo: -3.531 #Fit to MoO3 and MoO2 (BURP: -2.668)
W: -4.351 #Fit to WO2 and WO3 (BURP: -2.762)
V: -1.682 #Fit to V2O3 and V2O5 (VO2 fit is way off) (BURP: -1.764)
Ni: -2.164 #Based on burp version as of Feb 28 2011
F:
Mn: -1.68085015096 #Fit to MnO, Mn3O4 and MnO2 (BURP:-1.687)
Fe: -2.733 #Fit to FeO and Fe2O3 (Fe3O4 probably wrong)
Co: -1.874 #Fit to cobalt monoxide, Co3O4 (BURP:-1.751)
Cr: -2.013 #Fit to Cr2O3 (CrO3 missing) (BURP: -2.067)
Mo: -3.531 #Fit to MoO3 and MoO2 (BURP: -2.668)
W: -4.351 #Fit to WO2 and WO3 (BURP: -2.762)
V: -1.682 #Fit to V2O3 and V2O5 (VO2 fit is way off) (BURP: -1.764)
Ni: -2.164 #Based on burp version as of Feb 28 2011

#Fit energies for elements. Note that these must be energies per atom!
#Document the fits PROPERLY. Fits by default are done over all alkali, alkali earth, and Al.
#The whole set is ("Li", "Na","K","Rb", "Cs", "Mg", "Ca","Sr", "Ba","Al")
#Last update: Sep 13 2011 by Shyue Ping Ong
CompoundEnergies:
#O2: -4.22986844926 #Fit to all except Cs, which is a serious outlier
N2: -7.95247218762 #Fit to Li3N, Mg3N2, Ca3N2, AlN
F2: -1.42055013381 #Fit to all.
Cl2: -1.25385097674 #Fit to all except AlCl3, which is not present in the database.
H2: -3.23973666138


OxideCorrections:
oxide: -0.70229 #Oxide Corrections fit to Li2O, Na2O, K2O, Rb2O, MgO, CaO, SrO, BaO, Al2O3 on 09/18
peroxide: -0.46622 #Peroxide Corrections fit to Li2O2, Na2O2, K2O2, SrO2 on 09/18
superoxide: -0.14598 #Superoxide Corrections fit to CsO2, NaO2, KO2 on 09/18
ozonide: 0.00


SulfideCorrections:
sulfide: -0.66346 #Sulfide Correction fit to Li2S, Na2S, K2S, Rb2S, CsS, MgS, CaS, BaS, Al2S3.
Binary file added src/pyEQL/pourbaix/NBS_Tables_Library.xlsx
Binary file not shown.
Loading
Loading