#[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 sputtered_ice() -> Self {
Self {
particle_size_um: 0.5,
lofting_probability: 0.85,
abrasive_index: 0.05,
}
}
pub fn settled_particle() -> Self {
Self {
particle_size_um: 20.0,
lofting_probability: 0.03,
abrasive_index: 0.06,
}
}
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)
}
}