Skip to main content

High-throughput LLE prediction and screening using the COSMO-SAC model

Project description

ThermoSAC

TOC Figure

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/calculated including initial values and full miscibility curves.

Four example scripts (ex_01_GMixScanner.py to ex_04_HighThroughput-Tracing.py) demonstrating typical workflows.

Installation

  1. Install the cCOSMO library from NIST (required for COSMO‑SAC calculations).
  2. Install ThermoSAC via pip:
    pip install thermosac
    
    or clone the repository and install locally:
    git 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thermosac-0.0.2.dev1.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thermosac-0.0.2.dev1-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

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

Hashes for thermosac-0.0.2.dev1.tar.gz
Algorithm Hash digest
SHA256 9a4276ac07d700141d7744456963a3a03721f318a6dc220cb4adcf47d6037ed3
MD5 6553eee6e0d84e029dc958354c61eea6
BLAKE2b-256 3f222376e71741d048c4371daad7eb186d0a56efe712a51d769c5eeb5b362e2b

See more details on using hashes here.

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

Hashes for thermosac-0.0.2.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 501ed61a6ff877a53b569fc4897a4ecd479af087bf4ed0eb7bcb82da9012a4c1
MD5 059c951d759fef0d5bae666f26e183c9
BLAKE2b-256 587e9006e542b1a4d083f62df9165c96575e94a6a934fa33a8e2be912da1dd74

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