sciforge 0.0.3

A comprehensive scientific computing library in pure Rust with zero dependencies
Documentation
pub fn manning_velocity(n: f64, rh: f64, s: f64) -> f64 {
    (1.0 / n) * rh.powf(2.0 / 3.0) * s.sqrt()
}

pub fn chezy_velocity(c: f64, rh: f64, s: f64) -> f64 {
    c * (rh * s).sqrt()
}

pub fn froude_number(v: f64, g: f64, d: f64) -> f64 {
    v / (g * d).sqrt()
}

pub fn reynolds_number(v: f64, d: f64, nu: f64) -> f64 {
    v * d / nu
}

pub fn stream_power(rho: f64, g: f64, q: f64, s: f64) -> f64 {
    rho * g * q * s
}

pub fn hjulstrom_erosion_threshold(d_grain: f64) -> f64 {
    if d_grain < 1.0e-5 {
        return 2.0;
    }
    if d_grain < 5.0e-4 {
        return 0.2 * d_grain.powf(-0.6);
    }
    4.7 * d_grain.powf(0.5)
}