Python Multiscale Thermochemistry Toolbox (pMuTT)

The Python Multiscale Thermochemistry Toolbox (pMuTT) is a Python library for Thermochemistry developed by the Vlachos Research Group at the University of Delaware. This code was originally developed to convert ab-initio data from DFT to observable thermodynamic properties such as heat capacity, enthalpy, entropy, and Gibbs energy. These properties can be fit to empirical equations and written to different formats.

https://raw.githubusercontent.com/VlachosGroup/pMuTT/master/docs/source/logos/pmutt_web.png

Documentation

See our documentation page for examples, equations used, and docstrings.

Developers

Dependencies

  • Python3

  • Atomic Simulation Environment: Used for I/O operations and to calculate some thermodynamic properties

  • Numpy: Used for vector and matrix operations

  • Pandas: Used to import data from Excel files

  • xlrd: Used by Pandas to import Excel files

  • SciPy: Used for fitting heat capacities and generating smooth curves for reaction coordinate diagram

  • Matplotlib: Used for plotting thermodynamic data

  • pyGal: Similar to Matplotlib. Used for plotting interactive graphs

  • PyMongo: Used to read/write to databases

  • dnspython: Used to connect to databases

  • NetworkX: Used to plot reaction networks

  • More Itertools: Used for writing ranges for OpenMKM output.

  • PyYAML: Used to write YAML input files for OpenMKM.

Getting Started

  1. Install using pip (see documentation for more thorough instructions):

    pip install pmutt
    
  2. Look at examples using the code

  3. Run the unit tests.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Publications

  • J. Lym, G.R. Wittreich and D.G. Vlachos, A Python Multiscale Thermochemistry Toolbox (pMuTT) for thermochemical and kinetic parameter estimation, Computer Physics Communications (2019) 106864, https://doi.org/10.1016/j.cpc.2019.106864.

Contributing

If you have a suggestion or find a bug, please post to our Issues page with the enhancement_label or bug_label tag respectively.

Finally, if you would like to add to the body of code, please:

  • fork the development branch

  • make the desired changes

  • write the appropriate unit tests

  • submit a pull request.

Questions

If you are having issues, please post to our Issues page with the help_wanted_label or question_label tag. We will do our best to assist.

Funding

This material is based upon work supported by the Department of Energy’s Office of Energy Efficient and Renewable Energy’s Advanced Manufacturing Office under Award Number DE-EE0007888-9.5.

Special Thanks

  • Dr. Jeffrey Frey (pip and conda compatibility)

  • Jaynell Keely (Logo design)