# 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

## Molecular conformers¶

Class Description
Conformer A model of a molecular conformation