Add Yang+2024 parametric SIDM gravothermal-sequence profile - #556
Merged
Conversation
Adds YangSIDMSph, the closed-form beta=4 cored-NFW profile of Yang, Nadler, Yu & Zhong (2024, arXiv:2305.16176), whose (rho_s, r_s, r_c) evolve along the universal gravothermal sequence with tau = t / t_c, and YangSIDMMCRLudlowSph, which solves tau per halo from physical inputs (Ludlow+16 concentration, Yang+24 collapse time with C = 0.75, Outmezguine+23 velocity-dependent effective cross section at nu_eff = 0.64 V_max). Includes default priors, exports and unit tests. Requested in PyAutoLens#631; builds on the Kaplinghat profile of #471. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the parametric SIDM halo model of Yang, Nadler, Yu & Zhong (2024, arXiv:2305.16176) as a new spherical dark mass profile, spanning the full gravothermal sequence (cored through core-collapsed) via the dimensionless evolution time tau = t / t_c. Requested by @mwiet in PyAutoLabs/PyAutoLens#631; builds on the Kaplinghat cored-NFW profile (#471), which remains fully supported.
YangSIDMSphis the beta = 4 cored-NFW form with the Yang+24 fitting functions for how (rho_s, r_s, r_c) evolve with tau relative to the CDM baseline NFW halo; at tau = 0 it reduces exactly to NFW.YangSIDMMCRLudlowSphconstructs it from physical inputs: Ludlow+16 mass-concentration baseline, the Yang+24 collapse time t_c (C = 0.75), and the Outmezguine+23 effective cross section, supporting a power-law velocity dependence sigma(v) ~ v^(-a) averaged at nu_eff = 0.64 V_max. The density is fully closed-form (no Lane-Emden tables), so the vmapped JAX substructure-batching path works cleanly.API Changes
Two new public mass profiles are added:
YangSIDMSph(kappa_s, scale_radius, tau) andYangSIDMMCRLudlowSph(mass_at_200, sigma_over_m, velocity_exponent, velocity_ref, t_age, redshift_object, redshift_source), with default priors. No existing symbols are removed, renamed or changed.See full details below.
Test Plan
test_autogalaxy/profiles/mass/dark/test_yang24.py— 10 tests: exact NFW reduction at tau = 0, analytic central core density, tau truncation into the fitted [0, 1] range, finite/positive lensing quantities, vmapped-vs-instance deflection parity (jax), MCR NFW reduction at sigma/m = 0, tau linearity in sigma/m, closed-form velocity-dependence checks.test_autogalaxy/suite: 1027 passed.af.Modelcomposition from the new prior configs (5 and 9 free parameters).Full API Changes (for automation & release notes)
Added
autogalaxy.profiles.mass.dark.yang24.YangSIDMSph(centre=, kappa_s=, scale_radius=, tau=)— Yang+2024 parametric SIDM profile; exported asag.mp.YangSIDMSph.autogalaxy.profiles.mass.dark.yang24_mcr.YangSIDMMCRLudlowSph(centre=, mass_at_200=, sigma_over_m=, velocity_exponent=, velocity_ref=, t_age=, redshift_object=, redshift_source=)— physical constructor solving tau = t_age / t_c; exported asag.mp.YangSIDMMCRLudlowSph.autogalaxy/config/priors/mass/dark/yang24.yaml,yang24_mcr.yaml— default priors.Migration
Generated by the PyAutoLabs agent workflow.