# Statistical mechanics (`rmgpy.statmech`

)¶

The `rmgpy.statmech`

subpackage contains classes that represent various
statistical mechanical models of molecular degrees of freedom. These models
enable the computation of macroscopic parameters (e.g. thermodynamics, kinetics,
etc.) from microscopic parameters.

A molecular system consisting of \(N\) atoms is described by \(3N\) molecular degrees of freedom. Three of these modes involve translation of the system as a whole. Another three of these modes involve rotation of the system as a whole, unless the system is linear (e.g. diatomics), for which there are only two rotational modes. The remaining \(3N-6\) (or \(3N-5\) if linear) modes involve internal motion of the atoms within the system. Many of these modes are well-described as harmonic oscillations, while others are better modeled as torsional rotations around a bond within the system.

Molecular degrees of freedom are mathematically represented using the Schrodinger equation \(\hat{H} \Psi = E \Psi\). By solving the Schrodinger equation, we can determine the available energy states of the molecular system, which enables computation of macroscopic parameters. Depending on the temperature of interest, some modes (e.g. vibrations) require a quantum mechanical treatment, while others (e.g. translation, rotation) can be described using a classical solution.

## Translational degrees of freedom¶

Class | Description |
---|---|

`IdealGasTranslation` |
A model of three-dimensional translation of an ideal gas |

## Rotational degrees of freedom¶

Class | Description |
---|---|

`LinearRotor` |
A model of two-dimensional rigid rotation of a linear molecule |

`NonlinearRotor` |
A model of three-dimensional rigid rotation of a nonlinear molecule |

`KRotor` |
A model of one-dimensional rigid rotation of a K-rotor |

`SphericalTopRotor` |
A model of three-dimensional rigid rotation of a spherical top molecule |

## Vibrational degrees of freedom¶

Class | Description |
---|---|

`HarmonicOscillator` |
A model of a set of one-dimensional harmonic oscillators |

## Torsional degrees of freedom¶

Class | Description |
---|---|

`HinderedRotor` |
A model of a one-dimensional hindered rotation |

## The Schrodinger equation¶

Class | Description |
---|---|

`getPartitionFunction()` |
Calculate the partition function at a given temperature from energy levels and degeneracies |

`getHeatCapacity()` |
Calculate the dimensionless heat capacity at a given temperature from energy levels and degeneracies |

`getEnthalpy()` |
Calculate the enthalpy at a given temperature from energy levels and degeneracies |

`getEntropy()` |
Calculate the entropy at a given temperature from energy levels and degeneracies |

`getSumOfStates()` |
Calculate the sum of states for a given energy domain from energy levels and degeneracies |

`getDensityOfStates()` |
Calculate the density of states for a given energy domain from energy levels and degeneracies |

## Convolution¶

Class | Description |
---|---|

`convolve()` |
Return the convolution of two arrays |

`convolveBS()` |
Convolve a degree of freedom into a density or sum of states using the Beyer-Swinehart (BS) direct count algorithm |

`convolveBSSR()` |
Convolve a degree of freedom into a density or sum of states using the Beyer-Swinehart-Stein-Rabinovitch (BSSR) direct count algorithm |