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.10+. This project will attempt to adhere to NumPy's NEP 29 deprecation policy for older version of Python.
  • pint - for units-aware calculations
  • pymatgen - 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

vineetb_pyeql-1.0.4rc14.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.

vineetb_pyeql-1.0.4rc14-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.0 MB view details)

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

vineetb_pyeql-1.0.4rc14-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.0 MB view details)

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

vineetb_pyeql-1.0.4rc14-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.0 MB view details)

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

vineetb_pyeql-1.0.4rc14-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (20.0 MB view details)

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

File details

Details for the file vineetb_pyeql-1.0.4rc14.tar.gz.

File metadata

  • Download URL: vineetb_pyeql-1.0.4rc14.tar.gz
  • Upload date:
  • Size: 14.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vineetb_pyeql-1.0.4rc14.tar.gz
Algorithm Hash digest
SHA256 1a0ba7ded1cf86b601335a4cb2691e86de908a4f92731363c5769c8eb4704a19
MD5 efd8c366dce93a59605f211a88e68b2a
BLAKE2b-256 753ec1181eb22171df6fcdc5f60c220b77d8be4627f6a079f038bbeff09d43e1

See more details on using hashes here.

File details

Details for the file vineetb_pyeql-1.0.4rc14-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc14-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de911df92a2963766a7ee23c91e7e2dfeaab6fd02921b149a9594c8573a5a97a
MD5 e7910042fae2a715f2d4018f8b206cc0
BLAKE2b-256 bfc232d31e60c65463993c181fe1d52174e450adf5a2ce6005534e0fa05281e6

See more details on using hashes here.

File details

Details for the file vineetb_pyeql-1.0.4rc14-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc14-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6ce4fb8757c33fba569c95a4a983d7f04994f890afab04d46480723ccf202cc
MD5 44b3b6dd50197d1e64d2decad3b3cc6d
BLAKE2b-256 ad9135d10c4f14ef3c35d8bc3f0ba45fca42bac3f754b4b2549ef7985b05ccf9

See more details on using hashes here.

File details

Details for the file vineetb_pyeql-1.0.4rc14-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc14-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de53ef4252c524fdc960cf677258932db0b5b30f79b5f7e2f3078fbc4aec72e4
MD5 5d0fd9292348d7a137c685e4912fde4c
BLAKE2b-256 f535be41c2137a749ba173422f7a80ee8bff109c96e8c175e70f13908bbad160

See more details on using hashes here.

File details

Details for the file vineetb_pyeql-1.0.4rc14-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc14-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee7ffc9753f99717470e2c937c94d098078b682ddf1af092efd73d9a759c5d4c
MD5 7618d3e069fcff7506254e8927b7fc35
BLAKE2b-256 c4c36b8049bd3b9e27b4db5676d12fdd0d3a8c78d2773bf60ac4dd75ef40a5c5

See more details on using hashes here.

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