pmutt.statmech.vib.EinsteinVib

class pmutt.statmech.vib.EinsteinVib(einstein_temperature, interaction_energy=0.0)

Bases: _ModelBase

Einstein model of a crystal. Equations used sourced from

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

einstein_temperature

Einstein temperature (\(\Theta_E\)) in K

Type:

float

interaction_energy

Interaction energy (\(u\)) per atom in eV. Default is 0 eV

Type:

float, optional

__init__(einstein_temperature, interaction_energy=0.0)

Methods

__init__(einstein_temperature[, ...])

from_dict(json_obj)

Recreate an object from the JSON representation.

get_Cp(units, **kwargs)

Calculate the heat capacity (constant P)

get_CpoR(T)

Calculates the dimensionless heat capacity at constant pressure

get_Cv(units, **kwargs)

Calculate the heat capacity (constant V)

get_CvoR(T)

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(T)

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(T)

Calculates the dimensionless internal energy

get_ZPE()

Calculates the zero point 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(T)

Calculates the dimensionless heat capacity at constant pressure

\(\frac{C_P^{vib}}{R}=\frac{C_V^{vib}}{R}=3\bigg(\frac{ \Theta_E}{T}\bigg)^2\frac{\exp(-\frac{\Theta_E}{T})}{\big(1- \exp(\frac{-\Theta_E}{T})\big)^2}\)

Parameters:

T (float) – Temperature in K

Returns:

CpoR_vib – Vibrational 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(T)

Calculates the dimensionless heat capacity at constant volume

\(\frac{C_V^{vib}}{R}=3\bigg(\frac{\Theta_E}{T}\bigg)^2 \frac{\exp(-\frac{\Theta_E}{T})}{\big(1-\exp(\frac{- \Theta_E}{T})\big)^2}\)

Parameters:

T (float) – Temperature in K

Returns:

CvoR_vib – Vibrational 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^{vib}}{RT}=\frac{U^{vib}}{RT}-\frac{S^{vib}}{R}\)

Parameters:

T (float) – Temperature in K

Returns:

FoRT_vib – Vibrational 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^{vib}}{RT}=\frac{H^{vib}}{RT}-\frac{S^{vib}}{R}\)

Parameters:

T (float) – Temperature in K

Returns:

GoRT_vib – Vibrational 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(T)

Calculates the dimensionless enthalpy

\(\frac{H^{vib}}{RT}=\frac{U^{vib}}{RT}=\frac{N_A u^0_E}{k_BT} +3\frac{\Theta_E}{T}\bigg(\frac{\exp(-\frac{\Theta_E}{T})}{1- \exp(-\frac{\Theta_E}{T})}\bigg)\)

Parameters:

T (float) – Temperature in K

Returns:

HoRT_vib – Vibrational 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^{vib}}{R}=3\bigg(\frac{\Theta_E}{T}\frac{\exp\big( \frac{-\Theta_E}{T}\big)}{1-\exp\big(-\frac{\Theta_E}{T}\big)} \bigg)-\ln\bigg(1-\exp\big(\frac{-\Theta_E}{T}\big)\bigg)\)

Parameters:

T (float) – Temperature in K

Returns:

SoR_vib – Vibrational 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(T)

Calculates the dimensionless internal energy

\(\frac{U^{vib}}{RT}=\frac{u^0_E}{k_BT}+3\frac{\Theta_E}{T} \bigg(\frac{\exp(-\frac{\Theta_E}{T})}{1-\exp(-\frac{\Theta_E} {T})}\bigg)\)

Parameters:

T (float) – Temperature in K

Returns:

UoRT_vib – Vibrational dimensionless internal energy

Return type:

float

get_ZPE()

Calculates the zero point energy

\(u^0_E=u+\frac{3}{2}\Theta_E k_B\)

Returns:

zpe – Zero point energy in eV

Return type:

float

get_q(T)

Calculates the partition function

\(q^{vib}=\exp\bigg({\frac{-u}{k_BT}}\bigg)\bigg(\frac{ \exp(-\frac{\Theta_E}{2T})}{1-\exp(\frac{-\Theta_E}{T})}\bigg)\)

Parameters:

T (float) – Temperature in K

Returns:

q_vib – Vibrational partition function

Return type:

float

to_dict()

Represents object as dictionary with JSON-accepted datatypes

Returns:

obj_dict

Return type:

dict