Source code for haot.constants_tables

"""
    Date:   10/26/2024
    Author: Martin E. Liza
    File:   constants_tables.py
    Def:    This file contains spectroscopy data used across the package
"""


[docs] def sutherland_constants(gas="Air"): """ Constants used for Sutherland's law of viscosity and thermal conductivity Reference: https://doc.comsol.com/5.5/doc/com.comsol.help.cfd/cfd_ug_fluidflow_high_mach.08.27.html Parameters: gas (str): Air (default), Argon, N2, O2 Returns: dictionary (dict): temperature_ref (float): reference temperature [K] viscosity_ref (float): reference viscosity [Ns/m2] sutherland_visc (float): Sutherland viscosity constant [K] conductivity_ref (float): reference thermal conductivity [W/mK] sutherland_cond (float): Sutherland thermal conductivity [K] """ dict_out = {} if gas == "Air": dict_out["temperature_ref"] = 273.0 # [K] dict_out["viscosity_ref"] = 1.716e-5 # [kg/ms] dict_out["sutherland_visc"] = 111.0 # [K] dict_out["conductivity_ref"] = 0.0241 # [W/mK] dict_out["sutherland_cond"] = 194.0 # [K] if gas == "Argon": dict_out["temperature_ref"] = 273.0 # [K] dict_out["viscosity_ref"] = 2.125e-5 # [kg/ms] dict_out["sutherland_visc"] = 114.0 # [K] dict_out["conductivity_ref"] = 0.0163 # [W/mK] dict_out["sutherland_cond"] = 170.0 # [K] if gas == "N2": dict_out["temperature_ref"] = 273.0 # [K] dict_out["viscosity_ref"] = 1.663e-5 # [kg/ms] dict_out["sutherland_visc"] = 107.0 # [K] dict_out["conductivity_ref"] = 0.0242 # [W/mK] dict_out["sutherland_cond"] = 150.0 # [K] if gas == "O2": dict_out["temperature_ref"] = 273.0 # [K] dict_out["viscosity_ref"] = 1.919e-5 # [kg/ms] dict_out["sutherland_visc"] = 139.0 # [K] dict_out["conductivity_ref"] = 0.0244 # [W/mK] dict_out["sutherland_cond"] = 240.0 # [K] return dict_out
[docs] def karl_2003(): """ Constants used in the Karl method Reference: https://arc.aiaa.org/doi/pdf/10.2514/6.2003-4252 Returns: dict_out (dict): """ dict_out = { "N": 0.301e-3, "O": 0.182e-3, "NO": 0.221e-3, "N2": 0.238e-3, "O2": 0.190e-3, } # [m3/kg] return dict_out
# Polarizability
[docs] def polarizability(): dict_out = { "N+": 0.559e-30, "O+": 0.345e-30, "NO+": 1.021e-30, "N2+": 2.386e-30, "O2+": 0.238e-30, "N": 1.100e-30, "O": 0.802e-30, "NO": 1.700e-30, "N2": 1.7403e-30, "O2": 1.5689e-30, } # [m^3] return dict_out
[docs] def polarizability_derivatives(molecule="N2"): # https://link.springer.com/content/pdf/10.1134/BF03355985.pdf """ Constants from Buldakov Paper: "Temperature Dependence of Polarizability of Diatomic Homonuclear Molecules." References: - Each constant's reference is provided in the respective comments or documentation. """ dict_out = {} if molecule == "H2": dict_out["zeroth"] = ( 0.7849e-30 # https://edisciplinas.usp.br/pluginfile.php/4557662/mod_resource/content/1/CRC%20Handbook%20of%20Chemistry%20and%20Physics%2095th%20Edition.pdf ) dict_out["first"] = ( 0.90e-30 # https://www.tandfonline.com/doi/abs/10.1080/00268978000103191 ) dict_out["second"] = ( 0.49e-30 # https://www.tandfonline.com/doi/abs/10.1080/00268978000103191 ) dict_out["third"] = ( -0.85e-30 ) # https://www.tandfonline.com/doi/abs/10.1080/00268978000103191 if molecule == "N2": dict_out["zeroth"] = ( 1.7801e-30 # https://edisciplinas.usp.br/pluginfile.php/4557662/mod_resource/content/1/CRC%20Handbook%20of%20Chemistry%20and%20Physics%2095th%20Edition.pdf ) dict_out["first"] = ( 1.86e-30 # M. A. Buldakov, B. V. Korolev, I. I. Matrosov, and T. N. Popova, Opt. Spektrosk. 63, 775 (1987) MISSING REFERENCE ) dict_out["second"] = ( 1.2e-30 # M. A. Buldakov, B. V. Korolev, I. I. Matrosov, and T. N. Popova, Opt. Spektrosk. 63, 775 (1987) MISSING REFERENCE ) dict_out["third"] = ( -4.6e-30 ) # https://pubs.aip.org/aip/jcp/article-abstract/78/9/5287/777120/Theoretical-study-of-the-effects-of-vibrational?redirectedFrom=fulltext if molecule == "O2": dict_out["zeroth"] = ( 1.6180e-30 # https://edisciplinas.usp.br/pluginfile.php/4557662/mod_resource/content/1/CRC%20Handbook%20of%20Chemistry%20and%20Physics%2095th%20Edition.pdf ) dict_out["first"] = ( 1.76e-30 # M. A. Buldakov, B. V. Korolev, I. I. Matrosov, and T. N. Popova, Opt. Spektrosk. 63, 775 (1987) MISSING REFERENCE ) dict_out["second"] = ( 3.4e-30 # M. A. Buldakov, B. V. Korolev, I. I. Matrosov, and T. N. Popova, Opt. Spektrosk. 63, 775 (1987) MISSING REFERENCE ) dict_out["third"] = ( -23.7e-30 ) # https://pubs.aip.org/aip/jcp/article-abstract/100/2/1297/482621/Frequency-dependent-polarizabilities-of-O2-and-van?redirectedFrom=fulltext return dict_out # [m^3]
[docs] def kerl_interpolation(molecule="N2"): # https://onlinelibrary.wiley.com/doi/10.1002/bbpc.19920960517 # Check reference in paper dict_out = {} if molecule == "H2": dict_out["groundPolarizability"] = 0.80320e-30 # [m^3] dict_out["groundFrequency"] = 2.1399e16 # [1/s] dict_out["b"] = 5.87e-6 # [1/K] dict_out["c"] = 7.544e-9 # [1/K^2] if molecule == "N2": dict_out["groundPolarizability"] = 1.7406e-30 # [m^3] dict_out["groundFrequency"] = 2.6049e16 # [1/s] dict_out["b"] = 1.8e-6 # [1/K] dict_out["c"] = 0.0 if molecule == "O2": dict_out["groundPolarizability"] = 1.5658e-30 # [m^3] dict_out["groundFrequency"] = 2.1801e16 # [1/s] dict_out["b"] = -2.369e-6 # [1/K] dict_out["c"] = 8.687e-9 # [1/K^2] if molecule == "Air": dict_out["groundPolarizability"] = 1.6970e-30 # [m^3] dict_out["groundFrequency"] = 2.47044e16 # [1/s] dict_out["b"] = 10.6e-6 # [1/K] dict_out["c"] = 7.909e-9 # [1/K^2] return dict_out
[docs] def spectroscopy_constants(molecule="N2"): # https://doi.org/10.1063/1.2436891 # minimun electronic energy T_e [cm^-1] # harmonic frequency (omega_e) [cm^-1] # first anharmonic correction (omega_e x_e) [cm^-1] # (omega_e y_e) # equilibrium rotational constant (B_e) # anharmonic correction to the rotational constant (alpha_e) [cm^-1] # centrifugal distortion constant (D_e) [cm^-1] # binding energy (D_o) [eV] # equilibrium internuclear distance(R_e) [\r{A}] # ionization potential (IP) [eV] dict_out = {} # https://webbook.nist.gov/cgi/cbook.cgi?Name=NO%2B&Units=SI&cDI=on if molecule == "NO+": dict_out["omega_e"] = 2376.72 dict_out["omega_xe"] = 16.255 dict_out["omega_ye"] = -0.01562 dict_out["B_e"] = 1.997195 dict_out["alpha_e"] = 0.018790 dict_out["D_e"] = 6.64e-6 dict_out["r_e"] = 1.06322e-10 # [m] # https://webbook.nist.gov/cgi/cbook.cgi?Name=N2%2B&Units=SI&cDI=on if molecule == "N2+": dict_out["omega_e"] = 2207.0115 dict_out["omega_xe"] = 16.0616 dict_out["omega_ye"] = -0.04289 dict_out["B_e"] = 1.93176 dict_out["alpha_e"] = 0.0181 dict_out["D_e"] = 6.10e-6 dict_out["r_e"] = 1.11642e-10 # https://webbook.nist.gov/cgi/cbook.cgi?Name=O2%2B&Units=SI&cDI=on if molecule == "O2+": dict_out["omega_e"] = 1905.892 dict_out["omega_xe"] = 16.489 dict_out["omega_ye"] = 0.02057 dict_out["B_e"] = 1.689824 dict_out["alpha_e"] = 0.019363 dict_out["D_e"] = 5.32e-6 dict_out["r_e"] = 1.1164e-10 # https://webbook.nist.gov/cgi/cbook.cgi?Name=NO&Units=SI&cDI=on if molecule == "NO": dict_out["omega_e"] = 1904.1346 dict_out["omega_xe"] = 14.08836 dict_out["omega_ye"] = 0.01005 dict_out["B_e"] = 1.704885 dict_out["alpha_e"] = 0.0175416 dict_out["D_e"] = 0.54e-6 dict_out["r_e"] = 1.15077e-10 # https://webbook.nist.gov/cgi/cbook.cgi?Name=N2&Units=SI&cDI=on if molecule == "N2": dict_out["omega_e"] = 2358.57 dict_out["omega_xe"] = 14.324 dict_out["omega_ye"] = -0.00226 dict_out["B_e"] = 1.998241 dict_out["alpha_e"] = 0.017318 dict_out["D_e"] = 5.9e-6 dict_out["r_e"] = 1.2126e-10 # https://webbook.nist.gov/cgi/cbook.cgi?Name=O2&Units=SI&cDI=on if molecule == "O2": dict_out["omega_e"] = 1580.161 dict_out["omega_xe"] = 11.95127 dict_out["omega_ye"] = 0.0458489 dict_out["B_e"] = 1.44562 dict_out["alpha_e"] = 0.0159305 dict_out["D_e"] = 4.839e-6 dict_out["r_e"] = 1.20752e-10 return dict_out # wavenumber units #[cm^-1]