use darkmatter::solar_system::local_density;
use darkmatter::solar_system::perturbations as dm_pert;
pub fn perihelion_precession_rate(orbital_radius: f64, orbital_velocity: f64) -> f64 {
dm_pert::perihelion_precession_rate(
local_density::RHO_LOCAL_KG_M3,
orbital_radius,
orbital_velocity,
)
}
pub fn perihelion_precession_rate_custom(
rho_dm: f64,
orbital_radius: f64,
orbital_velocity: f64,
) -> f64 {
dm_pert::perihelion_precession_rate(rho_dm, orbital_radius, orbital_velocity)
}
pub fn orbital_velocity_correction(orbital_radius: f64, m_central: f64) -> f64 {
dm_pert::orbital_velocity_correction(local_density::RHO_LOCAL_KG_M3, orbital_radius, m_central)
}
pub fn secular_eccentricity_change(a: f64, m_central: f64, e: f64, age_s: f64) -> f64 {
dm_pert::secular_perturbation_eccentricity(
local_density::RHO_LOCAL_KG_M3,
a,
m_central,
e,
age_s,
)
}
pub fn dynamical_friction_on_planet(m_planet: f64, v_planet: f64) -> f64 {
let ln_lambda = 20.0;
dm_pert::dynamical_friction_on_planet(
local_density::RHO_LOCAL_KG_M3,
m_planet,
v_planet,
ln_lambda,
)
}
pub fn orbital_decay_timescale(m_planet: f64, v_planet: f64) -> f64 {
let ln_lambda = 20.0;
dm_pert::orbital_decay_timescale(
m_planet,
v_planet,
local_density::RHO_LOCAL_KG_M3,
ln_lambda,
)
}
pub fn dm_disk_surface_density_limit(
period_change_frac: f64,
m_central: f64,
a: f64,
observation_time: f64,
) -> f64 {
dm_pert::dm_disk_surface_density_limit(period_change_frac, m_central, a, observation_time)
}
pub fn dm_enclosed_mass(r: f64) -> f64 {
dm_pert::dm_enclosed_mass(local_density::RHO_LOCAL_KG_M3, r)
}
pub fn dm_acceleration_at(r: f64) -> f64 {
let m_enc = dm_enclosed_mass(r);
darkmatter::constants::physical::G * m_enc / (r * r)
}