pmutt.statmech.rot.RigidRotor

class pmutt.statmech.rot.RigidRotor(symmetrynumber, rot_temperatures=None, geometry=None, atoms=None, degree_tol=5.0)

Bases: _ModelBase

Rotational mode using the rigid rotor assumption.

Equations sourced from:

  • Sandler, S. I. An Introduction to Applied Statistical Thermodynamics; John Wiley & Sons, 2010.

symmetrynumber

Symmetry number of molecule. If a string is inputted, it represents the point group. Supported options are shown below. The string ‘pymatgen’ can also be entered to have pymatgen determine the symmetry number.

Point group

symmetry number

C1

1

Cs

1

C2

2

C2v

2

C3v

3

Cinfv

1

D2h

4

D3h

6

D5h

10

Dinfh

2

D3d

6

Td

12

Oh

24

See DOI for more details: 10.1007/s00214-007-0328-0

Type:

float or str

rot_temperatures

Rotational temperatures in K

Type:

list of float, optional

geometry

Geometry of molecule. Accepted options are:

  • monatomic

  • linear

  • nonlinear

Type:

str

atoms

An atoms object can be used to calculate rot_temperatures and guess geometry

Type:

ase.Atoms object, optional

degree_tol

Degree tolerance to estimate geometry. Only required if estimating geometry or rot_temperatures

Type:

float

__init__(symmetrynumber, rot_temperatures=None, geometry=None, atoms=None, degree_tol=5.0)

Methods

__init__(symmetrynumber[, rot_temperatures, ...])

from_dict(json_obj)

Recreate an object from the JSON representation.

get_Cp(units, **kwargs)

Calculate the heat capacity (constant P)

get_CpoR()

Calculates the dimensionless heat capacity at constant pressure

get_Cv(units, **kwargs)

Calculate the heat capacity (constant V)

get_CvoR()

Calculates the dimensionless heat capacity at constant volume

get_F(units[, T])

Calculate the Helmholtz energy

get_FoRT(T)

Calculates the dimensionless Helmholtz energy

get_G(units[, T])

Calculate the Gibbs energy

get_GoRT(T)

Calculates the dimensionless Gibbs energy

get_H(units[, T])

Calculate the enthalpy

get_HoRT()

Calculates the dimensionless enthalpy

get_S(units, **kwargs)

Calculate the entropy

get_SoR(T)

Calculates the dimensionless entropy

get_U(units[, T])

Calculate the internal energy

get_UoRT()

Calculates the dimensionless internal energy

get_q(T)

Calculates the partition function

to_dict()

Represents object as dictionary with JSON-accepted datatypes

classmethod from_dict(json_obj)

Recreate an object from the JSON representation.

Parameters:

json_obj (dict) – JSON representation

Returns:

Obj

Return type:

Appropriate object

get_Cp(units, **kwargs)

Calculate the heat capacity (constant P)

Parameters:
  • units (str) – Units as string. See R() for accepted units.

  • kwargs (keyword arguments) – Parameters needed by get_CpoR

Returns:

Cp – Heat capacity (constant P) in appropriate units

Return type:

float

get_CpoR()

Calculates the dimensionless heat capacity at constant pressure

\(\frac{C_P^{rot}}{R}=\frac{C_V^{rot}}{R}\)

Returns:

CpoR_rot – Rotational dimensionless heat capacity at constant pressure

Return type:

float

get_Cv(units, **kwargs)

Calculate the heat capacity (constant V)

Parameters:
  • units (str) – Units as string. See R() for accepted units.

  • kwargs (keyword arguments) – Parameters needed by get_CvoR

Returns:

Cv – Heat capacity (constant V) in appropriate units

Return type:

float

get_CvoR()

Calculates the dimensionless heat capacity at constant volume

\(\frac{C_V^{rot}}{R}=0\) if monatomic

\(\frac{C_V^{rot}}{R}=1\) if linear

\(\frac{C_V^{rot}}{R}=1.5\) if nonlinear

Returns:

CvoR_rot – Rotational dimensionless heat capacity at constant volume

Return type:

float

get_F(units, T=298.15, **kwargs)

Calculate the Helmholtz energy

