Skip to content

Commit

Permalink
added ePC-SAFT (#229)
Browse files Browse the repository at this point in the history
  • Loading branch information
lruebli authored Apr 19, 2024
1 parent 1dc165a commit 4f108e5
Show file tree
Hide file tree
Showing 24 changed files with 4,504 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
strategy:
fail-fast: false
matrix:
model: [pcsaft, gc_pcsaft, pets, uvtheory, saftvrqmie, saftvrmie]
model: [pcsaft, epcsaft, gc_pcsaft, pets, uvtheory, saftvrqmie, saftvrmie]

steps:
- uses: actions/checkout@v4
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- Added SAFT-VR Mie equation of state.[#237](https://github.com/feos-org/feos/pull/237)
- Added ePC-SAFT equation of state. [#229](https://github.com/feos-org/feos/pull/229)

### Changed
- Updated model implementations to account for the removal of trait objects for Helmholtz energy contributions and the de Broglie in `feos-core`. [#226](https://github.com/feos-org/feos/pull/226)
Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,15 @@ dft = ["feos-dft", "petgraph"]
estimator = []
association = []
pcsaft = ["association"]
epcsaft = ["association"]
gc_pcsaft = ["association"]
uvtheory = ["lazy_static"]
pets = []
saftvrqmie = []
saftvrmie = []
rayon = ["dep:rayon", "ndarray/rayon", "feos-core/rayon", "feos-dft?/rayon"]
python = ["pyo3", "numpy", "quantity/python", "feos-core/python", "feos-dft?/python", "rayon"]
all_models = ["dft", "estimator", "pcsaft", "gc_pcsaft", "uvtheory", "pets", "saftvrqmie", "saftvrmie"]
all_models = ["dft", "estimator", "pcsaft", "epcsaft", "gc_pcsaft", "uvtheory", "pets", "saftvrqmie", "saftvrmie"]

[[bench]]
name = "state_properties"
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ The following models are currently published as part of the `FeOs` framework
|name|description|eos|dft|
|-|-|:-:|:-:|
|`pcsaft`|perturbed-chain (polar) statistical associating fluid theory|||
|`epcsaft`|electrolyte PC-SAFT|||
|`gc-pcsaft`|(heterosegmented) group contribution PC-SAFT|||
|`pets`|perturbed truncated and shifted Lennard-Jones mixtures|||
|`uvtheory`|equation of state for Mie fluids and mixtures|||
Expand Down
1 change: 1 addition & 0 deletions docs/api/eos.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ If you want to adjust parameters of a model to experimental data you can use cla
EquationOfState
EquationOfState.pcsaft
EquationOfState.epcsaft
EquationOfState.gc_pcsaft
EquationOfState.peng_robinson
EquationOfState.pets
Expand Down
36 changes: 36 additions & 0 deletions docs/api/epcsaft.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# `feos.epcsaft`

Utilities to build `ElectrolytePcSaftParameters`.

## Example

```python
from feos.epcsaft import ElectrolytePcSaftParameters

pure_path = 'parameters/epcsaft/held2014_w_permittivity_added.json'
binary_path = 'parameters/epcsaft/held2014_binary.json'
parameters = ElectrolytePcSaftParameters.from_json(['water', 'sodium ion', 'chloride ion'], pure_path, binary_path)
```

## Data types

```{eval-rst}
.. currentmodule:: feos.epcsaft
.. autosummary::
:toctree: generated/
Identifier
IdentifierOption
ChemicalRecord
SmartsRecord
ElectrolytePcSaftVariants
ElectrolytePcSaftRecord
ElectrolytePcSaftBinaryRecord
PureRecord
SegmentRecord
BinaryRecord
BinarySegmentRecord
ElectrolytePcSaftParameters
PermittivityRecord
```
1 change: 1 addition & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ These modules contain the objects to e.g. read parameters from files or build pa
:maxdepth: 1
pcsaft
epcsaft
gc_pcsaft
peng_robinson
pets
Expand Down
22 changes: 22 additions & 0 deletions parameters/epcsaft/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# ePC-SAFT Parameters

This directory contains files with parameters for ePC-SAFT equation of state.
The files named according to the pattern `NameYear.json` correspond to published parameters. The corresponding publication is provided in the [`literature.bib`](literature.bib) file.

## Notes

- Experimental data for the permittivity has not been part of the original publication and has been added.
- Ion permittivity has been set to 8.0 as in [Bülow et al. (2021)](https://www.sciencedirect.com/science/article/pii/S0378381221000297).
- Contains only univalent cations and anions from [Held et al. (2014)](https://www.sciencedirect.com/science/article/pii/S0263876214002469) and carbonate. Multivalent ions need to be added.
- Correlation for `k_ij` of water/Na+ and water/K+ has not been adapted from [Held et al. (2014)](https://www.sciencedirect.com/science/article/pii/S0263876214002469). Instead, a constant value at 298.15 K is assumed.

## Pure Substance Parameters
| file | model | publication |
| -------------------------------------------------------------------------- | ---------------------------------------- | :------------------------------------------------------: |
| [`held2014_w_permittivity_added.json`](held2014_w_permittivity_added.json) | parameters for univalent ions and water. | [🔗](https://doi.org/10.1016/j.cherd.2014.05.017) |

## Binary Parameters

| file | model | publication |
| ---------------------------------------------- | ----------------------------------------------- | :------------------------------------------------------: |
| [`held2014_binary.json`](held2014_binary.json) | binary parameters for univalent ions and water. | [🔗](https://doi.org/10.1016/j.cherd.2014.05.017) |
Loading

0 comments on commit 4f108e5

Please sign in to comment.