Release Notes

Development Branch

Development Branch

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_method to 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 LSR could not be imported in read_excel().
  • Updated io sections to incorporate Pathlib library
  • Added helper functions in omkm to organize phases
  • Fixed bug where slopes and y intercepts were switched for PiecewiseCovEffect when writing CTI files.
  • Fixed bug in write_surf() where n_sites could 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 IdealGas and StoichSolid to 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 model was 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 filename is not specified.
  • Bug fix where from_model for Nasa and Shomate returned errors. The fix was related to incorrect datatyping for misc_models.
  • Improved Shomate to 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.


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 Nasa objects as a list, tuple, or dictionary.
  • Updated write_thermdat() to accept a list or a dictionary of Nasa objects
  • Implemented from_model method in Nasa and Shomate classes so empirical objects can be created from StatMech objects as well as other empirical objects. The from_statmech method is deprecated.
  • Added more descriptive warnings and errors.
  • Created GasPressureAdj so entropy and Gibbs energy of gas-phase empirical objects (like Shomate and Nasa) are dependent on pressure. This object is assigned automatically to misc_models if phase is ‘g’ or ‘gas’ and the add_gas_P_adj can 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 elements for this functionality.
  • Fixed broken hyperlinks.


Version 1.2.12

Aug. 22, 2019

  • Refactored write_thermdat so that it is simpler to understand
  • Implemented Nasa9 and SingleNasa9 polynomials
  • 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 StatMech was not passed when modes were specified indivudally in spreadsheets.


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 pmutt instead of import pMuTT)

Version 1.2.7

Jun. 11, 2019

  • Added documentation page for more verbose installation instructions.
  • Updated network to use graph theory approach using states as nodes
  • Bug fix for LSR to handle inputs that are not pmutt model objects
  • Added ability to create interactive plots with Pygal
  • Updated GroundStateElec to read potentialenergy from inputted Atoms object.

Version 1.2.6

Apr. 26, 2019

  • Moved references attribute from empirical classes to StatMech
  • Changed mix_models attribute to misc_models in indicating any model object can be used
  • Implemented DebyeVib and ConstantMode classes
  • Restructured BEP object to act as a transition state species in Reaction objects
  • Implemented LSR object
  • 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 BEP object
  • Added some imperial unit functionality to pmutt.constants module
  • Renamed from_ parameter and to parameter in pmutt.constants.convert_unit() to initial and final
  • Added ability to import individual translational, rotational, vibrational, electronic and nuclear modes to Excel
  • Renamed pmutt.statmech.trans.IdealTrans to FreeTrans
  • Renamed pmutt.statmech.elec.IdealElec to GroundStateElec
  • Renamed pmutt.statmech.nucl.IdealNucl to EmptyNucl

Version 1.2.5

Mar. 21, 2019

  • Renamed pmutt.io_ module to
  • Renamed pmutt.io_.jsonio module to
  • Added preliminary IO support for MongoDB in module:
  • 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 smiles attribute to StatMech and EmpiricalBase classes
  • Added functions to write Chemkin surf.inp, gas.inp, and EAs.inp files
  • Added CovEffect class to model coverage effects and integrated it with StatMech and EmpiricalBase classes
  • Added include_ZPE parameter to get_EoRT, get_E, get_delta_EoRT and get_delta_E for the StatMech class and Reaction class to add zero-point energy in calculations
  • Renamed private methods _get_delta_quantity and _get_state_quantity to public methods get_delta_quantity and get_state_quantity in Reaction class
  • Added generic method get_quantity to StatMech class so any method can be evaluated. It takes the parameters raise_error and raise_warning so the user has the ability to ignore modes if they do not have the desired properties
  • Added plot_coordinate_diagram method to the Reactions class to plot coordinate diagrams.
  • Added get_EoRT and get_E methods to StatMech class to calculate electronic contribution to thermodynamic properties
  • Added get_EoRT_state and get_delta_EoRT methods to Reaction to calculate electronic contribution to reaction properties
  • Added an optional parameter, activation, to get_delta_X methods to specify the difference between the reactants/products and the transition state.
  • Added pmutt.constants.symmetry_dict to allow easy look up of common symmetry numbers
  • Fixed bug where specie-specific arguments were not passed correctly for Reaction class

Version 1.2.2

Jan. 18, 2019

  • Added option to extract imaginary frequencies from VASP’s OUTCAR files
  • Added support for imaginary frequencies for HarmonicVib and QRRHOVib classes
  • Restructured HarmonicVib and QRRHOVib classes 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
  • Added get_species to Reaction and Reactions
  • Fixed bug related to References and Reference objects not JSON-write compatible.
  • Fixed bug related to referencing in Shomate class

Version 1.2.1

Dec. 17, 2018

  • Added vib_outcar special rule for read_excel() and set_vib_wavenumbers_from_outcar() to get vibrational frequencies directly from VASP’s OUTCAR file.
  • Added get_X methods to Nasa, Shomate, StatMech and Reaction to directly calculate thermodynamic properties (such as H, S, F, G) with the appropriate units
  • Changed symbol for Hemlholtz energy from A to F


Version 1.2.0

Dec. 12, 2018

  • Restructured code to exclude model module

Version 1.1.3

Dec. 11, 2018

  • Added BEP class
  • Restructured Reaction class so reaction states (i.e. reactants, products, transition states) can be calculated separately
  • Updated References class to be able reference any attribute
  • Added placeholder entry to presets dictionary to represent an empty species
  • Added correction factor to calculate partition coefficient, q, in IdealElec class

Version 1.1.2

Nov. 27, 2018

  • Fixed bugs in Reaction class for calculating pre-exponential factors
  • Added methods in Reaction class 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 Reaction class inputs to be a single pmutt object instead of expecting a list

Version 1.1.1

Nov. 7, 2018

  • Fixed bugs in Shomate class for get_HoRT and get_SoR where one temperature would return a 1x1 vector instead of a float
  • Fixed bug in Zacros class where it expected vibrational energies instead of wavenumbers.

Version 1.1.0

Oct. 26, 2018

  • Updated Reaction class to parse strings
  • New Shomate class
  • New equation of state classes: IdealGasEOS, vanDerWaalsEOS
  • New PhaseDiagram class
  • New EinsteinVib class
  • New read_reactions() function to read species and reactions from Chemkin surf.inp and gas.inp files