pmutt.statmech.vib.DebyeVib

class pmutt.statmech.vib.DebyeVib(debye_temperature, interaction_energy)

Bases: _ModelBase

Debye model of a crystal. Equations sourced from:

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

debye_temperature

Debye temperature (\(\Theta_D\)) in K

Type:

float

interaction_energy

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

Type:

float, optional

__init__(debye_temperature, interaction_energy)

Methods

__init__(debye_temperature, interaction_energy)

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 dimensionless heat capacity (constant P)

get_Cv(units, **kwargs)

Calculate the heat capacity (constant V)

get_CvoR(T)

Calculates dimensionless heat capacity (constant V)

get_F(units[, T])

Calculate the Helmholtz energy

get_FoRT(T)

Calculates dimensionless Helmholtz energy

get_G(units[, T])

Calculate the Gibbs energy

get_GoRT(T)

Calculates dimensionless Gibbs energy

get_H(units[, T])

Calculate the enthalpy

get_HoRT(T)

Calculates dimensionless enthalpy

get_S(units, **kwargs)

Calculate the entropy

get_SoR(T)

Calculates dimensionless entropy

get_U(units[, T])

Calculate the internal energy

get_UoRT(T)

Calculates dimensionless internal energy

get_ZPE()

Calculate zero point energy

get_q(T)

Calculate 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 dimensionless heat capacity (constant P)

\(\frac {C_P^{vib}}{R} = 3K\bigg(\frac{\Theta_D}{T}\bigg)\)

\(K\bigg(\frac{\Theta_D}{T}\bigg)=3\bigg(\frac{T}{\Theta_D} \bigg)^3 \int_0^{\frac{\Theta_D}{T}}\frac{x^4 e^x}{(e^x-1)^2}dx\)

Parameters:

T (float) – Temperature in K

Returns:

CpoR – Dimensionless heat capacity (constant P)

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 dimensionless heat capacity (constant V)

\(\frac {C_V^{vib}}{R} = 3K\bigg(\frac{\Theta_D}{T}\bigg)\)

\(K\bigg(\frac{\Theta_D}{T}\bigg)=3\bigg(\frac{T}{\Theta_D} \bigg)^3 \int_0^{\frac{\Theta_D}{T}}\frac{x^4 e^x}{(e^x-1)^2}dx\)

Parameters:

T (float) – Temperature in K

Returns:

CvoR – Dimensionless heat capacity (constant V)

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 dimensionless Helmholtz energy

\(\frac{F^{vib}}{RT}=\frac{U^{vib}}{RT}-\frac{S^{vib}}{R}\)

Parameters:

T (float) – Temperature in K

Returns:

FoRT – 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 dimensionless Gibbs energy

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

Parameters:

T (float) – Temperature in K

Returns:

GoRT – 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 dimensionless enthalpy

\(\frac{H^{vib}}{RT} = \frac{u_D^o}{RT} + 3F\bigg(\frac{ \Theta_D}{T}\bigg)\)

\(F\bigg(\frac{\Theta_D}{T}\bigg) = 3\bigg(\frac{T}{ \Theta_D}\bigg)^3 \int_0^{\frac{\Theta_D}{T}} \frac{x^3 e^x} {e^x-1} dx\)

Parameters:

T (float) – Temperature in K

Returns:

HoRT – 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 dimensionless entropy

\(\frac{S^{vib}}{R} = 3\bigg[F\bigg(\frac{\Theta_D}{T}\bigg) - G\bigg(\frac{\Theta_D}{T}\bigg)\bigg]\)

\(F\bigg(\frac{\Theta_D}{T}\bigg) = 3\bigg(\frac{T}{ \Theta_D}\bigg)^3 \int_0^{\frac{\Theta_D}{T}} \frac{x^3 e^x} {e^x-1} dx\)

\(G\bigg(\frac{\Theta_D}{T}\bigg) = 3\bigg(\frac{T}{ \Theta_D}\bigg)^3\int_0^{\frac{\Theta_D}{T}}x^2 \ln \bigg(1-e^{-x}\bigg)dx\)

Parameters:

T (float) – Temperature in K

Returns:

SoR – 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 dimensionless internal energy

\(\frac{U^{vib}}{RT} = \frac{u_D^o}{RT} + 3F\bigg(\frac{ \Theta_D}{T}\bigg)\)

\(F\bigg(\frac{\Theta_D}{T}\bigg) = 3\bigg(\frac{T}{ \Theta_D}\bigg)^3 \int_0^{\frac{\Theta_D}{T}} \frac{x^3 e^x} {e^x-1} dx\)

Parameters:

T (float) – Temperature in K

Returns:

UoRT – Dimensionless internal energy

Return type:

float

get_ZPE()

Calculate zero point energy

\(u^o_D = u^o +\frac{9}{8}R\Theta_D\)

Returns:

zpe – Zero point energy in eV

Return type:

float

get_q(T)

Calculate the partition function

\(q^{vib} = \exp\bigg(-\frac{u}{3k_B T} - \frac{3}{8} \frac{\Theta_D}{T} - G\big(\frac{\Theta_D}{T}\big)\bigg)\)

\(G\bigg(\frac{\Theta_D}{T}\bigg) = 3\bigg(\frac{T}{ \Theta_D}\bigg)^3\int_0^{\frac{\Theta_D}{T}}x^2 \ln \bigg(1-e^{-x}\bigg)dx\)

Parameters:

T (float) – Temperature in K

Returns:

q – Partition function

Return type:

float

to_dict()

Represents object as dictionary with JSON-accepted datatypes

Returns:

obj_dict

Return type:

dict