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 speciesMajor 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_methodtowrite_surf()andwrite_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
SurfaceReactionReduced 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 inread_excel().Updated
iosections to incorporate Pathlib libraryAdded helper functions in
omkmto organize phasesFixed bug where slopes and y intercepts were switched for
PiecewiseCovEffectwhen writing CTI files.Fixed bug in
write_surf()wheren_sitescould be written as a floatUpdated 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, andShomate.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
IdealGasandStoichSolidto 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()wheremodelwas not correctly initialized withStatMech().Added the generic method,
set_dict_value()to specify dictionaries inread_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 iffilenameis not specified.Bug fix where
from_modelforNasaandShomatereturned errors. The fix was related to incorrect datatyping formisc_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 theNasaobjects as a list, tuple, or dictionary.Updated
write_thermdat()to accept a list or a dictionary ofNasaobjectsImplemented from_model method in
NasaandShomateclasses so empirical objects can be created fromStatMechobjects as well as other empirical objects. Thefrom_statmechmethod is deprecated.Added more descriptive warnings and errors.
Created
GasPressureAdjso entropy and Gibbs energy of gas-phase empirical objects (likeShomateandNasa) are dependent on pressure. This object is assigned automatically tomisc_modelsifphaseis ‘g’ or ‘gas’ and theadd_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 understandImplemented
Nasa9andSingleNasa9polynomialsAdded 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 ofimport 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 nodesBug fix for
LSRto handle inputs that are not pmutt model objectsAdded ability to create interactive plots with Pygal
Updated
GroundStateElecto readpotentialenergyfrom inputtedAtomsobject.
Version 1.2.6
Apr. 26, 2019
Moved
referencesattribute from empirical classes toStatMechChanged
mix_modelsattribute tomisc_modelsin indicating any model object can be usedImplemented
DebyeVibandConstantModeclassesRestructured
BEPobject to act as a transition state species inReactionobjectsImplemented
LSRobjectAdded option to calculate pre-exponential factor using ratio of partition functions or entropy of activation
Added option to use electronic energy as descriptor for
BEPobjectAdded some imperial unit functionality to
pmutt.constantsmoduleRenamed
from_parameter andtoparameter inpmutt.constants.convert_unit()toinitialandfinalAdded ability to import individual translational, rotational, vibrational, electronic and nuclear modes to Excel
Renamed
pmutt.statmech.trans.IdealTranstoFreeTransRenamed
pmutt.statmech.elec.IdealElectoGroundStateElecRenamed
pmutt.statmech.nucl.IdealNucltoEmptyNucl
Version 1.2.5
Mar. 21, 2019
Renamed
pmutt.io_module topmutt.ioRenamed
pmutt.io_.jsoniomodule topmutt.io.jsonAdded preliminary IO support for MongoDB in module:
pmutt.io.dbBug 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 toStatMechandEmpiricalBaseclassesAdded functions to write Chemkin surf.inp, gas.inp, and EAs.inp files
Added
CovEffectclass to model coverage effects and integrated it withStatMechandEmpiricalBaseclassesAdded
include_ZPEparameter toget_EoRT,get_E,get_delta_EoRTandget_delta_Efor theStatMechclass andReactionclass to add zero-point energy in calculationsRenamed private methods
_get_delta_quantityand_get_state_quantityto public methodsget_delta_quantityandget_state_quantityinReactionclassAdded generic method
get_quantitytoStatMechclass so any method can be evaluated. It takes the parametersraise_errorandraise_warningso the user has the ability to ignore modes if they do not have the desired propertiesAdded
plot_coordinate_diagrammethod to theReactionsclass to plot coordinate diagrams.Added
get_EoRTandget_Emethods toStatMechclass to calculate electronic contribution to thermodynamic propertiesAdded
get_EoRT_stateandget_delta_EoRTmethods toReactionto calculate electronic contribution to reaction propertiesAdded an optional parameter,
activation, toget_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 numbersFixed 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
HarmonicVibandQRRHOVibclassesRestructured
HarmonicVibandQRRHOVibclasses 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
ReferencesandReferenceobjects not JSON-write compatible.Fixed bug related to referencing in
Shomateclass
Version 1.2.1
Dec. 17, 2018
Added
vib_outcarspecial rule forread_excel()andset_vib_wavenumbers_from_outcar()to get vibrational frequencies directly from VASP’s OUTCAR file.Added
get_Xmethods toNasa,Shomate,StatMechandReactionto directly calculate thermodynamic properties (such as H, S, F, G) with the appropriate unitsChanged 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
BEPclassRestructured
Reactionclass so reaction states (i.e. reactants, products, transition states) can be calculated separatelyUpdated
Referencesclass to be able reference any attributeAdded
placeholderentry topresetsdictionary to represent an empty speciesAdded correction factor to calculate partition coefficient, q, in
IdealElecclass
Version 1.1.2
Nov. 27, 2018
Fixed bugs in
Reactionclass for calculating pre-exponential factorsAdded 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 stringsNew
ShomateclassNew equation of state classes:
IdealGasEOS,vanDerWaalsEOSNew
PhaseDiagramclassNew
EinsteinVibclassNew
read_reactions()function to read species and reactions from Chemkin surf.inp and gas.inp files