Skip to main content

A python interface for solution chemistry

Project description

Read the Docs testing codecov Supported python versions DOI PyPI version status

pyEQL logo

A python interface for water chemistry

Description

The goal of pyEQL is to provide a stable, intuitive, easy to learn python interface for water chemistry that can be connected to a variety of different modeling engines

Specifically, pyEQL defines a Solution class to represent an aqueous electrolyte solution. The Solution class allows the user to manipulate solutions as Python objects, providing methods to populate them with solutes, calculate species-specific properties (such as activity and diffusion coefficients), and retrieve bulk properties (such as density, conductivity, or volume).

>>> from pyEQL import Solution
>>> s1=Solution({"Na+":"1 mol/L", "Cl-": "1 mol/L"})
>>> s1.density
<Quantity(1.03710384, 'kilogram / liter')>
>>> s1.conductivity
<Quantity(8.09523295, 'siemens / meter')>
>>> s1.osmotic_pressure.to('atm')
<Quantity(46.7798197, 'standard_atmosphere')>
>>> s1.get_amount('Na+', 'ug/L')
<Quantity(22989769.3, 'microgram / liter')>

pyEQL also includes a number of other utilities to support water chemistry analysis, including a built-in property database of diffusion coefficients, activity correction parameters, and other data on a variety of common electrolytes.

It is designed to be customizable and easy to integrate into projects that require modeling of chemical thermodyanmics of aqueous solutions. It aspires to provide a flexible, extensible framework for the user, with a high level of transparency about data sources and calculation methods.

Key Features

  • Build accurate solution properties using a minimum of inputs. Just specify the identity and quantity of a solute and pyEQL will do the rest.

  • "Graceful Decay" from more sophisticated, data-intensive modeling approaches to simpler, less accurate ones depending on the amount of data supplied.

  • Not limited to dilute solutions. pyEQL contains out of the box support for the Pitzer Model and other methods for modeling concentrated solutions.

  • Built in database containing hundreds of model parameters and physicochemical properties for different ions.

  • Units-aware calculations (by means of the pint library)

Documentation

Detailed documentation is available at https://pyeql.readthedocs.io/

Dependencies

  • Python 3.11+. This project will attempt to adhere to NumPy's NEP 29 deprecation policy for older version of Python.
  • pint - for units-aware calculations
  • pymatgen-core - periodic table and chemical formula information
  • phreeqpython - for PHREEQC-based speciation calculations
  • iapws - equations of state for water
  • monty - serialization and deserialization utilities
  • maggma - interface for accessing the property database
  • scipy - for certain nonlinear equation solvers

pyEQL is licensed under LGPL.

This project has been set up using PyScaffold 4.5. For details and usage information on PyScaffold see https://pyscaffold.org/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyeql-1.5.0.tar.gz (14.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyeql-1.5.0-cp313-cp313-win_amd64.whl (23.3 MB view details)

Uploaded CPython 3.13Windows x86-64

