sciforge-core 0.0.4

Shared engineering primitives: materials, fasteners, fluids, propulsion taxonomies, std components.
Documentation
use std::sync::LazyLock;
use super::super::{Material, MaterialFamily};

pub static NBR: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "NBR nitrile rubber",
    formula: "C7H9N",
    family: MaterialFamily::Plastic,
    density_kg_m3: 1000.0,
    young_modulus_pa: 0.01e9,
    poisson_ratio: 0.49,
    yield_strength_pa: 15.0e6,
    ultimate_strength_pa: 25.0e6,
    thermal_conductivity_w_mk: 0.25,
    thermal_expansion_per_k: 230.0e-6,
    specific_heat_j_kgk: 2010.0,
    max_service_temp_k: 393.0,
    fatigue_strength_coeff_pa: 30.0e6,
    fatigue_strength_exponent: -0.12,
    hardness_hv: 1.0,
    cost_eur_kg: 4.0,
});

pub static FKM_VITON: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "FKM Viton fluoroelastomer",
    formula: "C5H3F7",
    family: MaterialFamily::Plastic,
    density_kg_m3: 1850.0,
    young_modulus_pa: 0.012e9,
    poisson_ratio: 0.49,
    yield_strength_pa: 10.0e6,
    ultimate_strength_pa: 18.0e6,
    thermal_conductivity_w_mk: 0.20,
    thermal_expansion_per_k: 160.0e-6,
    specific_heat_j_kgk: 1500.0,
    max_service_temp_k: 523.0,
    fatigue_strength_coeff_pa: 22.0e6,
    fatigue_strength_exponent: -0.12,
    hardness_hv: 1.5,
    cost_eur_kg: 35.0,
});

pub static EPDM: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "EPDM ethylene propylene rubber",
    formula: "C5H10",
    family: MaterialFamily::Plastic,
    density_kg_m3: 860.0,
    young_modulus_pa: 0.005e9,
    poisson_ratio: 0.49,
    yield_strength_pa: 12.0e6,
    ultimate_strength_pa: 22.0e6,
    thermal_conductivity_w_mk: 0.36,
    thermal_expansion_per_k: 200.0e-6,
    specific_heat_j_kgk: 2200.0,
    max_service_temp_k: 423.0,
    fatigue_strength_coeff_pa: 25.0e6,
    fatigue_strength_exponent: -0.12,
    hardness_hv: 1.0,
    cost_eur_kg: 3.5,
});

pub static SILICONE_VMQ: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "VMQ silicone rubber",
    formula: "SiOC2H6",
    family: MaterialFamily::Plastic,
    density_kg_m3: 1100.0,
    young_modulus_pa: 0.005e9,
    poisson_ratio: 0.49,
    yield_strength_pa: 7.0e6,
    ultimate_strength_pa: 10.0e6,
    thermal_conductivity_w_mk: 0.20,
    thermal_expansion_per_k: 320.0e-6,
    specific_heat_j_kgk: 1300.0,
    max_service_temp_k: 523.0,
    fatigue_strength_coeff_pa: 14.0e6,
    fatigue_strength_exponent: -0.12,
    hardness_hv: 1.0,
    cost_eur_kg: 12.0,
});