pyEQL 1.1.3__tar.gz → 1.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyeql-1.1.3 → pyeql-1.1.5}/CHANGELOG.md +14 -0
- {pyeql-1.1.3/src/pyEQL.egg-info → pyeql-1.1.5}/PKG-INFO +1 -1
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/changelog.md +14 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/solution.py +2 -6
- {pyeql-1.1.3 → pyeql-1.1.5/src/pyEQL.egg-info}/PKG-INFO +1 -1
- {pyeql-1.1.3 → pyeql-1.1.5}/.coveragerc +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.gitattributes +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/dependabot.yml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/pull_request_template.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/release.yml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/workflows/post-process.yml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/workflows/release.yml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/workflows/testing.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.github/workflows/upgrade_dependencies.yml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.gitignore +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.pre-commit-config.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.readthedocs.yml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/.zenodo.json +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/AUTHORS.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/CITATION.cff +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/COPYING +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/LICENSE.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/MANIFEST.in +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/README.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/Makefile +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/_static/.gitignore +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/amounts.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/arithmetic.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/authors.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/chemistry.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/class_solution.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/conf.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/contributing.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/creating.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/database.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/engines.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/.ipynb_checkpoints/pyEQL_demo_1-checkpoint.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/.ipynb_checkpoints/pyeql_demo-checkpoint.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_database-checkpoint.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_osmotic_pressure-checkpoint.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/.ipynb_checkpoints/speedup-checkpoint.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/pyEQL_demo_1.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/pyeql_demo.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/pyeql_tutorial_database.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/pyeql_tutorial_osmotic_pressure.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/examples/speedup.ipynb +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/index.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/installation.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/internal.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/license.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/mixing.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/quickstart.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/readme.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/requirements.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/serialization.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/tutorials.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/docs/units.md +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/pyeql-logo.png +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/pyeql-logo.svg +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/pyproject.toml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.10.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.10_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.11.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.11_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.12.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.12_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.9.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/macos-latest_py3.9_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.10.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.10_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.11.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.11_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.12.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.12_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.9.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/ubuntu-latest_py3.9_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.10.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.10_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.11.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.11_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.12.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.12_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.9.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/requirements/windows-latest_py3.9_extras.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/setup.cfg +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/setup.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/__init__.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/activity_correction.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/database/geothermal.dat +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/database/llnl.dat +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/database/phreeqc_license.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/database/pyeql_db.json +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/engines.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/equilibrium.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/functions.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/presets/Ringers lactate.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/presets/normal saline.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/presets/rainwater.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/presets/seawater.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/presets/urine.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/presets/wastewater.yaml +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/salt_ion_match.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/solute.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL/utils.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL.egg-info/SOURCES.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL.egg-info/dependency_links.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL.egg-info/requires.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/src/pyEQL.egg-info/top_level.txt +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/conftest.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_activity.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_bulk_properties.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_debye_length.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_density.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_dielectric.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_effective_pitzer.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_equilibrium.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_functions.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_logging.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_mixed_electrolyte_activity.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_osmotic_coeff.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_phreeqc.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_salt_matching.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_solute.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_solute_properties.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_solution.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_utils.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tests/test_volume_concentration.py +0 -0
- {pyeql-1.1.3 → pyeql-1.1.5}/tox.ini +0 -0
|
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.5] - 2024-07-28
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `Solution`: Hotfix to remove a stray `assert` statement in `_adjust_charge_balance`
|
|
13
|
+
that would sometimes cause errors in`pH` charge balancing.
|
|
14
|
+
|
|
15
|
+
## [1.1.4] - 2024-07-28
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- `Solution`: Fix a bug in`pH` charge balancing that erroneously prevented charge
|
|
20
|
+
balancing from occurring in certain cases, and raised an error.
|
|
21
|
+
|
|
8
22
|
## [1.1.3] - 2024-07-28
|
|
9
23
|
|
|
10
24
|
### Fixed
|
|
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.5] - 2024-07-28
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `Solution`: Hotfix to remove a stray `assert` statement in `_adjust_charge_balance`
|
|
13
|
+
that would sometimes cause errors in`pH` charge balancing.
|
|
14
|
+
|
|
15
|
+
## [1.1.4] - 2024-07-28
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- `Solution`: Fix a bug in`pH` charge balancing that erroneously prevented charge
|
|
20
|
+
balancing from occurring in certain cases, and raised an error.
|
|
21
|
+
|
|
8
22
|
## [1.1.3] - 2024-07-28
|
|
9
23
|
|
|
10
24
|
### Fixed
|
|
@@ -2306,11 +2306,8 @@ class Solution(MSONable):
|
|
|
2306
2306
|
start_imbalance = C_hplus - K_W / C_hplus
|
|
2307
2307
|
new_imbalance = start_imbalance - cb
|
|
2308
2308
|
# calculate the new concentration of H+ that will balance the charge
|
|
2309
|
-
# solve H^2 - new_imbalance H - K_W = 0, so a=1, b=-new_imbalance, c=-K_W
|
|
2310
|
-
#
|
|
2311
|
-
if new_imbalance**2 - 4 * 1 * K_W < 0:
|
|
2312
|
-
self.logger.error("Cannot balance charge by adjusting pH. The imbalance is too large.")
|
|
2313
|
-
return
|
|
2309
|
+
# solve H^2 - new_imbalance H - K_W = 0, so a=1, b=-new_imbalance, c=-K_W. Note that this is guaranteed to have real roots as
|
|
2310
|
+
# b^2-4ac > 0
|
|
2314
2311
|
new_hplus = max(
|
|
2315
2312
|
[
|
|
2316
2313
|
(new_imbalance + np.sqrt(new_imbalance**2 + 4 * 1 * K_W)) / 2,
|
|
@@ -2319,7 +2316,6 @@ class Solution(MSONable):
|
|
|
2319
2316
|
)
|
|
2320
2317
|
self.set_amount("H+", f"{new_hplus} mol/L")
|
|
2321
2318
|
self.set_amount("OH-", f"{K_W/new_hplus} mol/L")
|
|
2322
|
-
assert np.isclose(self.charge_balance, 0, atol=atol), f"{self.charge_balance}"
|
|
2323
2319
|
return
|
|
2324
2320
|
|
|
2325
2321
|
z = self.get_property(self._cb_species, "charge")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|