This repository contains Julia implementations of hybrid ML models for thermodynamic property prediction integrated with Clapeyron.jl as the thermodynamic solver library.
The documentation for MLThermoProperties.jl can be found here.
An interactive website for MLPROP is available at https://ml-prop.mv.rptu.de.
-
VLE calculation with HANNA and GRAPPA: compute the bubble point of the equimolar mixture ethanol + benzene at 333.15 K, using HANNA for the activity coefficients and GRAPPA for the pure-component vapor pressures:
julia> using MLThermoProperties, Clapeyron julia> model = HANNA(["ethanol", "benzene"]; puremodel = GRAPPA) ogHANNA with 2 components: "ethanol" "benzene" Contains parameters: emb, scaler_T, nn, Mw julia> p, _, _, y = bubble_pressure(model, 333.15, [0.5, 0.5]); julia> p, y (74307.79100441566, [0.46363929375856405, 0.536360706241436])
-
Infinite-dilution diffusion coefficients with ESE: compute the infinite-dilution diffusion coefficient of ethanol in n-decane at 300 K:
julia> using MLThermoProperties, EntropyScaling, CoolProp julia> model = ESE(["ethanol", "n-decane"]) ESE with 2 components: "ethanol" "n-decane" Contains parameters: b_ij, Mw julia> inf_diffusion_coefficient(model, 1e5, 300.0; solute = "ethanol", solvent = "n-decane") 1.68527894058434e-9
More complete workflows, including p-x-y diagrams and temperature sweeps, are available in the documentation.
ChemBERTa.jl is a small, independently usable subpackage that provides a customized ChemBERTa-77M-MTR encoder for generating molecular embeddings from SMILES strings. It is used internally by the MLPROP models and can also be used directly:
using ChemBERTa
model = ChemBERTa.load()
embedding = model("CCCO")See the ChemBERTa.jl README for details.
If you use MLThermoProperties.jl, please cite the GitHub repository:
@misc{MLThermoProperties.jl,
author = {Sebastian Schmitt and contributors},
title = {MLThermoProperties.jl},
howpublished = {\url{https://github.com/se-schmitt/MLThermoProperties.jl}}
}An accompanying paper is in preparation and will be added here when available.
Bug reports, questions, feature requests, and improvements are welcome. Please open an issue to start a discussion or submit a pull request with a proposed change.