sciforge-lib 0.0.4

Scientific computing library — mathematics, physics, chemistry, biology, astronomy, geology, meteorology.
Documentation
#[derive(Debug, Clone, Copy)]
pub struct MagneticProperties {
    pub formula: &'static str,
    pub relative_permeability: f64,
    pub saturation_flux_density_t: f64,
    pub coercivity_a_per_m: f64,
    pub curie_temperature_k: f64,
    pub kind: &'static str,
}

pub const TABLE: &[MagneticProperties] = &[
    MagneticProperties { formula: "VAC",     relative_permeability: 1.0,        saturation_flux_density_t: 0.0,  coercivity_a_per_m: 0.0,    curie_temperature_k: 0.0,    kind: "vacuum" },
    MagneticProperties { formula: "AIR",     relative_permeability: 1.0000004,  saturation_flux_density_t: 0.0,  coercivity_a_per_m: 0.0,    curie_temperature_k: 0.0,    kind: "para" },
    MagneticProperties { formula: "Cu",      relative_permeability: 0.999994,   saturation_flux_density_t: 0.0,  coercivity_a_per_m: 0.0,    curie_temperature_k: 0.0,    kind: "dia" },
    MagneticProperties { formula: "Al",      relative_permeability: 1.000022,   saturation_flux_density_t: 0.0,  coercivity_a_per_m: 0.0,    curie_temperature_k: 0.0,    kind: "para" },
    MagneticProperties { formula: "Ag",      relative_permeability: 0.99998,    saturation_flux_density_t: 0.0,  coercivity_a_per_m: 0.0,    curie_temperature_k: 0.0,    kind: "dia" },
    MagneticProperties { formula: "Au",      relative_permeability: 0.99996,    saturation_flux_density_t: 0.0,  coercivity_a_per_m: 0.0,    curie_temperature_k: 0.0,    kind: "dia" },
    MagneticProperties { formula: "Fe",      relative_permeability: 5000.0,     saturation_flux_density_t: 2.15, coercivity_a_per_m: 80.0,   curie_temperature_k: 1043.0, kind: "ferro" },
    MagneticProperties { formula: "Ni",      relative_permeability: 600.0,      saturation_flux_density_t: 0.61, coercivity_a_per_m: 56.0,   curie_temperature_k: 627.0,  kind: "ferro" },
    MagneticProperties { formula: "Co",      relative_permeability: 250.0,      saturation_flux_density_t: 1.79, coercivity_a_per_m: 800.0,  curie_temperature_k: 1388.0, kind: "ferro" },
    MagneticProperties { formula: "Mu",      relative_permeability: 80000.0,    saturation_flux_density_t: 0.80, coercivity_a_per_m: 4.0,    curie_temperature_k: 723.0,  kind: "ferro" },
    MagneticProperties { formula: "Permalloy", relative_permeability: 100000.0, saturation_flux_density_t: 1.05, coercivity_a_per_m: 4.0,    curie_temperature_k: 733.0,  kind: "ferro" },
    MagneticProperties { formula: "MnZn",    relative_permeability: 1500.0,     saturation_flux_density_t: 0.50, coercivity_a_per_m: 25.0,   curie_temperature_k: 473.0,  kind: "ferri" },
    MagneticProperties { formula: "NiZn",    relative_permeability: 100.0,      saturation_flux_density_t: 0.35, coercivity_a_per_m: 200.0,  curie_temperature_k: 573.0,  kind: "ferri" },
    MagneticProperties { formula: "NdFeB",   relative_permeability: 1.05,       saturation_flux_density_t: 1.40, coercivity_a_per_m: 8.7e5,  curie_temperature_k: 583.0,  kind: "hard" },
    MagneticProperties { formula: "SmCo",    relative_permeability: 1.05,       saturation_flux_density_t: 1.05, coercivity_a_per_m: 7.0e5,  curie_temperature_k: 1073.0, kind: "hard" },
    MagneticProperties { formula: "AlNiCo",  relative_permeability: 4.0,        saturation_flux_density_t: 1.25, coercivity_a_per_m: 4.0e4,  curie_temperature_k: 1133.0, kind: "hard" },
    MagneticProperties { formula: "Gd",      relative_permeability: 50.0,       saturation_flux_density_t: 2.60, coercivity_a_per_m: 80.0,   curie_temperature_k: 292.0,  kind: "ferro" },
];

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