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