pyeql-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyeql-1.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (19.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyeql-1.5.0-cp313-cp313-macosx_11_0_arm64.whl (19.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyeql-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pyeql-1.5.0-cp312-cp312-win_amd64.whl (23.3 MB view details)

Uploaded CPython 3.12Windows x86-64

pyeql-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyeql-1.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (19.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyeql-1.5.0-cp312-cp312-macosx_11_0_arm64.whl (19.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyeql-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pyeql-1.5.0-cp311-cp311-win_amd64.whl (23.3 MB view details)

Uploaded CPython 3.11Windows x86-64

pyeql-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyeql-1.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (19.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyeql-1.5.0-cp311-cp311-macosx_11_0_arm64.whl (19.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyeql-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file pyeql-1.5.0.tar.gz.

File metadata

  • Download URL: pyeql-1.5.0.tar.gz
  • Upload date:
  • Size: 14.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyeql-1.5.0.tar.gz
Algorithm Hash digest
SHA256 77a49b20c7adf9432235406a2882d99c39b6dd6ca341121d2e5411ec196bbc59
MD5 57ac3828f715abd682677a0aa3ada2d8
BLAKE2b-256 143a8648c5d373ba52ee182ccdc09e9403a12bfba206141d9dab2406a06071f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0.tar.gz:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyeql-1.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 23.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyeql-1.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e6d1f92106f32e1df7efe52fa2d3bab625bed395cd85d0dff150960e8a2f4aec
MD5 43962a2c2692c1f7f91b0e849d32f6fc
BLAKE2b-256 03d93c6e64c6dfeccec06749cf437d6d56ce79c8ca79bd4c54c566329faad710

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 718cf51d5026bb0435223c643a1a2850dc1789edc596d90b01ca9d1f109c879a
MD5 161df752ff9701530816aa6a36e18d61
BLAKE2b-256 3407ca8ab29a5fb255f05be481a433e2c6f7f70764ef21b65cb721b12f41c2a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7146c6cc8d1328e7b47870c3ad1c699fc4c1bec54601a193d2fb8b6894f957bd
MD5 41474c0ce05e3f27fa08f0b9a6d8146c
BLAKE2b-256 3fd43b7f454765c0e4994537421aae7b2e35cc52f902068c8fa7cf3aff481cd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd3b6a47fa05d955831337532d2bf65bee44c7b1e03f9858a801fabe99294700
MD5 0d7091ba2a43af5695437dc84ef06a44
BLAKE2b-256 3f87b3fd76f37b0e4bb0f7fbde01e2b63b3afa13beed04691b4ed5ef53d0f142

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6ad433bb0d881a965a60cc7eb286b42087b7f343abd04e4e19efafb7dd4e0edc
MD5 9a4aa6cd5714185f855e4b60c6159f21
BLAKE2b-256 d430ab7516cd9ba2e7c14c7246f5699c95e999b3aa03cda1ffd0c7fd23f9b9cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyeql-1.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 23.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyeql-1.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ed000bd77203f5867f4ac56afbf562883c8e7eb088c23b323568e7cc3cd49a99
MD5 2d4b3d9b4ddc6908eeb41b1a404bfa93
BLAKE2b-256 ebb7c8ec4e45563c1603d726dfd128c6ecfaed704f46238e2975ed37500c6c51

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4fa754cfb26e4cdb05bf44111435913f7361f8fcd66ccbfc7b93b7f321f527ff
MD5 a7941603d5ab225c523c6bb447160992
BLAKE2b-256 d1824f8529f252787b622eb75992d36d17fda6f7a07d080c108c9c6cc1916b0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3b80c561059e86eabdf64d90625d66dd5a4dfc75fde495fe3fbee244ac1e8bd4
MD5 6c5fe2a7fbd1e47c3ddc83c21426c3f5
BLAKE2b-256 9267f8424f656611cfa8f48ff498d583f1ae3b97fca49d80e355da4896346c13

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6528dd721592ab06d8e29d7c979641e01b349232851851e625fbded7b373182d
MD5 b60db806cb20fadd6e9294c2af3d8202
BLAKE2b-256 a496617a63e072bb3068921825f74970f916df38883a437ad64855525c29482a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3da6fe86e8362fc1fbcfba63ef6689bef481e32199aa4491c8cf910e4ee2f83f
MD5 9d384fe3b661c5340e89ac25f33e0431
BLAKE2b-256 972d6adbf97652179187c04c974ca945ed1132a1fbb46988cd72d619d6502c0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyeql-1.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 23.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyeql-1.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9e0d5477b08ac5c45ed015fb647a0e5067f177c7d74cbbb01d84d40e8db969a2
MD5 a29c0f72750a050204e8743cd99d2c60
BLAKE2b-256 6eb339e4cb6378d3f8a3fd8e05a315f2b5a2a152774b84b5d7f810763ec22776

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 955bcd88990da8e9b2eca2561022ac7aa2610944dd2660ae86b0aef877660d7d
MD5 8a09efb28c55dccd5b8c7c208f448ad7
BLAKE2b-256 e2f8caf99298caa70c88f7f2c68fe38d277bfa62c9bb4dd52cee61310705bbcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d708cb7d87d4dcb89dbc21b63e99562daafbbdc47584062c92919386fd627792
MD5 9103f0205423e3fa732c027a134feaa7
BLAKE2b-256 08d54db84222cbd699412b46b53f2a94765f9514bad4664c79ba3a9de1674003

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81da13be591423605a855870b86915fd3a4a9ae18c25213ff2f80224ea4ece10
MD5 cd3e3839c62f49a45b83a09138b0edef
BLAKE2b-256 fdecb038cf520eebecda9e9ae9a7b2a9308ee16c6805bea9d34c261e56bd7653

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeql-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyeql-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f5a423447e1dc852d5345f2afe3715aaaaaac5cbbc1fbce79bbade9836bd51b9
MD5 a9602bf6d2cea44a7456a51587b9b56e
BLAKE2b-256 b08e2d4a64e35e51fe24ae2694de73022de02146fd0c20287b1f997e8f52afc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeql-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on KingsburyLab/pyEQL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page