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.4rc10.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.4rc10-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.4rc10-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.4rc10-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.4rc10-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.4rc10.tar.gz.

File metadata

  • Download URL: vineetb_pyeql-1.0.4rc10.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.4rc10.tar.gz
Algorithm Hash digest
SHA256 363be81f59718e4aec2009c9ab3c0b5d8dad0be1d537a01e76e1067c688b165a
MD5 9ef4477b2470999a64f11f4f94b14264
BLAKE2b-256 c34b1a13e2b75b392b7e8dcd54f53747d3a6048c3eeac7dcdcfec1cbbc2dd814

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc10-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7896f99015c98e1d2308c2f6768ed6fbefc43a0f59f0fa6acc7d096292de5c57
MD5 f08afa6e4977039390ce864a4a5be057
BLAKE2b-256 6c3adcd8aeea57cc216055826055e0b432867b89d2f449232bc22acae99cb7b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc10-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dacf7797bea6f6c8b4f0ffa96a6c9331fb376249424a30e6ddbcf0ac8c5dc1cc
MD5 b5935aef0c2f4f54cbc00bec615d484c
BLAKE2b-256 aaee5e683208cd22eb274bc4783a46808fe0f59b242fe800700ad02b4bdf73c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc10-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a82d4d0530e16e6d1786ec00d8726535a3dd951cf4e499f8426321b79a22f1df
MD5 7ef4fc67b5dfe10503b3d57f4b679d8f
BLAKE2b-256 6a56897705cfa700a6229c5ae95dbbb23d47a861a7054c8fc100b0956833917a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vineetb_pyeql-1.0.4rc10-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfb67747b10a07387bc767cfcb0f71cf94887f557468665a1aeb1e513eeb1d3d
MD5 cf414975bb655fe5db6bbb2e751843f8
BLAKE2b-256 78afe666093b334cf7b016f0a85aa309fdbd97ad8c1813356f7b318b43eedd85

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