sciforge-lib 0.0.4

Scientific computing library — mathematics, physics, chemistry, biology, astronomy, geology, meteorology.
Documentation
pub fn thin_cylinder_hoop_stress(p_pa: f64, r_m: f64, t_m: f64) -> f64 {
    p_pa * r_m / t_m
}

pub fn thin_cylinder_axial_stress(p_pa: f64, r_m: f64, t_m: f64) -> f64 {
    p_pa * r_m / (2.0 * t_m)
}

pub fn thin_sphere_stress(p_pa: f64, r_m: f64, t_m: f64) -> f64 {
    p_pa * r_m / (2.0 * t_m)
}

pub fn lame_radial_stress(
    p_inner_pa: f64,
    p_outer_pa: f64,
    r_inner_m: f64,
    r_outer_m: f64,
    r_m: f64,
) -> f64 {
    let a = r_inner_m;
    let b = r_outer_m;
    let pi = p_inner_pa;
    let po = p_outer_pa;
    (pi * a * a - po * b * b) / (b * b - a * a)
        - (pi - po) * a * a * b * b / ((b * b - a * a) * r_m * r_m)
}

pub fn lame_hoop_stress(
    p_inner_pa: f64,
    p_outer_pa: f64,
    r_inner_m: f64,
    r_outer_m: f64,
    r_m: f64,
) -> f64 {
    let a = r_inner_m;
    let b = r_outer_m;
    let pi = p_inner_pa;
    let po = p_outer_pa;
    (pi * a * a - po * b * b) / (b * b - a * a)
        + (pi - po) * a * a * b * b / ((b * b - a * a) * r_m * r_m)
}

pub fn asme_thickness_internal_pressure(
    p_pa: f64,
    r_m: f64,
    s_allow_pa: f64,
    weld_efficiency: f64,
) -> f64 {
    p_pa * r_m / (s_allow_pa * weld_efficiency - 0.6 * p_pa)
}

pub fn asme_sphere_thickness(
    p_pa: f64,
    r_m: f64,
    s_allow_pa: f64,
    weld_efficiency: f64,
) -> f64 {
    p_pa * r_m / (2.0 * s_allow_pa * weld_efficiency - 0.2 * p_pa)
}

pub fn burst_pressure_thin_cylinder(sigma_u_pa: f64, t_m: f64, r_m: f64) -> f64 {
    sigma_u_pa * t_m / r_m
}

pub fn autofrettage_residual_stress(
    p_auto_pa: f64,
    r_inner_m: f64,
    r_outer_m: f64,
    r_plastic_m: f64,
    sigma_y_pa: f64,
) -> f64 {
    let a = r_inner_m;
    let b = r_outer_m;
    let c = r_plastic_m;
    let factor = sigma_y_pa
        * ((c / a).ln() + (b * b - c * c) / (2.0 * b * b));
    p_auto_pa - factor
}

pub fn slenderness_ratio_pressure_vessel(length_m: f64, radius_m: f64) -> f64 {
    length_m / radius_m
}