ioss 0.0.3

Io celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct DustEnvironment {
    pub particle_size_um: f64,
    pub lofting_probability: f64,
    pub abrasive_index: f64,
}

impl DustEnvironment {
    pub fn volcanic_plume() -> Self {
        Self {
            particle_size_um: 5.0,
            lofting_probability: 0.95,
            abrasive_index: 0.80,
        }
    }
    pub fn sulfur_frost() -> Self {
        Self {
            particle_size_um: 30.0,
            lofting_probability: 0.10,
            abrasive_index: 0.15,
        }
    }
    pub fn adhesion_risk(&self, electrostatic_potential_v: f64) -> f64 {
        (self.lofting_probability * 0.6
            + self.abrasive_index * 0.3
            + electrostatic_potential_v.abs() / 500.0)
            .clamp(0.0, 1.0)
    }
}