venuss 0.0.3

Venus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
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
}