venuss 0.0.3

Venus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
pub struct AeolianErosion {
    pub threshold_m_s: f64,
}

impl AeolianErosion {
    pub fn typical() -> Self {
        Self { threshold_m_s: 1.0 }
    }

    pub fn transport_rate(&self, wind_speed_m_s: f64) -> f64 {
        if wind_speed_m_s < self.threshold_m_s {
            return 0.0;
        }
        0.5 * crate::SURFACE_AIR_DENSITY / crate::SURFACE_GRAVITY
            * (wind_speed_m_s - self.threshold_m_s).powi(2)
    }
}

pub fn thermal_fatigue_crack_growth_rate(temp_amplitude_k: f64, rock_toughness: f64) -> f64 {
    let stress = 1e6 * temp_amplitude_k;
    if stress < rock_toughness {
        0.0
    } else {
        1e-12 * (stress / rock_toughness).powi(3)
    }
}

pub fn chemical_weathering_rate(temperature_k: f64, acid_activity: f64) -> f64 {
    let arrhenius = (-(60_000.0) / (8.314 * temperature_k)).exp();
    arrhenius * acid_activity
}