High-throughput LLE prediction and screening using the COSMO-SAC model
Project description
ThermoSAC
ThermoSAC is a Python package for studying phase equilibria with the COSMO‑SAC model. The project accompanies the paper High‑Throughput Application and Evaluation of the COSMO‑SAC Model for Predictions of Liquid–Liquid Equilibria currently under review in Digital Discovery. It provides tools to analyse miscibility, solubility and phase stability of binary mixtures and reproduces the automated workflow described in the article.
Features
- COSMO-SAC activity model with optional dispersion and different combinatorial terms.
- Gibbs energy scanning to locate binodal and spinodal points.
- Liquid–liquid equilibrium tracing for miscibility curves.
- Solid–liquid equilibrium utilities for solubility predictions.
- High‑throughput modes for screening many systems in parallel.
- Extensive dataset – predicted LLE curves for 2478 binary systems with auxiliary metadata, plus the NIST/TRC reference dataset.
- Support for COSMO‑SAC‑2010 and COSMO‑SAC‑dsp, matching the variants assessed in the paper.
- Precomputed results in
data/calculatedincluding initial values and full miscibility curves.
Four example scripts (ex_01_GMixScanner.py to ex_04_HighThroughput-Tracing.py) demonstrating typical workflows.
Installation
- Install the
cCOSMOlibrary from NIST (required for COSMO‑SAC calculations). - Install ThermoSAC via pip:
or clone the repository and install locally:pip install thermosacgit clone https://github.com/ivanantolo/thermosac cd thermosac pip install .
Python 3.12 or later is required as indicated in the project configuration【F:pyproject.toml†L1-L10】.
Quick start
The snippet below mirrors the single-system scanning routine used for the paper's Figure 2.
import numpy as np
from thermosac import Component, Mixture, COSMOSAC
from thermosac.equilibrium.lle import GMixScanner
from thermosac.utils.spacing import spacing
# Set up a binary mixture
names = ["ETHYLENE_GLYCOL", "2,5-Dimethyltetrahydrofuran"]
mixture = Mixture(*[Component(n) for n in names])
model = COSMOSAC(mixture)
model._import_delaware(names, "./data/profiles/UD/sigma3")
# Scan Gibbs free energy of mixing
T = [200]
x = spacing(0, 1, 51, func_name="sigmoid", inflection=15)
scanner = GMixScanner(model, T, x)
initial_values, _ = scanner.find_all_binodal()
print(initial_values.head())
This snippet is adapted from the example script showing single‑system scanning (ex_01_GMixScanner.py).
Examples
Additional examples are provided in the repository:
- ex_01_GMixScanner.py – single system Gibbs-energy scan.
- ex_02_LLETracing.py – trace liquid–liquid equilibria using initial values.
- ex_03_HighThroughput-Screening.py – high-throughput binodal detection across multiple systems.
- ex_04_HighThroughput-Tracing.py – parallelized LLE tracing for a list of systems.
Each script contains plotting commands and annotations for reproducing the figures used in the accompanying paper. For instance, the single-system tracing routine loads initial values and computes miscibility curves as shown in lines 27–33 of ex_02_LLETracing.py.
Data and reproducibility
The data directory bundles everything needed to reproduce the analyses:
data/calculated– initial values, critical points and the full miscibility curves generated with ThermoSAC.data/experimental– the lists of binary systems and substances used in the evaluation together with the curated reference set from the NIST Thermodynamics Research Center.data/profiles– sigma-profiles used by the COSMO-SAC model.data/statistics– summary tables and helper scripts for assessing model accuracy.
These files allow you to reproduce the statistical analyses and figures presented in the paper.
Citation
If you use ThermoSAC in your research, please cite the forthcoming paper once published. A CITATION.cff file will be added after publication.
Contributing
Contributions and feedback are welcome through GitHub issues and pull requests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thermosac-0.0.2.dev1.tar.gz.
File metadata
- Download URL: thermosac-0.0.2.dev1.tar.gz
- Upload date:
- Size: 33.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a4276ac07d700141d7744456963a3a03721f318a6dc220cb4adcf47d6037ed3
|
|
| MD5 |
6553eee6e0d84e029dc958354c61eea6
|
|
| BLAKE2b-256 |
3f222376e71741d048c4371daad7eb186d0a56efe712a51d769c5eeb5b362e2b
|
File details
Details for the file thermosac-0.0.2.dev1-py3-none-any.whl.
File metadata
- Download URL: thermosac-0.0.2.dev1-py3-none-any.whl
- Upload date:
- Size: 2.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
501ed61a6ff877a53b569fc4897a4ecd479af087bf4ed0eb7bcb82da9012a4c1
|
|
| MD5 |
059c951d759fef0d5bae666f26e183c9
|
|
| BLAKE2b-256 |
587e9006e542b1a4d083f62df9165c96575e94a6a934fa33a8e2be912da1dd74
|