sciforge-core 0.0.4

Shared engineering primitives: materials, fasteners, fluids, propulsion taxonomies, std components.
Documentation
use crate::moleculars::Material;
use sciforge_hub::prelude::constants::physics::solid_mechanics::weibull;
use sciforge_hub::prelude::constants::physics::solid_mechanics::ductile_brittle;

impl Material {
    pub fn weibull_modulus(&self) -> Option<f64> {
        weibull::by_formula(self.formula).map(|w| w.m_modulus)
    }

    pub fn weibull_failure_probability(&self, sigma_pa: f64, volume_m3: f64) -> Option<f64> {
        let w = weibull::by_formula(self.formula)?;
        Some(weibull::failure_probability(w, sigma_pa, volume_m3))
    }

    pub fn ductile_brittle_transition_k(&self) -> Option<f64> {
        ductile_brittle::by_formula(self.formula).map(|d| d.transition_k)
    }

    pub fn is_brittle_at(&self, temperature_k: f64) -> Option<bool> {
        ductile_brittle::is_brittle_at(self.formula, temperature_k)
    }
}