Skip to content

Latest commit

 

History

257 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dev Dev Build Status # Paper

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.

Examples

  • 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

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.

Citation

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.

Contributing

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.

About

Hybrid ML models for thermodynamic property prediction

Topics

Resources

Stars

9 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages