use sciforge::hub::domain::geology::tectonics::airy_root;
pub struct VenusInterior {
pub lithosphere_thickness_m: f64,
pub mantle_convection_active: bool,
}
impl Default for VenusInterior {
fn default() -> Self {
Self::new()
}
}
impl VenusInterior {
pub fn new() -> Self {
Self {
lithosphere_thickness_m: 150_000.0,
mantle_convection_active: true,
}
}
pub fn is_tectonically_active(&self) -> bool {
false
}
pub fn elastic_lithosphere_thickness(&self) -> f64 {
self.lithosphere_thickness_m
}
pub fn mantle_rayleigh_number(&self) -> f64 {
3.0e7
}
}
pub fn crustal_root_depth(mountain_height_m: f64) -> f64 {
airy_root(
mountain_height_m,
crate::CRUST_DENSITY,
crate::MANTLE_DENSITY,
)
}
pub fn isostatic_balance(topography_m: f64) -> f64 {
crustal_root_depth(topography_m)
}
pub fn surface_heat_flow_w_m2(conductivity: f64, temp_gradient: f64) -> f64 {
conductivity * temp_gradient
}
pub fn mean_heat_flux_mw_m2() -> f64 {
crate::SURFACE_HEAT_FLUX_MW_M2
}