Source code for haot.conversions

"""
Date:   12/11/2024
Author: Martin E. Liza
File:   conversions.py
Def:    Contains conversion functions.
"""

import numpy as np
import molmass
import scipy.constants as s_consts


[docs] def polarizability_cgs_to_si(polarizability_cgs: float) -> float: """ Converts volumetric polarizability (CGS) to atomic polarizability (SI) Parameters: polarizability_cgs: volumetric polarizability in [cm^3] Returns: atomic polarizability in [Fm^2] """ return polarizability_cgs * 4 * np.pi * s_consts.epsilon_0 * 1e-6
[docs] def polarizability_si_to_cgs(polarizability_si: float) -> float: """ Converts atomic polarizability (SI) to volumetric polarizability (CGS) Parameters: polarizability_si: atomic polarizability in [Fm^2] Returns: volumetric polarizability in [cm^3] """ return polarizability_si * 1e6 / (4 * np.pi * s_consts.epsilon_0)
[docs] def wavenumber_to_electronvolt(wavenumber_cm: float) -> float: """ Converts wavenumber to electron-volt Parameters: wavenumber_cm: energy in [cm^-1] Returns: energy in [eV] """ return wavenumber_to_joules(wavenumber_cm) / s_consts.eV
[docs] def wavenumber_to_joules(wavenumber_cm: float) -> float: """ Converts wavenumber to Joules Parameters: wavenumber_cm: energy in [cm^-1] Returns: energy in [J] """ return wavenumber_cm * s_consts.c * 100 * s_consts.h
[docs] def wavenumber_to_angular_frequency(wavenumber_cm: float) -> float: """ Converts wavenumber to [rads/seconds] Parameters: wavenumber_cm: energy in [cm^-1] Returns: frequency in [rads/seconds] """ return 2 * np.pi * s_consts.c * wavenumber_cm * 100
[docs] def mass_density_to_molar_density(mass_density: float, molecule: str) -> float: """ Converts mass_density [kg/m3] to molar density [particles/m3] Parameters: mass_density: density in [kg/m3] molecule: molecule of the mass density Returns: molar density in [particles/m3] """ return mass_density * s_consts.N_A / molmass.Formula(molecule).mass * 1e3
[docs] def molar_mass_to_kilogram(molar_mass_gmol: float) -> float: """ Converts molar mass [g/mol] to mass [kg] Parameters: molar_mass_gmol: mass in [g/mol] Returns: mass in [kg] """ return molar_mass_gmol * 1e-3 / s_consts.N_A