#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Cryovolcano {
pub name: &'static str,
pub summit_elevation_m: f64,
pub caldera_diameter_km: f64,
}
impl Cryovolcano {
pub fn volume_index(&self) -> f64 {
self.summit_elevation_m * self.caldera_diameter_km
}
}
pub fn doom_mons() -> Cryovolcano {
Cryovolcano {
name: "Doom Mons",
summit_elevation_m: 1_450.0,
caldera_diameter_km: 70.0,
}
}
pub fn cryovolcanic_resurfacing_rate_mm_yr(heat_flux_mw_m2: f64) -> f64 {
heat_flux_mw_m2.max(0.0) * 0.005
}