Parameters:
  • units (str) – Units as string. See R() for accepted units but omit the ‘/K’ (e.g. J/mol).

  • T (float, optional) – Temperature in K. Default is 298.15 K

  • kwargs (keyword arguments) – Parameters needed by get_FoRT

Returns:

F – Hemholtz energy in appropriate units

Return type:

float

get_FoRT(T)

Calculates the dimensionless Helmholtz energy

\(\frac{A^{rot}}{RT}=\frac{U^{rot}}{RT}-\frac{S^{rot}}{R}\)

Parameters:

T (float) – Temperature in K

Returns:

FoRT_rot – Rotational dimensionless Helmholtz energy

Return type:

float

get_G(units, T=298.15, **kwargs)

Calculate the Gibbs energy

Parameters:
  • units (str) – Units as string. See R() for accepted units but omit the ‘/K’ (e.g. J/mol).

  • T (float, optional) – Temperature in K. Default is 298.15 K

  • kwargs (keyword arguments) – Parameters needed by get_GoRT

Returns:

G – Gibbs energy in appropriate units

Return type:

float

get_GoRT(T)

Calculates the dimensionless Gibbs energy

\(\frac{G^{rot}}{RT}=\frac{H^{rot}}{RT}-\frac{S^{rot}}{R}\)

Parameters:

T (float) – Temperature in K

Returns:

GoRT_rot – Rotational dimensionless Gibbs energy

Return type:

float

get_H(units, T=298.15, **kwargs)

Calculate the enthalpy

Parameters:
  • units (str) – Units as string. See R() for accepted units but omit the ‘/K’ (e.g. J/mol).

  • T (float, optional) – Temperature in K. Default is 298.15 K

  • kwargs (keyword arguments) – Parameters needed by get_HoRT

Returns:

H – Enthalpy in appropriate units

Return type:

float

get_HoRT()

Calculates the dimensionless enthalpy

\(\frac{U^{rot}}{RT}=\frac{H^{rot}}{RT}\)

Returns:

HoRT_rot – Rotational dimensionless enthalpy

Return type:

float

get_S(units, **kwargs)

Calculate the entropy

Parameters:
  • units (str) – Units as string. See R() for accepted units.

  • kwargs (keyword arguments) – Parameters needed by get_SoR

Returns:

S – Entropy in appropriate units

Return type:

float

get_SoR(T)

Calculates the dimensionless entropy

\(\frac{S^{rot}}{R}=0\) if monatomic

\(\frac{S}{R}=\log(\frac{T}{\sigma}\prod_i \frac{1}{ \Theta_{R,i}})+1\) if linear

\(\frac{S^{rot}}{R}=\log\bigg(\frac{\sqrt\pi }{\sigma} \prod_i{(\frac{T^3}{\Theta_{R,i}})^\frac{1}{2}}\bigg)+1.5\) if nonlinear

Parameters:

T (float) – Temperature in K

Returns:

SoR_rot – Rotational dimensionless entropy

Return type:

float

get_U(units, T=298.15, **kwargs)

Calculate the internal energy

Parameters:
  • units (str) – Units as string. See R() for accepted units but omit the ‘/K’ (e.g. J/mol).

  • T (float, optional) – Temperature in K. Default is 298.15 K

  • kwargs (keyword arguments) – Parameters needed by get_UoRT

Returns:

U – Internal energy in appropriate units

Return type:

float

get_UoRT()

Calculates the dimensionless internal energy

\(\frac{U^{rot}}{RT}=0\) if monatomic

\(\frac{U^{rot}}{RT}=1\) if linear

\(\frac{U^{rot}}{RT}=1.5\) if nonlinear

Returns:

UoRT_rot – Rotational dimensionless internal energy

Return type:

float

get_q(T)

Calculates the partition function

\(q^{rot}=0\) if monatomic

\(q^{rot}=\frac{T}{\sigma}\prod_i\frac{1}{\Theta_R}\) if linear

\(q^{rot}=\frac{\sqrt{\pi}}{\sigma}(T^3\prod_i\frac{1}{ \Theta_{Ri}})^\frac{1}{2}\) if nonlinear

Parameters:

T (float) – Temperature in K

Returns:

q_rot – Rotational partition function

Return type:

float

to_dict()

Represents object as dictionary with JSON-accepted datatypes

Returns:

obj_dict

Return type:

dict