sciforge-lib 0.0.4

Scientific computing library — mathematics, physics, chemistry, biology, astronomy, geology, meteorology.
Documentation
#[derive(Debug, Clone, Copy)]
pub struct HeatCapacity {
    pub formula: &'static str,
    pub cp_j_molk_298: f64,
    pub cv_j_molk_298: f64,
    pub phase: &'static str,
}

pub const TABLE: &[HeatCapacity] = &[
    HeatCapacity { formula: "AIR",  cp_j_molk_298: 29.107, cv_j_molk_298: 20.793, phase: "gas" },
    HeatCapacity { formula: "H2",   cp_j_molk_298: 28.836, cv_j_molk_298: 20.522, phase: "gas" },
    HeatCapacity { formula: "N2",   cp_j_molk_298: 29.124, cv_j_molk_298: 20.810, phase: "gas" },
    HeatCapacity { formula: "O2",   cp_j_molk_298: 29.378, cv_j_molk_298: 21.064, phase: "gas" },
    HeatCapacity { formula: "O3",   cp_j_molk_298: 39.20,  cv_j_molk_298: 30.886, phase: "gas" },
    HeatCapacity { formula: "Cl2",  cp_j_molk_298: 33.949, cv_j_molk_298: 25.635, phase: "gas" },
    HeatCapacity { formula: "F2",   cp_j_molk_298: 31.302, cv_j_molk_298: 22.988, phase: "gas" },
    HeatCapacity { formula: "He",   cp_j_molk_298: 20.786, cv_j_molk_298: 12.472, phase: "gas" },
    HeatCapacity { formula: "Ne",   cp_j_molk_298: 20.786, cv_j_molk_298: 12.472, phase: "gas" },
    HeatCapacity { formula: "Ar",   cp_j_molk_298: 20.786, cv_j_molk_298: 12.472, phase: "gas" },
    HeatCapacity { formula: "Kr",   cp_j_molk_298: 20.786, cv_j_molk_298: 12.472, phase: "gas" },
    HeatCapacity { formula: "Xe",   cp_j_molk_298: 20.786, cv_j_molk_298: 12.472, phase: "gas" },
    HeatCapacity { formula: "CO",   cp_j_molk_298: 29.142, cv_j_molk_298: 20.828, phase: "gas" },
    HeatCapacity { formula: "CO2",  cp_j_molk_298: 37.135, cv_j_molk_298: 28.821, phase: "gas" },
    HeatCapacity { formula: "H2O",  cp_j_molk_298: 33.577, cv_j_molk_298: 25.263, phase: "gas" },
    HeatCapacity { formula: "NH3",  cp_j_molk_298: 35.640, cv_j_molk_298: 27.326, phase: "gas" },
    HeatCapacity { formula: "H2S",  cp_j_molk_298: 34.192, cv_j_molk_298: 25.878, phase: "gas" },
    HeatCapacity { formula: "SO2",  cp_j_molk_298: 39.870, cv_j_molk_298: 31.556, phase: "gas" },
    HeatCapacity { formula: "SO3",  cp_j_molk_298: 50.670, cv_j_molk_298: 42.356, phase: "gas" },
    HeatCapacity { formula: "NO",   cp_j_molk_298: 29.844, cv_j_molk_298: 21.530, phase: "gas" },
    HeatCapacity { formula: "NO2",  cp_j_molk_298: 36.974, cv_j_molk_298: 28.660, phase: "gas" },
    HeatCapacity { formula: "N2O",  cp_j_molk_298: 38.450, cv_j_molk_298: 30.136, phase: "gas" },
    HeatCapacity { formula: "SF6",  cp_j_molk_298: 97.280, cv_j_molk_298: 88.966, phase: "gas" },
    HeatCapacity { formula: "CH4",  cp_j_molk_298: 35.690, cv_j_molk_298: 27.376, phase: "gas" },
    HeatCapacity { formula: "C2H6", cp_j_molk_298: 52.490, cv_j_molk_298: 44.176, phase: "gas" },
    HeatCapacity { formula: "C3H8", cp_j_molk_298: 73.600, cv_j_molk_298: 65.286, phase: "gas" },
    HeatCapacity { formula: "C4H10",cp_j_molk_298: 98.490, cv_j_molk_298: 90.176, phase: "gas" },
    HeatCapacity { formula: "C2H4", cp_j_molk_298: 42.886, cv_j_molk_298: 34.572, phase: "gas" },
    HeatCapacity { formula: "C2H2", cp_j_molk_298: 44.036, cv_j_molk_298: 35.722, phase: "gas" },

    HeatCapacity { formula: "H2O",     cp_j_molk_298: 75.327, cv_j_molk_298: 74.539, phase: "liquid" },
    HeatCapacity { formula: "CH3OH",   cp_j_molk_298: 81.080, cv_j_molk_298: 67.400, phase: "liquid" },
    HeatCapacity { formula: "C2H5OH",  cp_j_molk_298: 112.40, cv_j_molk_298: 95.000, phase: "liquid" },
    HeatCapacity { formula: "C3H8O3",  cp_j_molk_298: 218.90, cv_j_molk_298: 205.60, phase: "liquid" },
    HeatCapacity { formula: "C6H6",    cp_j_molk_298: 135.69, cv_j_molk_298: 116.50, phase: "liquid" },
    HeatCapacity { formula: "C7H8",    cp_j_molk_298: 157.30, cv_j_molk_298: 137.10, phase: "liquid" },
    HeatCapacity { formula: "C8H10",   cp_j_molk_298: 181.50, cv_j_molk_298: 161.20, phase: "liquid" },
    HeatCapacity { formula: "CHCl3",   cp_j_molk_298: 114.25, cv_j_molk_298: 96.000, phase: "liquid" },
    HeatCapacity { formula: "CH2Cl2",  cp_j_molk_298: 100.00, cv_j_molk_298: 82.000, phase: "liquid" },
    HeatCapacity { formula: "CCl4",    cp_j_molk_298: 132.59, cv_j_molk_298: 113.50, phase: "liquid" },
    HeatCapacity { formula: "C3H6O",   cp_j_molk_298: 125.45, cv_j_molk_298: 107.20, phase: "liquid" },
    HeatCapacity { formula: "Hg",      cp_j_molk_298: 27.983, cv_j_molk_298: 24.300, phase: "liquid" },

    HeatCapacity { formula: "Fe",     cp_j_molk_298: 25.10,  cv_j_molk_298: 25.10,  phase: "solid" },
    HeatCapacity { formula: "Al",     cp_j_molk_298: 24.20,  cv_j_molk_298: 24.20,  phase: "solid" },
    HeatCapacity { formula: "Cu",     cp_j_molk_298: 24.44,  cv_j_molk_298: 24.44,  phase: "solid" },
    HeatCapacity { formula: "Au",     cp_j_molk_298: 25.42,  cv_j_molk_298: 25.42,  phase: "solid" },
    HeatCapacity { formula: "Ag",     cp_j_molk_298: 25.35,  cv_j_molk_298: 25.35,  phase: "solid" },
    HeatCapacity { formula: "Ni",     cp_j_molk_298: 26.07,  cv_j_molk_298: 26.07,  phase: "solid" },
    HeatCapacity { formula: "Ti",     cp_j_molk_298: 25.06,  cv_j_molk_298: 25.06,  phase: "solid" },
    HeatCapacity { formula: "Mg",     cp_j_molk_298: 24.87,  cv_j_molk_298: 24.87,  phase: "solid" },
    HeatCapacity { formula: "Zn",     cp_j_molk_298: 25.39,  cv_j_molk_298: 25.39,  phase: "solid" },
    HeatCapacity { formula: "Pb",     cp_j_molk_298: 26.65,  cv_j_molk_298: 26.65,  phase: "solid" },
    HeatCapacity { formula: "C",      cp_j_molk_298: 8.517,  cv_j_molk_298: 8.517,  phase: "solid" },
    HeatCapacity { formula: "Si",     cp_j_molk_298: 19.789, cv_j_molk_298: 19.789, phase: "solid" },
    HeatCapacity { formula: "SiO2",   cp_j_molk_298: 44.43,  cv_j_molk_298: 44.43,  phase: "solid" },
    HeatCapacity { formula: "Al2O3",  cp_j_molk_298: 79.04,  cv_j_molk_298: 79.04,  phase: "solid" },
    HeatCapacity { formula: "Fe2O3",  cp_j_molk_298: 103.85, cv_j_molk_298: 103.85, phase: "solid" },
    HeatCapacity { formula: "CaCO3",  cp_j_molk_298: 83.47,  cv_j_molk_298: 83.47,  phase: "solid" },
    HeatCapacity { formula: "NaCl",   cp_j_molk_298: 50.50,  cv_j_molk_298: 50.50,  phase: "solid" },
    HeatCapacity { formula: "MgO",    cp_j_molk_298: 37.03,  cv_j_molk_298: 37.03,  phase: "solid" },
    HeatCapacity { formula: "TiO2",   cp_j_molk_298: 55.06,  cv_j_molk_298: 55.06,  phase: "solid" },
    HeatCapacity { formula: "Ni",     cp_j_molk_298: 26.07,  cv_j_molk_298: 26.07,  phase: "solid" },
    HeatCapacity { formula: "W",      cp_j_molk_298: 24.27,  cv_j_molk_298: 24.27,  phase: "solid" },
    HeatCapacity { formula: "Mo",     cp_j_molk_298: 24.06,  cv_j_molk_298: 24.06,  phase: "solid" },
    HeatCapacity { formula: "Pt",     cp_j_molk_298: 25.86,  cv_j_molk_298: 25.86,  phase: "solid" },
    HeatCapacity { formula: "Sn",     cp_j_molk_298: 27.11,  cv_j_molk_298: 27.11,  phase: "solid" },
    HeatCapacity { formula: "Cr",     cp_j_molk_298: 23.35,  cv_j_molk_298: 23.35,  phase: "solid" },
    HeatCapacity { formula: "Mn",     cp_j_molk_298: 26.32,  cv_j_molk_298: 26.32,  phase: "solid" },
    HeatCapacity { formula: "Co",     cp_j_molk_298: 24.81,  cv_j_molk_298: 24.81,  phase: "solid" },
    HeatCapacity { formula: "U",      cp_j_molk_298: 27.665, cv_j_molk_298: 27.665, phase: "solid" },
    HeatCapacity { formula: "Li",     cp_j_molk_298: 24.860, cv_j_molk_298: 24.860, phase: "solid" },
    HeatCapacity { formula: "Na",     cp_j_molk_298: 28.230, cv_j_molk_298: 28.230, phase: "solid" },
    HeatCapacity { formula: "K",      cp_j_molk_298: 29.600, cv_j_molk_298: 29.600, phase: "solid" },
    HeatCapacity { formula: "Ca",     cp_j_molk_298: 25.929, cv_j_molk_298: 25.929, phase: "solid" },
    HeatCapacity { formula: "S",      cp_j_molk_298: 22.75,  cv_j_molk_298: 22.75,  phase: "solid" },
    HeatCapacity { formula: "P",      cp_j_molk_298: 23.84,  cv_j_molk_298: 23.84,  phase: "solid" },
    HeatCapacity { formula: "I2",     cp_j_molk_298: 54.44,  cv_j_molk_298: 54.44,  phase: "solid" },
    HeatCapacity { formula: "KCl",    cp_j_molk_298: 51.30,  cv_j_molk_298: 51.30,  phase: "solid" },
    HeatCapacity { formula: "CaF2",   cp_j_molk_298: 67.03,  cv_j_molk_298: 67.03,  phase: "solid" },
    HeatCapacity { formula: "ZnO",    cp_j_molk_298: 40.30,  cv_j_molk_298: 40.30,  phase: "solid" },
    HeatCapacity { formula: "CuO",    cp_j_molk_298: 42.30,  cv_j_molk_298: 42.30,  phase: "solid" },

    HeatCapacity { formula: "Br2",    cp_j_molk_298: 36.05,  cv_j_molk_298: 27.74,  phase: "gas" },
    HeatCapacity { formula: "I2",     cp_j_molk_298: 36.90,  cv_j_molk_298: 28.59,  phase: "gas" },
    HeatCapacity { formula: "HCl",    cp_j_molk_298: 29.14,  cv_j_molk_298: 20.83,  phase: "gas" },
    HeatCapacity { formula: "HF",     cp_j_molk_298: 29.13,  cv_j_molk_298: 20.82,  phase: "gas" },
    HeatCapacity { formula: "HBr",    cp_j_molk_298: 29.14,  cv_j_molk_298: 20.83,  phase: "gas" },
    HeatCapacity { formula: "HI",     cp_j_molk_298: 29.16,  cv_j_molk_298: 20.85,  phase: "gas" },
    HeatCapacity { formula: "HCN",    cp_j_molk_298: 35.86,  cv_j_molk_298: 27.55,  phase: "gas" },
    HeatCapacity { formula: "CS2",    cp_j_molk_298: 45.40,  cv_j_molk_298: 37.09,  phase: "gas" },
    HeatCapacity { formula: "CH2O",   cp_j_molk_298: 35.39,  cv_j_molk_298: 27.08,  phase: "gas" },
    HeatCapacity { formula: "CF4",    cp_j_molk_298: 61.05,  cv_j_molk_298: 52.74,  phase: "gas" },
    HeatCapacity { formula: "CH3OH",  cp_j_molk_298: 43.89,  cv_j_molk_298: 35.58,  phase: "gas" },
    HeatCapacity { formula: "C2H5OH", cp_j_molk_298: 65.44,  cv_j_molk_298: 57.13,  phase: "gas" },
    HeatCapacity { formula: "C5H12",  cp_j_molk_298: 120.20, cv_j_molk_298: 111.89, phase: "gas" },
    HeatCapacity { formula: "C6H14",  cp_j_molk_298: 143.10, cv_j_molk_298: 134.79, phase: "gas" },
    HeatCapacity { formula: "C7H16",  cp_j_molk_298: 165.20, cv_j_molk_298: 156.89, phase: "gas" },
    HeatCapacity { formula: "C8H18",  cp_j_molk_298: 188.87, cv_j_molk_298: 180.56, phase: "gas" },
    HeatCapacity { formula: "C6H6",   cp_j_molk_298: 82.44,  cv_j_molk_298: 74.13,  phase: "gas" },
    HeatCapacity { formula: "C7H8",   cp_j_molk_298: 103.64, cv_j_molk_298: 95.33,  phase: "gas" },
    HeatCapacity { formula: "PH3",    cp_j_molk_298: 37.11,  cv_j_molk_298: 28.80,  phase: "gas" },
    HeatCapacity { formula: "SiH4",   cp_j_molk_298: 42.84,  cv_j_molk_298: 34.53,  phase: "gas" },
    HeatCapacity { formula: "BF3",    cp_j_molk_298: 50.46,  cv_j_molk_298: 42.15,  phase: "gas" },

    HeatCapacity { formula: "C5H12",  cp_j_molk_298: 167.20, cv_j_molk_298: 167.20, phase: "liquid" },
    HeatCapacity { formula: "C6H14",  cp_j_molk_298: 195.61, cv_j_molk_298: 195.61, phase: "liquid" },
    HeatCapacity { formula: "C7H16",  cp_j_molk_298: 224.64, cv_j_molk_298: 224.64, phase: "liquid" },
    HeatCapacity { formula: "C8H18",  cp_j_molk_298: 254.77, cv_j_molk_298: 254.77, phase: "liquid" },
    HeatCapacity { formula: "Br2",    cp_j_molk_298: 75.69,  cv_j_molk_298: 75.69,  phase: "liquid" },
    HeatCapacity { formula: "CS2",    cp_j_molk_298: 76.41,  cv_j_molk_298: 76.41,  phase: "liquid" },
    HeatCapacity { formula: "C2H4O2", cp_j_molk_298: 123.10, cv_j_molk_298: 123.10, phase: "liquid" },
    HeatCapacity { formula: "CH2FCF3", cp_j_molk_298: 85.40, cv_j_molk_298: 77.09, phase: "gas" },
    HeatCapacity { formula: "R410A",   cp_j_molk_298: 56.80, cv_j_molk_298: 49.10, phase: "gas" },
    HeatCapacity { formula: "CH2F2",   cp_j_molk_298: 44.42, cv_j_molk_298: 36.10, phase: "gas" },
    HeatCapacity { formula: "C2HF5",   cp_j_molk_298: 95.65, cv_j_molk_298: 87.34, phase: "gas" },
    HeatCapacity { formula: "C3H2F4",  cp_j_molk_298: 107.76, cv_j_molk_298: 99.45, phase: "gas" },
];

pub fn by_formula(formula: &str) -> Option<&'static HeatCapacity> {
    TABLE.iter().find(|h| h.formula == formula)
}

pub fn by_formula_phase(formula: &str, phase: &str) -> Option<&'static HeatCapacity> {
    TABLE.iter().find(|h| h.formula == formula && h.phase == phase)
}