rmgpy.statmech.SphericalTopRotor

class rmgpy.statmech.SphericalTopRotor(inertia=None, symmetry=1, quantum=False, rotationalConstant=None)

A statistical mechanical model of a three-dimensional rigid rotor with a single rotational constant: a spherical top. The attributes are:

Attribute

Description

inertia

The moment of inertia of the rotor

rotationalConstant

The rotational constant of the rotor

symmetry

The symmetry number of the rotor

quantum

True to use the quantum mechanical model, False to use the classical model

Note that the moment of inertia and the rotational constant are simply two ways of representing the same quantity; only one of these can be specified independently.

In the majority of chemical applications, the energies involved in the rigid rotor place it very nearly in the classical limit at all relevant temperatures; therefore, the classical model is used by default.

A spherical top rotor is simply the three-dimensional equivalent of a linear rigid rotor. Unlike the nonlinear rotor, all three moments of inertia of a spherical top are equal, i.e. \(I_\mathrm{A} = I_\mathrm{B} = I_\mathrm{C} = I\). The energy levels \(E_J\) and corresponding degeneracies \(g_J\) of the spherial top rotor are given by

\[\begin{split}E_J &= B J (J + 1) \hspace{2em} J = 0, 1, 2, \ldots \\ g_J &= (2J+1)^2\end{split}\]

where \(J\) is the quantum number for the rotor and \(B \equiv \hbar^2/2I\) is the rotational constant.

Using these expressions for the energy levels and corresponding degeneracies, we can evaluate the partition function for the spherical top rotor:

\[Q_\mathrm{rot}(T) = \frac{1}{\sigma} \sum_{J=0}^\infty (2J+1)^2 e^{- B J (J+1) / k_\mathrm{B} T}\]

In many cases the temperature of interest is large relative to the energy spacing; in this limit we can obtain a closed-form analytical expression for the linear rotor partition function in the classical limit:

\[Q_\mathrm{rot}^\mathrm{cl}(T) = \frac{1}{\sigma} \left( \frac{8 \pi^2 I k_\mathrm{B} T}{h^2} \right)^{3/2}\]

where \(\sigma\) is the symmetry number of the spherical top. Note that the above differs from the nonlinear rotor partition function by a factor of \(\pi\).

as_dict()

A helper function for dumping objects as dictionaries for YAML files

Returns:

A dictionary representation of the object

Return type:

dict

get_density_of_states(self, ndarray e_list, ndarray dens_states_0=None) ndarray

Return the density of states \(\rho(E) \ dE\) at the specified energies e_list in J/mol above the ground state. If an initial density of states dens_states_0 is given, the rotor density of states will be convoluted into these states.

get_enthalpy(self, double T) double

Return the enthalpy in J/mol for the degree of freedom at the specified temperature T in K.

get_entropy(self, double T) double

Return the entropy in J/mol*K for the degree of freedom at the specified temperature T in K.

get_heat_capacity(self, double T) double

Return the heat capacity in J/mol*K for the degree of freedom at the specified temperature T in K.

get_level_degeneracy(self, int J) int

Return the degeneracy of level J.

get_level_energy(self, int J) double

Return the energy of level J in kJ/mol.

get_partition_function(self, double T) double

Return the value of the partition function \(Q(T)\) at the specified temperature T in K.

get_sum_of_states(self, ndarray e_list, ndarray sum_states_0=None) ndarray

Return the sum of states \(N(E)\) at the specified energies e_list in J/mol above the ground state. If an initial sum of states sum_states_0 is given, the rotor sum of states will be convoluted into these states.

inertia

The moment of inertia of the rotor.

make_object(self, dict data, dict class_dict)
quantum

‘bool’

Type:

quantum

rotationalConstant

The rotational constant of the rotor.

symmetry

‘int’

Type:

symmetry