sciforge-lib 0.0.4

Scientific computing library — mathematics, physics, chemistry, biology, astronomy, geology, meteorology.
Documentation
#[derive(Debug, Clone, Copy)]
pub struct WaveSpeeds {
    pub formula: &'static str,
    pub p_wave_m_per_s: f64,
    pub s_wave_m_per_s: f64,
    pub rayleigh_m_per_s: f64,
    pub bar_m_per_s: f64,
}

pub const TABLE: &[WaveSpeeds] = &[
    WaveSpeeds { formula: "Fe",          p_wave_m_per_s: 5960.0, s_wave_m_per_s: 3240.0, rayleigh_m_per_s: 2980.0, bar_m_per_s: 5180.0 },
    WaveSpeeds { formula: "AISI_1020",   p_wave_m_per_s: 5890.0, s_wave_m_per_s: 3240.0, rayleigh_m_per_s: 2980.0, bar_m_per_s: 5100.0 },
    WaveSpeeds { formula: "AISI_304",    p_wave_m_per_s: 5790.0, s_wave_m_per_s: 3100.0, rayleigh_m_per_s: 2870.0, bar_m_per_s: 5000.0 },
    WaveSpeeds { formula: "Al",          p_wave_m_per_s: 6420.0, s_wave_m_per_s: 3040.0, rayleigh_m_per_s: 2900.0, bar_m_per_s: 5050.0 },
    WaveSpeeds { formula: "Al_6061_T6",  p_wave_m_per_s: 6320.0, s_wave_m_per_s: 3100.0, rayleigh_m_per_s: 2900.0, bar_m_per_s: 5050.0 },
    WaveSpeeds { formula: "Cu",          p_wave_m_per_s: 4760.0, s_wave_m_per_s: 2325.0, rayleigh_m_per_s: 2150.0, bar_m_per_s: 3700.0 },
    WaveSpeeds { formula: "Au",          p_wave_m_per_s: 3240.0, s_wave_m_per_s: 1200.0, rayleigh_m_per_s: 1100.0, bar_m_per_s: 2030.0 },
    WaveSpeeds { formula: "Ag",          p_wave_m_per_s: 3650.0, s_wave_m_per_s: 1610.0, rayleigh_m_per_s: 1480.0, bar_m_per_s: 2680.0 },
    WaveSpeeds { formula: "Ti",          p_wave_m_per_s: 6070.0, s_wave_m_per_s: 3125.0, rayleigh_m_per_s: 2900.0, bar_m_per_s: 5080.0 },
    WaveSpeeds { formula: "Ti_6Al_4V",   p_wave_m_per_s: 6100.0, s_wave_m_per_s: 3120.0, rayleigh_m_per_s: 2900.0, bar_m_per_s: 5070.0 },
    WaveSpeeds { formula: "Ni",          p_wave_m_per_s: 5630.0, s_wave_m_per_s: 2960.0, rayleigh_m_per_s: 2730.0, bar_m_per_s: 4800.0 },
    WaveSpeeds { formula: "Pb",          p_wave_m_per_s: 1960.0, s_wave_m_per_s: 690.0,  rayleigh_m_per_s: 640.0,  bar_m_per_s: 1190.0 },
    WaveSpeeds { formula: "W",           p_wave_m_per_s: 5200.0, s_wave_m_per_s: 2870.0, rayleigh_m_per_s: 2640.0, bar_m_per_s: 4620.0 },
    WaveSpeeds { formula: "Mg",          p_wave_m_per_s: 5770.0, s_wave_m_per_s: 3050.0, rayleigh_m_per_s: 2810.0, bar_m_per_s: 4940.0 },
    WaveSpeeds { formula: "Si",          p_wave_m_per_s: 8430.0, s_wave_m_per_s: 5840.0, rayleigh_m_per_s: 5020.0, bar_m_per_s: 7700.0 },
    WaveSpeeds { formula: "diamond",     p_wave_m_per_s: 17500.0,s_wave_m_per_s: 12300.0,rayleigh_m_per_s: 11200.0,bar_m_per_s: 17300.0 },
    WaveSpeeds { formula: "Al2O3",       p_wave_m_per_s: 10520.0,s_wave_m_per_s: 6160.0, rayleigh_m_per_s: 5500.0, bar_m_per_s: 9670.0 },
    WaveSpeeds { formula: "SiC",         p_wave_m_per_s: 11930.0,s_wave_m_per_s: 7340.0, rayleigh_m_per_s: 6620.0, bar_m_per_s: 11290.0 },
    WaveSpeeds { formula: "glass_soda",  p_wave_m_per_s: 5660.0, s_wave_m_per_s: 3420.0, rayleigh_m_per_s: 3140.0, bar_m_per_s: 5290.0 },
    WaveSpeeds { formula: "concrete",    p_wave_m_per_s: 3700.0, s_wave_m_per_s: 2200.0, rayleigh_m_per_s: 2030.0, bar_m_per_s: 3500.0 },
    WaveSpeeds { formula: "wood_pine",   p_wave_m_per_s: 4200.0, s_wave_m_per_s: 1300.0, rayleigh_m_per_s: 1200.0, bar_m_per_s: 4200.0 },
    WaveSpeeds { formula: "PMMA",        p_wave_m_per_s: 2700.0, s_wave_m_per_s: 1300.0, rayleigh_m_per_s: 1200.0, bar_m_per_s: 2200.0 },
];

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