Release Notes
Development Branch
Version 1.4.17
May 25, 2025
- Added feature where you can specify ‘pymatgen’ as the symmetry number for a gas molecule and Pymatgen will determine the symmetry number 
- Added a check that forces temperatures submitted for thermodynamic calculations to be astype=float to avoid calculation issues encountered when temperatures are entered as astype=int. 
Version 1.4.15
April 21, 2024
- Fixed reaction lists in BEP section of thermo.yaml openMKM file so reactions are all listed individually and no longer grouped. 
Version 1.4.14
February 8, 2024
- Fix equilibrium unittest warning messages 
Version 1.4.13
February 4, 2024
- Fix equilibrium class-Upper bound solver violation 
Version 1.4.11
February 3, 2024
- Fix unittest for equilibrium class-Missing thermdat file 
- Fix equilibrium class-Lower bound solver violation 
Version 1.4.10
February 2, 2024
- Improved NASA9 polynomial fit function 
- Overall clean-up of NASA9 deprecated code 
Version 1.4.9
October 25, 2023
- Fixed deprecated numpy function impacting nasa.py and shomate.py Conversion of an array with ndim > 0 to a scalar 
Version 1.4.7
August 23, 2023
- Fixed improper reaction and lateral interaction ID’s in write_CTI 
Version 1.4.6
August 15, 2023
- Adding missing dependency for openpyxl 
Version 1.4.5
June 23, 2023
- Updated .iteritems dpecricated function in Pandas 
- Cleanup unused imports 
Version 1.4.4
May 1, 2023
- CRITICAL UPDATE: Fixed Nasa polynomial fit issue for enthalpy and entropy when T_ref > T_mid 
Version 1.4.3
Mar. 19, 2023
- Updated PIP installation dependency requirements 
Version 1.4.2
Mar. 18, 2023
- Added new - Equilibriumclass that computes the equilibrium concentration on a network of species by minimizing the network Gibbs free energy while maintaining the total atom balance of the initial starting concentration of species
- Major GitHub documentation update including the new functionality from v1.3.2 and v1.4.0, corrections noted in the issues database, fixes to broken links, addition of a new “Helper Functions. section, and misc upgrades. 
Version 1.3.2
Jan. 26, 2023
- Added - S_elementsparameter to entropy and Gibbs free energy methods allowing you to compute an entropy and Gibbs free energy of formation for a single species by including the entropy of the elements in the species.
- Misc bug fixes 
Version 1.2.21
Jul. 3, 2020
- Miscellaneous bug fixes for - write_cti()
- Added preliminary support for OpenMKM YAML files. 
- Fixed bug where test OUTCAR file was not present. 
- Added - ads_act_methodto- write_surf()and- write_EA()to allow users to specify a different method to calculate activation energies for surface versus adsorption reactions.
Version 1.2.20
May 12, 2020
- Added sensitivity analysis options in - write_cti()
- Added ability to arbitrarily specify pre-exponential constant and activation energy in - SurfaceReaction
- Reduced complexity of assigning reaction IDs to - SurfaceReaction. Before, the ID would be renamed if it had a BEP associated with it. Changed the behavior to just assign numerical values.
Version 1.2.19
Apr. 8, 2020
- Fixed bug where - LSRcould not be imported in- read_excel().
- Updated - iosections to incorporate Pathlib library
- Added helper functions in - omkmto organize phases
- Fixed bug where slopes and y intercepts were switched for - PiecewiseCovEffectwhen writing CTI files.
- Fixed bug in - write_surf()where- n_sitescould be written as a float
- Updated OpenMKM IO example 
Version 1.2.18
Jan. 31, 2020
- Hotfix to correct broken links in documentation. 
Version 1.2.17
Jan. 31, 2020
- Added more descriptive warning messages when incorrect temperature values are passed to - Nasa,- Nasa9, and- Shomate.
- Fixed bug where the conversion factor for Hartrees was incorrect. 
- Added extra parameters for OpenMKM IO. 
- Added helper functions for OpenMKM IO to assign phases easily. 
- Added a helper method in - IdealGasand- StoichSolidto only assign a reaction to the phase if all the species belong to that phase.
- Fixed outdated code in Chemkin example and OpenMKM example. 
- Reorganized documentation to use stubs. Shorter pages should hopefully make the documentation easier to navigate. 
Version 1.2.16
Dec. 9, 2019
- Hotfix to correct a typo for PyYAML version required. 
Version 1.2.15
Dec. 5, 2019
- Added - write_yaml()to write YAML files for OpenMKM.
- Added warning for - read_excel()if the header is blank but the cells are occupied.
- Fixed bug in - read_excel()where- modelwas not correctly initialized with- StatMech().
- Added the generic method, - set_dict_value()to specify dictionaries in- read_excel()
- Removed redundant statements involving returning dictionaries in functions to process Excel data. 
- Fixed warning raised whenever CpoR = 0 when fitting empirical polynomials. 
Version 1.2.14
Oct. 25, 2019
- Added functionality to write files (such as - write_thermdat()) can return a string containing the file if- filenameis not specified.
- Bug fix where - from_modelfor- Nasaand- Shomatereturned errors. The fix was related to incorrect datatyping for- misc_models.
- Improved - Shomateto allow users to specify the units for the polynomial coefficients.
- Energies from Gaussian input functions ( - gaussian) was originally in Hartrees. Changed to allow users to specify what unit they desire (default in eV).
- Added functionality to write BEP relationships to OpenMKM CTI files. 
- Restructured OpenMKM CTI writer to be more robust when specifying custom IDs 
- Added functionality to remove leading and trailing spaces when reading from Excel sheets since users found this error hard to pick up. 
Contributors
- Qiang Li (lqcata) 
Version 1.2.13
Oct. 2, 2019
- Fixed bug where small non-zero rotational inertia modes were chosen preferentially over larger contributing modes. 
- Fixed bug where presets had to be specified before statistical mechanical arguments. Now, the preset will not overwrite any previously set values. 
- Updated - read_thermdat()to allow the user to return the- Nasaobjects as a list, tuple, or dictionary.
- Updated - write_thermdat()to accept a list or a dictionary of- Nasaobjects
- Implemented from_model method in - Nasaand- Shomateclasses so empirical objects can be created from- StatMechobjects as well as other empirical objects. The- from_statmechmethod is deprecated.
- Added more descriptive warnings and errors. 
- Created - GasPressureAdjso entropy and Gibbs energy of gas-phase empirical objects (like- Shomateand- Nasa) are dependent on pressure. This object is assigned automatically to- misc_modelsif- phaseis ‘g’ or ‘gas’ and the- add_gas_P_adjcan be set to False if users do not wish to assign this object automatically.
- Thermodynamic quantities of individual species can also be calculated on a per mass basis (i.e. users can calculate quantities in J/g, cal/kg, etc.). The object must contain a dictionary of its composition in - elementsfor this functionality.
- Fixed broken hyperlinks. 
Contributors
- Geun Ho Gu (googhgoo) 
Version 1.2.12
Aug. 22, 2019
- Refactored - write_thermdatso that it is simpler to understand
- Implemented - Nasa9and- SingleNasa9polynomials
- Added preliminary CTI file writer for Cantera and OpenMKM 
- Added Binder notebooks to Examples page so users can try pMuTT before installing 
- Fixed bug where - StatMechwas not passed when modes were specified indivudally in spreadsheets.
Contributors
Xenhua Zhang (xenhua)
Version 1.2.11
Jun. 18, 2019
- Added xlrd dependency so spreadsheets can be read using pandas 
- Updated documentation page with NAM 2019 instructions. 
Version 1.2.10
Jun. 13, 2019
- Another hotfix to fix a bug where the version was not incremented correctly 
Version 1.2.9
Jun. 13, 2019
- Hotfix where pypi created the folder in the old case (pMuTT) instead of lower case (pmutt) 
Version 1.2.8
Jun. 13, 2019
- Importing from pMuTT is now all in lowercase. (i.e. - import pmuttinstead of- import pMuTT)
Version 1.2.7
Jun. 11, 2019
- Added documentation page for more verbose installation instructions. 
- Updated - networkto use graph theory approach using states as nodes
- Bug fix for - LSRto handle inputs that are not pmutt model objects
- Added ability to create interactive plots with Pygal 
- Updated - GroundStateElecto read- potentialenergyfrom inputted- Atomsobject.
Version 1.2.6
Apr. 26, 2019
- Moved - referencesattribute from empirical classes to- StatMech
- Changed - mix_modelsattribute to- misc_modelsin indicating any model object can be used
- Implemented - DebyeViband- ConstantModeclasses
- Restructured - BEPobject to act as a transition state species in- Reactionobjects
- Implemented - LSRobject
- Added option to calculate pre-exponential factor using ratio of partition functions or entropy of activation 
- Added option to use electronic energy as descriptor for - BEPobject
- Added some imperial unit functionality to - pmutt.constantsmodule
- Renamed - from_parameter and- toparameter in- pmutt.constants.convert_unit()to- initialand- final
- Added ability to import individual translational, rotational, vibrational, electronic and nuclear modes to Excel 
- Renamed - pmutt.statmech.trans.IdealTransto- FreeTrans
- Renamed - pmutt.statmech.elec.IdealElecto- GroundStateElec
- Renamed - pmutt.statmech.nucl.IdealNuclto- EmptyNucl
Version 1.2.5
Mar. 21, 2019
- Renamed - pmutt.io_module to- pmutt.io
- Renamed - pmutt.io_.jsoniomodule to- pmutt.io.json
- Added preliminary IO support for MongoDB in module: - pmutt.io.db
- Bug fixes for Chemkin IO behavior 
Version 1.2.4
Mar. 11, 2019
- Hotfix to correct Chemkin IO behavior 
Version 1.2.3
Feb. 25, 2019
- Added - smilesattribute to- StatMechand- EmpiricalBaseclasses
- Added functions to write Chemkin surf.inp, gas.inp, and EAs.inp files 
- Added - CovEffectclass to model coverage effects and integrated it with- StatMechand- EmpiricalBaseclasses
- Added - include_ZPEparameter to- get_EoRT,- get_E,- get_delta_EoRTand- get_delta_Efor the- StatMechclass and- Reactionclass to add zero-point energy in calculations
- Renamed private methods - _get_delta_quantityand- _get_state_quantityto public methods- get_delta_quantityand- get_state_quantityin- Reactionclass
- Added generic method - get_quantityto- StatMechclass so any method can be evaluated. It takes the parameters- raise_errorand- raise_warningso the user has the ability to ignore modes if they do not have the desired properties
- Added - plot_coordinate_diagrammethod to the- Reactionsclass to plot coordinate diagrams.
- Added - get_EoRTand- get_Emethods to- StatMechclass to calculate electronic contribution to thermodynamic properties
- Added - get_EoRT_stateand- get_delta_EoRTmethods to- Reactionto calculate electronic contribution to reaction properties
- Added an optional parameter, - activation, to- get_delta_Xmethods to specify the difference between the reactants/products and the transition state.
- Added - pmutt.constants.symmetry_dictto allow easy look up of common symmetry numbers
- Fixed bug where specie-specific arguments were not passed correctly for - Reactionclass
Version 1.2.2
Jan. 18, 2019
- Added option to extract imaginary frequencies from VASP’s OUTCAR files 
- Added support for imaginary frequencies for - HarmonicViband- QRRHOVibclasses
- Restructured - HarmonicViband- QRRHOVibclasses to calculate vibrational temperatures, scaled wavenumbers and scaled inertia when methods are called (rather than at initialization) to prevent incorrect calculations due to changes in the vibrational wavenumbers.
- Fixed unit test names 
- Fixed bug related to - Referencesand- Referenceobjects not JSON-write compatible.
- Fixed bug related to referencing in - Shomateclass
Version 1.2.1
Dec. 17, 2018
- Added - vib_outcarspecial rule for- read_excel()and- set_vib_wavenumbers_from_outcar()to get vibrational frequencies directly from VASP’s OUTCAR file.
- Added - get_Xmethods to- Nasa,- Shomate,- StatMechand- Reactionto directly calculate thermodynamic properties (such as H, S, F, G) with the appropriate units
- Changed symbol for Hemlholtz energy from A to F 
Contributors
- Himaghna Bhattacharjee (himaghna) 
Version 1.2.0
Dec. 12, 2018
- Restructured code to exclude - modelmodule
Version 1.1.3
Dec. 11, 2018
- Added - BEPclass
- Restructured - Reactionclass so reaction states (i.e. reactants, products, transition states) can be calculated separately
- Updated - Referencesclass to be able reference any attribute
- Added - placeholderentry to- presetsdictionary to represent an empty species
- Added correction factor to calculate partition coefficient, q, in - IdealElecclass
Version 1.1.2
Nov. 27, 2018
- Fixed bugs in - Reactionclass for calculating pre-exponential factors
- Added methods in - Reactionclass to calculate rate constants and activation energy (currently, this just calculates the difference in enthalpy between the reactant/product and the transition state)
- Quality of life improvements such as allowing - Reactionclass inputs to be a single pmutt object instead of expecting a list
Version 1.1.1
Nov. 7, 2018
Version 1.1.0
Oct. 26, 2018
- Updated - Reactionclass to parse strings
- New - Shomateclass
- New equation of state classes: - IdealGasEOS,- vanDerWaalsEOS
- New - PhaseDiagramclass
- New - EinsteinVibclass
- New - read_reactions()function to read species and reactions from Chemkin surf.inp and gas.inp files