#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Palimpsest {
pub name: &'static str,
pub diameter_km: f64,
pub albedo: f64,
pub age_gyr: f64,
}
impl Palimpsest {
pub fn relaxation_fraction(&self) -> f64 {
(self.age_gyr / 4.5).clamp(0.0, 1.0)
}
}
pub fn lofn() -> Palimpsest {
Palimpsest {
name: "Lofn",
diameter_km: 180.0,
albedo: 0.28,
age_gyr: 3.8,
}
}
pub fn cryovolcanic_resurfacing_rate_mm_yr(heat_flux_mw_m2: f64) -> f64 {
heat_flux_mw_m2.max(0.0) * 0.001
}