sciforge-lib 0.0.4

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

pub const TABLE: &[ElectroOptic] = &[
    ElectroOptic { formula: "LiNbO3", pockels_r_pm_per_v: 30.8, kerr_n2_m2_per_w: 1.8e-19, n_ref: 2.286 },
    ElectroOptic { formula: "KDP",    pockels_r_pm_per_v: 10.5, kerr_n2_m2_per_w: 2.0e-20, n_ref: 1.510 },
    ElectroOptic { formula: "BBO",    pockels_r_pm_per_v: 2.7,  kerr_n2_m2_per_w: 4.5e-20, n_ref: 1.655 },
    ElectroOptic { formula: "KTP",    pockels_r_pm_per_v: 36.3, kerr_n2_m2_per_w: 2.4e-19, n_ref: 1.840 },
    ElectroOptic { formula: "BaTiO3", pockels_r_pm_per_v: 730.0,kerr_n2_m2_per_w: 0.0,     n_ref: 2.420 },
    ElectroOptic { formula: "SiO2",   pockels_r_pm_per_v: 0.0,  kerr_n2_m2_per_w: 2.7e-20, n_ref: 1.458 },
    ElectroOptic { formula: "Si",     pockels_r_pm_per_v: 0.0,  kerr_n2_m2_per_w: 4.5e-18, n_ref: 3.480 },
    ElectroOptic { formula: "GaAs",   pockels_r_pm_per_v: 1.43, kerr_n2_m2_per_w: 1.5e-17, n_ref: 3.470 },
    ElectroOptic { formula: "RTP",    pockels_r_pm_per_v: 38.5, kerr_n2_m2_per_w: 2.4e-19, n_ref: 1.769 },
];

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