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,
});