darkmatter 0.0.2

Dark matter simulation engine — gravitational fields, particle dynamics, halo stability, and cosmological constants
Documentation
use darkmatter::candidates::fuzzy_dm::{
    FuzzyDarkMatter, condensation_fraction, core_halo_mass_relation_solar, dynamical_heating_rate,
    interference_fringe_scale_kpc, occupation_number, quantum_jeans_wavenumber, quantum_pressure,
    soliton_central_density, soliton_density_profile, soliton_mass_solar, superradiance_rate,
    suppression_transfer_function,
};

fn main() {
    let fdm = FuzzyDarkMatter { mass_ev: 1e-22 };

    let m22 = fdm.m22();
    let lambda_c = fdm.compton_wavelength_m();
    let lambda_db = fdm.de_broglie_wavelength_kpc(200.0);
    let l_j = fdm.jeans_length_kpc(1e-25);
    let m_j = fdm.jeans_mass_solar(1e-25);
    let m_hm = fdm.half_mode_mass_solar();

    let r_c = fdm.soliton_core_radius_kpc(1e12);
    let rho_c = soliton_central_density(1e-22, r_c);
    let rho_half = soliton_density_profile(r_c / 2.0, rho_c, r_c);
    let m_sol = soliton_mass_solar(rho_c, r_c);
    let m_core = core_halo_mass_relation_solar(1e-22, 1e12);

    let p_q = quantum_pressure(1e-22, 1e-25, 3.0857e19);
    let k_j = quantum_jeans_wavenumber(1e-22, 1e-25);
    let t_sup = suppression_transfer_function(10.0, 1e-22);
    let fringe = interference_fringe_scale_kpc(1e-22, 200.0);
    let heat = dynamical_heating_rate(1e-22, 1e-25, 200.0);
    let sr = superradiance_rate(1e-12, 10.0, 0.9);
    let n_occ = occupation_number(1e-25, 1e-22, 200.0);
    let f_cond = condensation_fraction(1.0, 10.0);

    let sum = m22
        + lambda_c
        + lambda_db
        + l_j
        + m_j
        + m_hm
        + r_c
        + rho_c
        + rho_half
        + m_sol
        + m_core
        + p_q
        + k_j
        + t_sup
        + fringe
        + heat
        + sr
        + n_occ
        + f_cond;

    assert!(sum.is_finite());
}