sciforge-lib 0.0.4

Scientific computing library — mathematics, physics, chemistry, biology, astronomy, geology, meteorology.
Documentation
#[derive(Debug, Clone, Copy)]
pub struct BinaryDiffusivity {
    pub solute: &'static str,
    pub solvent: &'static str,
    pub d_m2_per_s: f64,
    pub temperature_k: f64,
    pub phase: &'static str,
}

pub const TABLE: &[BinaryDiffusivity] = &[
    BinaryDiffusivity { solute: "H2",   solvent: "AIR",  d_m2_per_s: 6.11e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "He",   solvent: "AIR",  d_m2_per_s: 6.24e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "O2",   solvent: "AIR",  d_m2_per_s: 1.78e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "N2",   solvent: "AIR",  d_m2_per_s: 1.78e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "CO2",  solvent: "AIR",  d_m2_per_s: 1.38e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "CO",   solvent: "AIR",  d_m2_per_s: 1.85e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "H2O",  solvent: "AIR",  d_m2_per_s: 2.20e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "NH3",  solvent: "AIR",  d_m2_per_s: 1.98e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "SO2",  solvent: "AIR",  d_m2_per_s: 1.22e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "CH4",  solvent: "AIR",  d_m2_per_s: 1.96e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "C2H6", solvent: "AIR",  d_m2_per_s: 1.08e-5,  temperature_k: 273.15, phase: "gas" },
    BinaryDiffusivity { solute: "C6H6", solvent: "AIR",  d_m2_per_s: 8.80e-6,  temperature_k: 298.15, phase: "gas" },
    BinaryDiffusivity { solute: "C2H5OH",solvent: "AIR", d_m2_per_s: 1.19e-5,  temperature_k: 298.15, phase: "gas" },
    BinaryDiffusivity { solute: "Cl2",  solvent: "AIR",  d_m2_per_s: 1.24e-5,  temperature_k: 273.15, phase: "gas" },

    BinaryDiffusivity { solute: "O2",   solvent: "H2O",  d_m2_per_s: 2.10e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "N2",   solvent: "H2O",  d_m2_per_s: 1.88e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "H2",   solvent: "H2O",  d_m2_per_s: 4.50e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "CO2",  solvent: "H2O",  d_m2_per_s: 1.92e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "CH4",  solvent: "H2O",  d_m2_per_s: 1.49e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "NH3",  solvent: "H2O",  d_m2_per_s: 1.64e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "Cl2",  solvent: "H2O",  d_m2_per_s: 1.25e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "NaCl", solvent: "H2O",  d_m2_per_s: 1.61e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "KCl",  solvent: "H2O",  d_m2_per_s: 1.99e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "C6H12O6",solvent:"H2O", d_m2_per_s: 6.73e-10, temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "CH4N2O",solvent: "H2O", d_m2_per_s: 1.38e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "C2H5OH",solvent: "H2O", d_m2_per_s: 1.24e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "CH3OH",solvent: "H2O",  d_m2_per_s: 1.58e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "C3H6O",solvent: "H2O",  d_m2_per_s: 1.28e-9,  temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "C6H6", solvent: "C2H5OH",d_m2_per_s: 1.81e-9, temperature_k: 298.15, phase: "liquid" },
    BinaryDiffusivity { solute: "I2",   solvent: "C6H6", d_m2_per_s: 2.13e-9,  temperature_k: 298.15, phase: "liquid" },
];

pub fn by_pair(solute: &str, solvent: &str) -> Option<&'static BinaryDiffusivity> {
    TABLE.iter().find(|d| d.solute == solute && d.solvent == solvent)
}