use sciforge::hub::domain::geology::seismology::{
gutenberg_richter, moment_magnitude, seismic_moment,
};
pub struct Venusquake {
pub magnitude: f64,
pub depth_km: f64,
pub seismic_moment_nm: f64,
}
impl Venusquake {
pub fn from_magnitude(mw: f64, depth_km: f64) -> Self {
Self {
magnitude: mw,
depth_km,
seismic_moment_nm: seismic_moment(mw),
}
}
pub fn moment_magnitude(&self) -> f64 {
moment_magnitude(self.seismic_moment_nm)
}
}
pub fn largest_modeled_venusquake() -> Venusquake {
Venusquake::from_magnitude(6.0, 20.0)
}
pub fn annual_frequency(magnitude: f64) -> f64 {
gutenberg_richter(5.0, 1.0, magnitude)
}