pyEQL


NamepyEQL JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/KingsburyLab/pyEQL
SummaryPython tools for solution chemistry
upload_time2024-03-17 20:35:10
maintainer
docs_urlNone
authorRyan Kingsbury
requires_python>=3.9
licenseLGPL3
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            [![Read the Docs](https://img.shields.io/readthedocs/pyeql)](https://pyeql.readthedocs.io/en/latest/)
[![testing](https://github.com/KingsburyLab/pyeql/workflows/testing/badge.svg)](https://github.com/KingsburyLab/pyeql/actions?query=workflow%3Atesting)
[![codecov](https://codecov.io/gh/KingsburyLab/pyeql/branch/main/graph/badge.svg?token=I7RP0QML6S)](https://codecov.io/gh/KingsburyLab/pyeql)
![Supported python versions](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8332915.svg)](https://doi.org/10.5281/zenodo.8332915)
[![PyPI version](https://badge.fury.io/py/pyEQL.svg)](https://badge.fury.io/py/pyEQL)
[![status](https://joss.theoj.org/papers/bdd9e247ea9736a0fdbbd5fe12bef7a6/status.svg)](https://joss.theoj.org/papers/bdd9e247ea9736a0fdbbd5fe12bef7a6)

<img src="pyeql-logo.png" alt="pyEQL logo" style="width:600px;"/>

# 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).

```python
>>> 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](https://pyeql.readthedocs.io/en/latest/database.html) containing hundreds of model
  parameters and physicochemical properties for different ions.

- Units-aware calculations (by means of the [pint](https://github.com/hgrecco/pint) library)

### Documentation

Detailed documentation is available at [https://pyeql.readthedocs.io/](https://pyeql.readthedocs.io/)

### Dependencies

- Python 3.9+. This project will attempt to adhere to NumPy's
  [NEP 29](https://numpy.org/neps/nep-0029-deprecation_policy.html) deprecation policy
  for older version of Python.
- [pint](https://github.com/hgrecco/pint) - for units-aware calculations
- [pymatgen](https://github.com/materialsproject/pymatgen) - periodic table and chemical formula information
- [phreeqpython](https://github.com/Vitens/phreeqpython) - for PHREEQC-based speciation calculations
- [iapws](https://github.com/jjgomera/iapws/) - equations of state for water
- [monty](https://github.com/materialsvirtuallab/monty) - serialization and deserialization utilities
- [maggma](https://materialsproject.github.io/maggma/) - interface for accessing the property database
- [scipy](https://www.scipy.org/) - for certain nonlinear equation solvers

## <!-- pyscaffold-notes -->

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/]().

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/KingsburyLab/pyEQL",
    "name": "pyEQL",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "",
    "author": "Ryan Kingsbury",
    "author_email": "kingsbury@princeton.edu",
    "download_url": "https://files.pythonhosted.org/packages/f6/18/26bdbf6e46607fccb2dd8d74a75bb09f7c0619d02580d469f5b716a84896/pyEQL-1.0.0.tar.gz",
    "platform": "any",
    "description": "[![Read the Docs](https://img.shields.io/readthedocs/pyeql)](https://pyeql.readthedocs.io/en/latest/)\n[![testing](https://github.com/KingsburyLab/pyeql/workflows/testing/badge.svg)](https://github.com/KingsburyLab/pyeql/actions?query=workflow%3Atesting)\n[![codecov](https://codecov.io/gh/KingsburyLab/pyeql/branch/main/graph/badge.svg?token=I7RP0QML6S)](https://codecov.io/gh/KingsburyLab/pyeql)\n![Supported python versions](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8332915.svg)](https://doi.org/10.5281/zenodo.8332915)\n[![PyPI version](https://badge.fury.io/py/pyEQL.svg)](https://badge.fury.io/py/pyEQL)\n[![status](https://joss.theoj.org/papers/bdd9e247ea9736a0fdbbd5fe12bef7a6/status.svg)](https://joss.theoj.org/papers/bdd9e247ea9736a0fdbbd5fe12bef7a6)\n\n<img src=\"pyeql-logo.png\" alt=\"pyEQL logo\" style=\"width:600px;\"/>\n\n# A python interface for water chemistry\n\n## Description\n\n**The goal of `pyEQL` is to provide a stable, intuitive, easy to learn python interface\nfor water chemistry that can be connected to a variety of different modeling engines**\n\nSpecifically, `pyEQL` defines a `Solution` class to represent an aqueous\nelectrolyte solution. The `Solution` class allows the user to manipulate solutions as\nPython objects, providing methods to populate them with solutes, calculate\nspecies-specific properties (such as activity and diffusion coefficients),\nand retrieve bulk properties (such as density, conductivity, or volume).\n\n```python\n>>> from pyEQL import Solution\n>>> s1=Solution({\"Na+\":\"1 mol/L\", \"Cl-\": \"1 mol/L\"})\n>>> s1.density\n<Quantity(1.03710384, 'kilogram / liter')>\n>>> s1.conductivity\n<Quantity(8.09523295, 'siemens / meter')>\n>>> s1.osmotic_pressure.to('atm')\n<Quantity(46.7798197, 'standard_atmosphere')>\n>>> s1.get_amount('Na+', 'ug/L')\n<Quantity(22989769.3, 'microgram / liter')>\n```\n\n`pyEQL` also includes a number of other utilities to support water chemistry analysis,\nincluding a **built-in property database** of diffusion coefficients, activity correction\nparameters, and other data on a variety of common electrolytes.\n\nIt is designed to be customizable and easy to integrate into projects\nthat require modeling of chemical thermodyanmics of aqueous solutions.\nIt aspires to provide a flexible, extensible framework for the user, with a\nhigh level of transparency about data sources and calculation methods.\n\n### Key Features\n\n- Build accurate solution properties using a minimum of inputs. Just specify\n  the identity and quantity of a solute and pyEQL will do the rest.\n\n- \"Graceful Decay\" from more sophisticated, data-intensive modeling approaches\n  to simpler, less accurate ones depending on the amount of data supplied.\n\n- Not limited to dilute solutions. pyEQL contains out of the box support for\n  the Pitzer Model and other methods for modeling concentrated solutions.\n\n- Built in [database](https://pyeql.readthedocs.io/en/latest/database.html) containing hundreds of model\n  parameters and physicochemical properties for different ions.\n\n- Units-aware calculations (by means of the [pint](https://github.com/hgrecco/pint) library)\n\n### Documentation\n\nDetailed documentation is available at [https://pyeql.readthedocs.io/](https://pyeql.readthedocs.io/)\n\n### Dependencies\n\n- Python 3.9+. This project will attempt to adhere to NumPy's\n  [NEP 29](https://numpy.org/neps/nep-0029-deprecation_policy.html) deprecation policy\n  for older version of Python.\n- [pint](https://github.com/hgrecco/pint) - for units-aware calculations\n- [pymatgen](https://github.com/materialsproject/pymatgen) - periodic table and chemical formula information\n- [phreeqpython](https://github.com/Vitens/phreeqpython) - for PHREEQC-based speciation calculations\n- [iapws](https://github.com/jjgomera/iapws/) - equations of state for water\n- [monty](https://github.com/materialsvirtuallab/monty) - serialization and deserialization utilities\n- [maggma](https://materialsproject.github.io/maggma/) - interface for accessing the property database\n- [scipy](https://www.scipy.org/) - for certain nonlinear equation solvers\n\n## <!-- pyscaffold-notes -->\n\npyEQL is licensed under LGPL.\n\nThis project has been set up using PyScaffold 4.5. For details and usage\ninformation on PyScaffold see [https://pyscaffold.org/]().\n",
    "bugtrack_url": null,
    "license": "LGPL3",
    "summary": "Python tools for solution chemistry",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://pyeql.readthedocs.io/",
        "Homepage": "https://github.com/KingsburyLab/pyEQL"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0de9ec62cdfef5a6a1e81bbdd0b1bd1f46c9ec0e8d1ee2704c2be4577f83f1ae",
                "md5": "29e5a3472e1a6880e83e420a58c8d471",
                "sha256": "00e007202793797a6e6b4c13f3f4bd32cd524997593104099badc51369bf599c"
            },
            "downloads": -1,
            "filename": "pyEQL-1.0.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "29e5a3472e1a6880e83e420a58c8d471",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.9",
            "size": 289755,
            "upload_time": "2024-03-17T20:35:07",
            "upload_time_iso_8601": "2024-03-17T20:35:07.400217Z",
            "url": "https://files.pythonhosted.org/packages/0d/e9/ec62cdfef5a6a1e81bbdd0b1bd1f46c9ec0e8d1ee2704c2be4577f83f1ae/pyEQL-1.0.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f61826bdbf6e46607fccb2dd8d74a75bb09f7c0619d02580d469f5b716a84896",
                "md5": "cb3519290bc99388b000a40a150b952d",
                "sha256": "a051d97201c233edd1900baebd69700936b86133c5bf0bce676a15f34402faef"
            },
            "downloads": -1,
            "filename": "pyEQL-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "cb3519290bc99388b000a40a150b952d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 642383,
            "upload_time": "2024-03-17T20:35:10",
            "upload_time_iso_8601": "2024-03-17T20:35:10.042329Z",
            "url": "https://files.pythonhosted.org/packages/f6/18/26bdbf6e46607fccb2dd8d74a75bb09f7c0619d02580d469f5b716a84896/pyEQL-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-17 20:35:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "KingsburyLab",
    "github_project": "pyEQL",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "pyeql"
}
        
Elapsed time: 0.21707s