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 HDPE: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "High-density polyethylene",
    formula: "C2H4",
    family: MaterialFamily::Plastic,
    density_kg_m3: 960.0,
    young_modulus_pa: 1.07e9,
    poisson_ratio: 0.46,
    yield_strength_pa: 28.0e6,
    ultimate_strength_pa: 32.0e6,
    thermal_conductivity_w_mk: 0.49,
    thermal_expansion_per_k: 200.0e-6,
    specific_heat_j_kgk: 1900.0,
    max_service_temp_k: 393.0,
    fatigue_strength_coeff_pa: 60.0e6,
    fatigue_strength_exponent: -0.10,
    hardness_hv: 6.0,
    cost_eur_kg: 1.5,
});

pub static PP: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "Polypropylene",
    formula: "C3H6",
    family: MaterialFamily::Plastic,
    density_kg_m3: 905.0,
    young_modulus_pa: 1.5e9,
    poisson_ratio: 0.42,
    yield_strength_pa: 36.0e6,
    ultimate_strength_pa: 38.0e6,
    thermal_conductivity_w_mk: 0.22,
    thermal_expansion_per_k: 150.0e-6,
    specific_heat_j_kgk: 1920.0,
    max_service_temp_k: 373.0,
    fatigue_strength_coeff_pa: 70.0e6,
    fatigue_strength_exponent: -0.10,
    hardness_hv: 8.0,
    cost_eur_kg: 1.6,
});

pub static PA6: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "Polyamide 6 (Nylon 6)",
    formula: "C6H11NO",
    family: MaterialFamily::Plastic,
    density_kg_m3: 1140.0,
    young_modulus_pa: 2.7e9,
    poisson_ratio: 0.39,
    yield_strength_pa: 70.0e6,
    ultimate_strength_pa: 80.0e6,
    thermal_conductivity_w_mk: 0.25,
    thermal_expansion_per_k: 80.0e-6,
    specific_heat_j_kgk: 1700.0,
    max_service_temp_k: 423.0,
    fatigue_strength_coeff_pa: 130.0e6,
    fatigue_strength_exponent: -0.09,
    hardness_hv: 13.0,
    cost_eur_kg: 3.5,
});

pub static PA66: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "Polyamide 66 (Nylon 66)",
    formula: "C12H22N2O2",
    family: MaterialFamily::Plastic,
    density_kg_m3: 1140.0,
    young_modulus_pa: 3.3e9,
    poisson_ratio: 0.39,
    yield_strength_pa: 85.0e6,
    ultimate_strength_pa: 95.0e6,
    thermal_conductivity_w_mk: 0.25,
    thermal_expansion_per_k: 80.0e-6,
    specific_heat_j_kgk: 1670.0,
    max_service_temp_k: 423.0,
    fatigue_strength_coeff_pa: 150.0e6,
    fatigue_strength_exponent: -0.09,
    hardness_hv: 15.0,
    cost_eur_kg: 4.0,
});

pub static POM: LazyLock<Material> = LazyLock::new(|| Material {
    element: None,
    name: "Polyoxymethylene (Delrin)",
    formula: "CH2O",
    family: MaterialFamily::Plastic,
    density_kg_m3: 1410.0,
    young_modulus_pa: 3.1e9,
    poisson_ratio: 0.35,
    yield_strength_pa: 70.0e6,
    ultimate_strength_pa: 75.0e6,
    thermal_conductivity_w_mk: 0.31,
    thermal_expansion_per_k: 110.0e-6,
    specific_heat_j_kgk: 1465.0,
    max_service_temp_k: 363.0,
    fatigue_strength_coeff_pa: 130.0e6,
    fatigue_strength_exponent: -0.10,
    hardness_hv: 16.0,
    cost_eur_kg: 4.5,
});