sciforge-core 0.0.4

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

pub static STEEL_4340: LazyLock<Material> = LazyLock::new(|| Material {
    element: by_symbol("Fe"),
    name: "AISI 4340 forged steel",
    formula: "Fe",
    family: MaterialFamily::Iron,
    density_kg_m3: 7850.0,
    young_modulus_pa: 200.0e9,
    poisson_ratio: 0.29,
    yield_strength_pa: 850.0e6,
    ultimate_strength_pa: 1100.0e6,
    thermal_conductivity_w_mk: 44.5,
    thermal_expansion_per_k: 12.3e-6,
    specific_heat_j_kgk: 475.0,
    max_service_temp_k: 700.0,
    fatigue_strength_coeff_pa: 1500.0e6,
    fatigue_strength_exponent: -0.085,
    hardness_hv: 350.0,
    cost_eur_kg: 4.5,
});

pub static STEEL_300M: LazyLock<Material> = LazyLock::new(|| Material {
    element: by_symbol("Fe"),
    name: "300M ultra-high-strength steel",
    formula: "Fe",
    family: MaterialFamily::Iron,
    density_kg_m3: 7870.0,
    young_modulus_pa: 205.0e9,
    poisson_ratio: 0.29,
    yield_strength_pa: 1690.0e6,
    ultimate_strength_pa: 1965.0e6,
    thermal_conductivity_w_mk: 39.0,
    thermal_expansion_per_k: 12.6e-6,
    specific_heat_j_kgk: 477.0,
    max_service_temp_k: 700.0,
    fatigue_strength_coeff_pa: 2300.0e6,
    fatigue_strength_exponent: -0.08,
    hardness_hv: 580.0,
    cost_eur_kg: 12.0,
});

pub static STEEL_4140: LazyLock<Material> = LazyLock::new(|| Material {
    element: by_symbol("Fe"),
    name: "AISI 4140 chromoly",
    formula: "Fe",
    family: MaterialFamily::Iron,
    density_kg_m3: 7850.0,
    young_modulus_pa: 205.0e9,
    poisson_ratio: 0.29,
    yield_strength_pa: 655.0e6,
    ultimate_strength_pa: 950.0e6,
    thermal_conductivity_w_mk: 42.6,
    thermal_expansion_per_k: 12.3e-6,
    specific_heat_j_kgk: 473.0,
    max_service_temp_k: 700.0,
    fatigue_strength_coeff_pa: 1300.0e6,
    fatigue_strength_exponent: -0.085,
    hardness_hv: 302.0,
    cost_eur_kg: 3.5,
});

pub static STEEL_8620: LazyLock<Material> = LazyLock::new(|| Material {
    element: by_symbol("Fe"),
    name: "AISI 8620 carburized steel",
    formula: "Fe",
    family: MaterialFamily::Iron,
    density_kg_m3: 7850.0,
    young_modulus_pa: 205.0e9,
    poisson_ratio: 0.29,
    yield_strength_pa: 360.0e6,
    ultimate_strength_pa: 635.0e6,
    thermal_conductivity_w_mk: 46.6,
    thermal_expansion_per_k: 11.9e-6,
    specific_heat_j_kgk: 477.0,
    max_service_temp_k: 700.0,
    fatigue_strength_coeff_pa: 950.0e6,
    fatigue_strength_exponent: -0.09,
    hardness_hv: 600.0,
    cost_eur_kg: 3.0,
});

pub static STEEL_1018: LazyLock<Material> = LazyLock::new(|| Material {
    element: by_symbol("Fe"),
    name: "AISI 1018 mild steel",
    formula: "Fe",
    family: MaterialFamily::Iron,
    density_kg_m3: 7870.0,
    young_modulus_pa: 200.0e9,
    poisson_ratio: 0.29,
    yield_strength_pa: 370.0e6,
    ultimate_strength_pa: 440.0e6,
    thermal_conductivity_w_mk: 51.9,
    thermal_expansion_per_k: 11.7e-6,
    specific_heat_j_kgk: 486.0,
    max_service_temp_k: 700.0,
    fatigue_strength_coeff_pa: 600.0e6,
    fatigue_strength_exponent: -0.10,
    hardness_hv: 126.0,
    cost_eur_kg: 1.2,
});