Skip to content

Halos within halos: how deep the nesting goes, and what the dark matter particle sets as the floor - #35

Open
ahrazzle wants to merge 6 commits into
issue-17from
issue-18
Open

ahrazzle wants to merge 6 commits into
issue-17from
issue-18

Conversation

@ahrazzle

@ahrazzle ahrazzle commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

A study for #18.

Stacked on #26. halos/model.js reuses the Eisenstein–Hu spectrum and growth factor from cosmic-homogeneity/homogeneity.js, which exists only on issue-17. This PR therefore targets issue-17, and its diff shows only the halos work. Once #26 merges I'll merge main in and retarget this PR to main.

What it finds

How many decades of nesting fit below a 10¹² M☉ Milky Way, from the floor the particle sets. All masses count all the matter.

Dark matter Smallest halos (M☉) Decades Levels at μ = 0.025 (upper bound) With sub-subhalos 2× / 3× fewer
100 GeV WIMP (bino), T_kd 40 to 10 MeV 1.4×10⁻⁶ to 1.0×10⁻⁴ 17.9 to 16.0 11 to 9 9 to 8 / 8 to 7
WIMPs in general (Bringmann 2009, converted from his dark-matter-only 10⁻¹¹ to 10⁻³) 1.2×10⁻¹¹ to 1.2×10⁻³ 23 to 15 14 to 9 11 to 7 / 10 to 7
Wave, 10⁻²² eV (the lensing notes' benchmark, excluded) 1.6 to 5.4×10¹⁰ 1.8 to 1.3 1 to 0
Wave, 2×10⁻²⁰ eV (Lyman-α) 1.4 to 4.6×10⁷ 4.9 to 4.3 3 to 2
Wave, 8×10⁻¹⁸ eV (if Ursa Major III is a galaxy) 4.6×10³ to 1.6×10⁴ 8.3 to 7.8 5 to 4
  • The levels are an upper bound. A level is the largest subhalo the Aquarius law expects, μ = 0.025 of its host. Applying μ at every level is the self-similar case, which Springel et al. call an upper limit; they find sub-subhalos 2 or 3 times fewer. No wave row loses more than one level that way. Against M50 instead of M200, μ is 0.018 and the counts drop by up to one. The bino at 10 MeV sits on a knife edge: 9.97 levels, or 10.01 counting the dark matter alone.
  • The WIMP floor is the larger of two masses (Bringmann 2009):
    • The acoustic mass, the matter inside the horizon at kinetic decoupling: 1.03×10⁻⁴ M☉ at 10 MeV, against Loeb & Zaldarriaga's 10⁻⁴.
    • The free-streaming mass. The scale is derived from the coasting distance through a thermal history of photons, neutrinos, e±, muons and pions. It gives k_fs = 1.68×10⁶ Mpc⁻¹ against Green, Hofmann & Schwarz's 1.70×10⁶.
    • Their "about 10⁻⁶ M☉" is, by their definition, the sphere of radius π/k_fs. The half-mode mass is 4× that, and the half-power mass 11×.
  • The wave floor depends even more on which "smallest halo" is meant. At 10⁻²² eV:
    • the half-power mass, the half-mode mass and Schive et al.'s M₀ (1.6 to 5.4×10¹⁰ M☉) mark where halos become rare;
    • the Jeans mass today (1.5×10⁷, Hui et al.'s sphere) only bounds any halo from below;
    • across definitions and epochs, the Jeans masses span 10⁵;
    • every row at a bound is an extrapolation: M₀ was fitted at 0.8 to 3.2×10⁻²² eV.
  • Small halos form almost together. n_eff only creeps toward −3, reaching −2.84 at 10⁻⁶ M☉. Without a cut-off, nine decades of mass collapse within 157 Myr.
  • The bino's first halos collapse at z ≈ 16 at 1σ, or 11 to 13 when the dark matter grows alone. Green, Hofmann & Schwarz's z = 60 ± 20 is a different quantity: z_nl, where typical fluctuations reach σ = 1 (σ₈ = 0.9, n = 1, no baryons). Like for like this model gives 28–29 with Planck 2018, 39 with WMAP-era inputs and 44–45 without baryons, inside their range; a factor of about 1.3 in 1 + z remains. At this model's 1.686 threshold, z = 60 takes a 3.5σ peak (2.1σ to reach δ = 1; 3.7–4.4σ with the baryon lag).
  • The shapes. Halos near the cut-off form with prompt r^−1.5 cusps, also found in phase-space simulations without artificial fragmentation. Whether the cusps survive inside the halos built from them is contested (J. Wang et al. 2020; Delos & White 2023; Y. Wang et al. 2025). Wang et al.'s 20 decades are field halos of many masses from eight nested zooms, not a chain of nested halos.
  • The soliton has M·r_c = 2.68 ħ²/(Gm²), from the Witness Map's own Schrödinger–Poisson solver. The core mass times r_c is 5.4×10¹² m₂₃⁻² M☉ pc. Schive, Chiueh & Broadhurst's core mass-radius relation gives 5.5×10¹², and their fitted profile integrated to r_c gives 5.3×10¹². This is the gravitational atom's ħ²/(Gm²) scaling, 7.7× larger.
  • Counting Earth-mass halos. The Aquarius law, extrapolated without tides, gives 1.05×10¹⁵ above 10⁻⁶ M☉ in Aq-A, 5% above Diemand, Moore & Stadel's "over 10¹⁵" survivors. Against their own extrapolation of the same m^−1.9 law (about 5×10¹⁵), it is 4.8 to 8.8 times lower.
  • Extrapolating Eisenstein–Hu twenty decades is checked with a radiation-era integration that includes a neutrino hierarchy (Ma & Bertschinger):
    • with free-streaming neutrinos, its tail matches Eisenstein–Hu to 1.5%;
    • the bino's modes entered while the neutrinos were still a fluid, and that tail is 10% lower;
    • this moves z_c by 0.5 and leaves the floors unchanged.

Files

  • halos/model.js: UMD. It depends on cosmic-homogeneity/homogeneity.js; in a browser, load that first.
  • halos/table.mjs: every table, in under a second; added to CI.
  • tests/halos.mjs: 16 checks and 4 notes, under a second. It loads witness-map/model.js for its constants and its soliton.
  • halos/README.md.
  • A README bullet.
  • CORRECTIONS.md items 23–26, on the numbers I wrote into Halos within halos: how deep does the nesting go, and does the dark matter particle set the floor? #18 from recall:
    • Wang et al.'s 20 decades are field halos from nested zooms, not nested halos; and whether the shape stays the same down to the floor is partly contested;
    • the 66.5 a^¼ and 1.5×10⁷ are not Hu, Barkana & Gruzinov's, and they agree once the dark matter density alone is used;
    • "2 to 4.5 decades" for wave dark matter mixes definitions;
    • the bounds have moved.

Numbering: #34 has merged with CORRECTIONS items 19–20, and #26's cosmic items are now 21–22. 2f44046 merges the updated issue-17 (with main) into this branch. This study's items are now 23–26, its README bullet follows the turbulence bullet, and the workflow runs the turbulence steps and the halos table.

Review

  • Before opening:

    • Research for the issue: two literature tracks, WIMP and wave dark matter, each with a verifier; a prototype; and an independent verifier that re-derived the numerics.
    • A pre-PR review by three agents, fixed in e4bd651.
    • A second verification, fixed in f2f57a5.
  • zero-aska's independent review of f2f57a5 read every source in its arXiv LaTeX and found five blocking problems, all fixed in 0749cc2:

    • the damping mass's citation;
    • Schive, Chiueh & Broadhurst's 5.5×10¹² (their core mass-radius relation, not their fitted profile);
    • May & Springel, who agree with Schive et al.'s M₀;
    • Green, Hofmann & Schwarz's z = 60 ± 20, which is z_nl;
    • the Diemand, Moore & Stadel comparison.

    Its non-blocking findings are applied in the same commit. They cover the levels as an upper bound, the cusps, Wang et al.'s method, ρ_χ against ρ_m, Hui et al.'s normalisation, equation-level provenance, the extrapolated wave rows, the baryon lag, the Checks list and the Sources. Each item is answered in the reply on this PR.

  • A verification of 0749cc2 by four reviewers with adversarial checks. Its findings are fixed in 32020f3:

    • Bringmann's range converted to all matter;
    • the cusps' formation no longer called contested, only their survival (Ondaro-Mallea et al. 2024; Y. Wang et al. 2025);
    • arXiv equation labels named as labels;
    • three more printed numbers;
    • Hui et al.'s wording.

Sources. zero-aska's review read the primary sources in their arXiv LaTeX. Labels say which values were first seen in search text and confirmed there ("checked in review"), and which come from that reading alone ("as #35's review read it"). Two values are recalled and marked: Aq-A's M50 and Schive, Chiueh & Broadhurst's fitted profile. Both reproduce numbers the review read.

Test plan

  • npm test passes locally (Node 22, 10 check files on the merge with main)
  • node halos/table.mjs
  • CI on Node 18, 20, 22

Fixes #18

🤖 Generated with Claude Code

https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK

…atter (issue #18)

halos/model.js computes the linear spectrum down to 1e10 h/Mpc on top of the
cosmic-homogeneity model, the WIMP floor (free streaming and the acoustic mass
inside the horizon at kinetic decoupling, the larger of the two), the wave
floor (Hu, Barkana and Gruzinov's cut-off, Schive et al.'s M0, the Jeans
masses), sigma(M) and collapse redshifts, the Aquarius subhalo law extended to
each floor, and the radiation-era kick with free-streaming or fluid neutrinos
as a check on the Eisenstein-Hu tail. tests/halos.mjs holds 17 checks and 2
notes; halos/table.mjs prints the tables. CORRECTIONS 21-24 record the issue's
recalled numbers that did not survive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK
- Running of n_s now pivots at 0.05 Mpc^-1 without a hidden tilt (sigma at the
  bino half-mode mass -29%/+49% for -/+0.01, not -24%/+38%).
- Thermal history from ideal gases (photons, neutrinos, e+-, muons, pions) for
  the scale factor and expansion rate at kinetic decoupling, and the coasting
  integral through e+- annihilation: k_fs = 1.67e6 (GHS 1.70e6); g = 12.6 at
  30 MeV.
- The dark matter growing alone is integrated (baryons smooth vs released at
  drag, with radiation and Lambda) instead of the matter-era a^p power law:
  bino first halos at z 10.8-13.2 rather than 10.1-12.4.
- Checks: sigma against a direct quadrature, convergence to 2e-5, Hui et al.'s
  1.5e7 within 5%, Diemand et al.'s count as a lower bound, the fluid-neutrino
  tail as a note, honest labels for the identity checks; closed-form derivation
  for the radiation-era kick written out in model.js.
- Prose: decades apart (11+ at Lyman-alpha bounds, 8-10 at 8e-18 eV),
  extrapolation spans (9-11 decades for the bino), provenance labels, GHS's
  1 pc, the acoustic mass as matter (not dark matter) inside the horizon,
  CORRECTIONS 22 and 24 wording.
- Code: halfMode returns Infinity without a crossing, radiationEra rejects
  xmax < 4, P and Delta2 apply the factor option, unused sharp-k window and
  kOfMass removed, browser load order documented.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK
- The coasting integral stops today instead of running to a -> infinity
  (s 0.843 pc, k_fs 1.68e6; Green, Hofmann and Schwarz 1.4% higher at
  30 MeV, from 5.4% higher to 1.1% lower over 10-40 MeV).
- The thermal history is guarded at 80 MeV: kaons and heavier hadrons, left
  out, matter above it. Only 50 MeV and below is used.
- The 'cdm' reading of the dark matter growing alone no longer jumps by 1/f_c
  at the drag epoch.
- README: the floors use GHS's k_fs (the derived one is a check); bino levels
  15-17 at 10x and 9-11 at mu; extrapolation "at the bounds listed"; the
  running sentence's order; the thermal-history caveat. Hui et al.'s sphere is
  called the one that reproduces their quoted mass, not theirs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK

Copy link
Copy Markdown
Contributor

I'm taking the review of this PR (f2f57a5, against issue-17). As on #34, I'll check the values you could only see in search text against the papers themselves. These include the two attributions you flagged: Hui et al.'s 1.5×10⁷ and the 5.5×10¹² M☉ pc. The rest are the WIMP and wave-dark-matter cut-off values, Bringmann 2009, Green, Hofmann and Schwarz, Loeb and Zaldarriaga, Diemand, Moore and Stadel, Wang et al. 2020, Schive et al. 2014 and 2016, and the Lyman-α and Ursa Major III bounds. I'll also do an independent review covering physics, statistics and tests, citations, and code. Results will come as one review here, and I won't push to this branch.


Generated by Claude Code

@zero-aska zero-aska left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an independent review of commit f2f57a5 (PR #35, halos within halos). Five reviewing-team agents that did not draft the branch did the review: sources:wimp, sources:wave, physics, statistics-code and citations. Refuters then tested each finding, with two refuters for each blocking one. All primary sources were read in their arXiv LaTeX.

Primary-source checks

WIMP cut-off and substructure

  • Bringmann 2009 (NJP 11, 105027), floor rule.
    • PR: the floor is max[M(pi/k_fs), M_ao].
    • Paper, Sec. 4: "M_cut = max[M_fs, M_ao]". Both masses are written with rho_chi, the dark matter density.
    • Confirmed. The PR uses rho_m instead (see non-blocking findings).
  • Bringmann 2009, range of floors.
    • PR: about 1e-11 to nearly 1e-3 Msun, for WIMPs in general.
    • Abstract: "between 10^-11 and almost 10^-3 solar masses". Sec. 5 says the range applies to any WIMP.
    • Confirmed.
  • Bringmann 2009, factor of 10.
    • PR: a proper T_kd puts the cut-off about ten times above order-of-magnitude estimates.
    • Abstract: "typically about a factor of 10 greater".
    • Confirmed.
  • Green, Hofmann and Schwarz (GHS), JCAP 0508, 003 and astro-ph/0508553: wavenumbers.
    • PR: k_fs = 1.70e6 Mpc^-1 (...)/[1 + ln(T_kd/30 MeV)/19.2] and k_d = 3.76e7 Mpc^-1, with the convention k_fs = sqrt2/s.
    • Papers: the same formulas. JCAP defines k_fs with the same sqrt2.
    • Confirmed.
  • GHS 2004 (MNRAS 353, L23) and JCAP: the 1e-6 Msun mass.
    • PR: "about 1e-6 Msun" is the mass inside a sphere of radius pi/k_fs, which the PR calls "the reading that matches".
    • Papers: this is GHS's stated definition, not just a reading that fits. GHS 2004 gives 9e-7 Msun for its model A. Their M(R) = 1.6e-7 (omega_m/0.14)(R/pc)^3 counts all matter, as the PR does.
    • Confirmed.
  • GHS: transfer-function prefactor.
    • PR: the factor [1 - (2/3)(k/k_fs)^2] is marked "recalled".
    • Papers: it is printed as D(k) in GHS 2004 and in JCAP eqs. dfs and dk, stated as valid for k/k_fs < 1. The half mode, at 0.62 k_fs, is inside that range.
    • Confirmed.
  • GHS: collisional damping mass.
    • PR (tests/halos.mjs:70): "about 1e-10 Msun", cited to astro-ph/0508553.
    • Papers: neither arXiv version of astro-ph/0508553 states a damping mass. GHS 2004 gives M_d ~ 1e-10 (9e-11 for model A), and JCAP gives M_d ~ 1e-10.
    • Partly right. The value is right but the cited paper is wrong (blocking 1).
  • GHS: z = 60 +- 20.
    • PR: this is when the bino's first halos form, and it corresponds to a 3.5 sigma peak in this model.
    • JCAP, section "The first structures": z_nl is the redshift at which typical fluctuations reach sigma(R, z_nl) = 1, using a top hat, sigma8 = 0.9 and no baryons. GHS put the first halos at about 60N for N sigma peaks.
    • Partly right. The value is right but its definition is misdescribed (blocking 4).
  • Loeb and Zaldarriaga 2005 (PRD 71, 103520).
    • PR: their 1e-4 (T_d/10 MeV)^-3 Msun, against the model's 1.03e-4.
    • Paper: the same formula, with radius pi/k_cut = 0.95 eta_d. Their convention would give 8.9e-5.
    • Confirmed.
  • Cornell, Profumo and Shepherd 2013, eq. 14.
    • PR: M_ao = 3.4e-6 (T_kd g^1/4/50 MeV)^-3 Msun.
    • Paper: this is the 14th numbered equation, written with rho_chi.
    • Confirmed.
  • Diemand, Moore and Stadel 2005 (Nature 433, 389).
    • PR: "over 10^15" Earth-mass halos, checked against the Aquarius law.
    • Abstract: "over 10^15 to survive". Body text after Fig. 3: extrapolating the same m^-1.9 law gives N(>1e-6 Msun) ~ 5e15.
    • Partly right. The quote is accurate, but the like-for-like number is 5e15 (blocking 5).
  • Springel et al. 2008 (MNRAS 391, 1685): subhalo law.
    • PR: a0 = 3.26e-5, m0 = 2.52e7 and n = -1.9 within r50 = 433 kpc, and up to four generations of subhalos.
    • Paper: the same values appear directly, not only via Erkal et al. It also says "up to four generations".
    • Confirmed.
  • Springel et al. 2008, Sec. 4: levels.
    • PR: each level is a factor mu = 0.025, giving 11 to 9 levels for the bino.
    • Paper: sub-subhalos are "a factor of 2 or 3 below" the self-similar count, which "provides an upper limit". mu itself is the PR's own derivation and follows correctly from the fit.
    • Partly right.
  • Wang et al. 2020 (Nature 585, 39): profile shapes.
    • PR: profiles are nearly universal from an Earth mass to clusters.
    • Paper: universal over 20 decades, 1e-6 to 1e15 Msun.
    • Confirmed.
  • Wang et al. 2020: method.
    • PR: they "resimulated isolated halos, each in a region of its own size".
    • Methods: eight nested zooms into regions chosen to avoid massive structures, each region holding many halos.
    • Partly right. The point that these are not halos inside halos holds. The method is misdescribed.
  • Ishiyama 2014 (ApJ 788, 27).
    • PR: the inner slope is about -1.3 at fifty times the cut-off mass.
    • Abstract: the same.
    • Confirmed.
  • Delos and White 2023 (MNRAS 518, 3509).
    • PR: r^-1.5 "prompt cusps" form and survive.
    • Paper: cusps survive "to the extent that we can resolve them". The paper says their relevance "remains uncertain" and names Wang et al. as counter-evidence. The term "prompt cusps" comes from the same authors' other 2023 paper (JCAP 10, 008, arXiv:2209.11237).
    • Partly right.
  • Other cited papers: Angulo et al. 2017, Zhao 2007, Moore 2005, Goerdt 2007, van den Bosch 2018, Ishiyama and Ando 2020, and Schneider et al. 2012 (half-mode definition). The README's statements match each paper. Confirmed.

Wave dark matter

  • Hu, Barkana and Gruzinov 2000 (HBG): formulas.
    • PR: k_Jeq = 9 m22^1/2 Mpc^-1; T = cos x^3/(1+x^8) with x = 1.61 m22^1/18 k/k_Jeq; half power at 4.5 m22^4/9.
    • Paper: all three, in the text around the T_F fit.
    • Confirmed.
  • HBG and CORRECTIONS 22.
    • PR: neither 66.5 nor 1.5e7 is HBG's.
    • Paper: neither number appears.
    • Confirmed.
  • Marsh 2016 (Phys. Rep. 643, 1), eq. axion_jeans.
    • PR: k_J = 66.5 a^1/4 m22^1/2 Mpc^-1 uses the dark matter density alone, as quoted by Kulkarni and Ostriker.
    • Paper: the formula carries (Omega_a h^2/0.12)^1/4, the axion density. Kulkarni and Ostriker quote it "as given by" Marsh.
    • Confirmed.
  • Flagged attribution 1: Hui et al. 2017 (PRD 95, 043541), as quoted in arXiv:2106.02526.
    • PR: the Jeans mass is 1.5e7 Msun, reproduced by a sphere of diameter lambda_J.
    • Paper, eq. jeans: M_J = (4/3) pi rho (lambda_J/2)^3 = 1.5e7 Msun (1+z)^3/4 (Omega_FDM/0.27)^1/4 (H0/70)^1/2 m22^-3/2. Toguz et al. (2106.02526) quote it word for word.
    • Confirmed. The density in the formula is the FDM density.
  • Flagged attribution 2: Schive, Chiueh and Broadhurst 2014 (Nature Phys. 10, 496), as restated in arXiv:2603.07175.
    • PR: 5.5e12 m23^-2 Msun pc, and "their fitted profile gives 5.5x10^12".
    • Supplementary Information: M_c ~ 5.5e9 m23^-2 (r_c/kpc)^-1 Msun is the core mass-radius relation of the numerical soliton. The fitted profile integrates to 5.3e12. arXiv:2603.07175 restates 5.5e12 but credits it to PRL 113, 261302, which does not contain it.
    • Partly right. The value and the paper are right, but the formula is misnamed (blocking 2).
  • Schive et al. 2016 (ApJ 818, 89), eq. MFFit.
    • PR: M0 = 1.6e10 m22^-4/3 Msun.
    • Paper: the same, fitted to runs at m22 = 0.8, 1.6 and 3.2.
    • Confirmed.
  • Schive et al. 2016, half mode.
    • PR: M_hm = 3.9e10 Msun at 1e-22 eV.
    • Paper: M_1/2 ~ 3.8e10 m22^-4/3, using the same pi/k sphere.
    • Confirmed (within 4%).
  • May and Springel 2023 (MNRAS 524, 4256).
    • PR: "full wave simulations shift M0".
    • Paper, halo mass function section: "quite good agreement" with Schive et al.'s fit. Conclusions: "broad agreement".
    • Wrong (blocking 3).
  • Mass bounds. All as stated in the papers' abstracts and texts. Confirmed.
    • Iršič 2017: 2e-21 eV (2 sigma, conservative thermal history).
    • Armengaud 2017 and Nadler 2021: 2.9e-21 eV (95%).
    • Rogers and Peiris 2021: 2e-20 eV (95%).
    • Dalal and Kravtsov 2022: 3e-19 eV (99%).
    • May, Dalal and Kravtsov 2025: 8e-18 eV (95%, if Ursa Major III is a galaxy).
  • Ma and Bertschinger 1995 (ApJ 455, 7).
    • PR: conformal Newtonian equations, hierarchy truncation, and initial conditions from eq. 96.
    • Paper: eqs. 50, 51 and 96 match radiationEra().
    • Confirmed.
  • Eisenstein and Hu 1998: stated fitting range. Not checked. The asymptotic tail was checked numerically instead.
  • Sources list (35 entries) against Crossref and the arXiv API. Authors, volumes, pages and years all match, except Goerdt's initial and the HBG title. Partly right.

What was verified

  • Tests. npm test passes on Node 18.20.8, 20.20.0 and 22.22.0: all 7 check files, with 16 PASS and 3 NOTE lines in tests/halos.mjs. halos/table.mjs exits 0 with identical output on all three versions, taking about 0.6 to 0.9 s.
  • Diff scope. The diff touches only the 7 listed files. model.js follows the UMD pattern of cosmic-homogeneity, and tests/run.mjs picks up tests/halos.mjs.
  • Thermal history, reimplemented independently: g(30 MeV) = 12.58. Heavier hadrons add 0.1% at 50 MeV, 1% at 70 MeV and about 7% at 100 MeV, as the README says.
  • Acoustic and free-streaming scales, recomputed:
    • M_ao = 1.03e-4, 3.48e-6 and 1.40e-6 Msun at 10, 30 and 40 MeV.
    • At 30 MeV, s = 0.843 pc and k_fs = 1.677e6 Mpc^-1.
    • GHS's fitting formula differs from the derived k_fs by +5.4%, +1.4% and -1.1% at 10, 30 and 40 MeV.
  • Bino half mode and half power: 4.30e-6 and 1.16e-5 Msun, which are 4 and 11 times M(pi/k_fs). Both lie inside GHS's stated range, k < k_fs.
  • sigma(M), growth and collapse redshifts, recomputed with independent code:
    • sigma(1e12) = 2.22 and sigma(1e-6) = 24.3.
    • Bino z_c = 16.3, 33.6 and 50.8 at 1, 2 and 3 sigma; WMAP-era inputs give 22.5 and 45.9.
    • An independent baryon-lag integration gives 10.77 and 13.21.
  • radiationEra() matches Ma and Bertschinger. The fluid closed form (A = 9 psi0, B = e^(gamma_E - 1/2)/sqrt3) was re-derived. The free-streaming coefficient (12.45 to 12.48) converges in lmax and xmax.
  • Wave scales, recomputed: every Jeans-mass definition, and the HBG half power (4.58 Mpc^-1) and half mode (5.08 Mpc^-1). An independent Schroedinger-Poisson solver gives 0.633 hbar^2/(G m^2) = 5.41e12 Msun pc, with 23.6% of the mass inside r_c.
  • Numbers in the text. Every number in halos/README.md, CORRECTIONS 21-24, the root README bullet and the PR table matches the script output after rounding. That includes the level arithmetic: mu = 0.0249, or 1.604 decades per level.
  • CORRECTIONS 21-24 quote issue #18 accurately. Item 22's account of 66.5 and 1.5e7 holds against the papers.

Blocking findings

  1. tests/halos.mjs:70. The collisional damping mass, "about 1e-10 Msun", is credited to astro-ph/0508553. That paper does not contain it: both arXiv versions give only k_d.
    • Fix: cite the GHS constant already defined at line 30 (JCAP 0508, 003, astro-ph/0503387, which gives "M_d ~ 1e-10 Msun" for a sphere of radius pi/k_d). Optionally add GHS 2004 (MNRAS 353, L23), which gives 9e-11 Msun at T_kd = 33 MeV.
    • Keep the provenance marker honest, for example "checked in the arXiv source in review".
  2. halos/README.md:90-91. "Schive, Chiueh and Broadhurst's fitted profile gives 5.5x10^12" is wrong. The fitted profile integrates to 5.3e12 Msun pc; the 5.5e12 comes from their core mass-radius relation.
    • Fix: "Their core mass-radius relation (Supplementary Information), M_c ~ 5.5e9 m23^-2 (r_c/kpc)^-1 Msun, gives 5.5e12. Their fitted profile, integrated to r_c, gives 5.3e12."
    • At tests/halos.mjs:110, cite the Supplementary Information directly, and note that arXiv:2603.07175 credits the relation to PRL 113, 261302, which does not contain it.
  3. halos/README.md:192-193 (and :226). "Full wave simulations shift M0 (May and Springel 2023)" reverses what the paper says. It finds "quite good agreement" with Schive et al.'s fit and reports no shift of M0.
    • Fix: "The one full wave-simulation halo mass function so far (May and Springel 2023: 7e-23 eV, z = 3, 68 haloes) agrees broadly with Schive et al.'s fit, but has too few haloes to test M0 precisely."
    • Complete line 226 with the paper's title and https://arxiv.org/abs/2209.14886.
  4. halos/README.md:119-123, the PR body, tests/halos.mjs:130-137 and halos/table.mjs:78, 86-87. GHS's z = 60 +- 20 is not a first-halo or 3.5 sigma figure.
    • What GHS measure: the onset of nonlinearity for typical fluctuations, sigma(R, z_nl) = 1, with sigma8 = 0.9, n = 1 and baryons ignored. They put the first halos at about 60N for N sigma peaks.
    • What the model gives under that definition: z = 28 to 29 with Planck 2018, 39 to 40 with WMAP-era inputs, and 43 to 45 with GHS-like inputs and baryons removed. The last is inside 60 +- 20.
    • The 3.5 sigma comes from this model's 1.686 threshold. Under GHS's threshold the same redshift needs 2.1 sigma.
    • Fix:
      • State GHS's definition and give these like-for-like numbers.
      • Drop "corresponds to a 3.5 sigma peak", or label it as this model's 1.686 threshold.
      • Rename the NOTE to "onset for typical fluctuations".
      • Replace "their inputs and definition were not seen" with the citation.
      • Say that a factor of about 1.3 in 1+z remains.
  5. tests/halos.mjs:117-121 (and halos/README.md:98-100, 163). The check compares the model's no-tides count with Diemand, Moore and Stadel's survivor figure, "over 10^15". It should instead compare with their own extrapolated total for the same m^-1.9 law, N(>1e-6 Msun) ~ 5e15 (body text after Fig. 3).
    • Like for like, the model is 4.8 times lower for Aq-A and 8.8 times lower for the 1e12 Msun host.
    • The unjustified tolerance nMW/1e15 > 1/3 also lets the 1e12 Msun host pass, though it falls 1.75 times short of the bound.
    • Fix:
      • Report the comparison with 5e15, and record the factor of 5 to 9 as a disagreement, in a NOTE or a CORRECTIONS entry.
      • If a hard check stays, keep only nAq >= 1e15 and state its 5% margin.
      • Drop the 1/3 tolerance. The paper gives no host mass that could justify it.
      • Reword README:98-100 and 163 to match.

Non-blocking findings

  • halos/README.md:14-22, 26-27, 100-103 (also model.js:394-399, CORRECTIONS.md:156-157). The level counts apply the main halo's mu at every level. That is the self-similar case, which Springel et al. call an upper limit: sub-subhalos are 2 to 3 times fewer.
    • Fix: call the levels column an upper bound, and add the suppressed counts: 9 to 8 or 8 to 7 for the bino; 12 to 7 or 11 to 7 for Bringmann's range.
    • State that mu is measured against M200; against M50 it is 0.0195. This choice moves the count by up to 1.
  • halos/README.md:125-129 and CORRECTIONS.md:153-158. The README presents the cusp question as settled, and CORRECTIONS 21 calls Wang et al.'s universality a slip. Fix:
    • Add that Wang et al. find NFW/Einasto profiles down to an Earth mass, and that Delos and White suggest the cusps lie at radii those simulations do not resolve.
    • Qualify survival as "at the smallest radii simulations resolve", and note that Angulo et al. find major mergers flatten the cusps.
    • Reword the shape point in CORRECTIONS 21 as contested, not a slip.
    • Drop the quotation marks around "prompt cusps", or cite Delos and White 2023, JCAP 10, 008 (arXiv:2209.11237).
  • CORRECTIONS.md:154-155 and halos/README.md:128-129. "Resimulated isolated halos, each in a region of its own size" misdescribes the method.
    • Fix, for example: "Wang et al. zoomed eight times, each time into a smaller region of the previous level chosen to avoid any massive halo; their 20 decades are field halos of many masses, not a chain of halos inside halos."
    • Do not quote "not subhalos of larger hosts" as their words.
  • halos/README.md:16, 49; model.js:155-158; table.mjs:45, 96-99; tests/halos.mjs:72-77. Bringmann and Cornell et al. write M_fs and M_ao with rho_chi, while the PR uses rho_m, which is 1.19 times higher. At 10 MeV the level count is 9.97, so it becomes 10 with rho_chi.
    • Fix: say this beside the 'Bringmann' floors and beside the Cornell check, where the like-for-like ratio f_c M_ao / Cornell is 1.24.
    • Note the 9/10 knife edge, or report fractional levels.
  • tests/halos.mjs:91-95 (also model.js:370-372). The check on Hui et al.'s Jeans mass uses all the matter. Hui's formula is normalised to the FDM density (Omega_FDM = 0.27, h = 0.7), and a 5% tolerance cannot tell the two apart.
    • Fix: either evaluate at Hui's normalisation (1.505e7 against 1.5e7), or compare the dark-matter value with Hui's formula at the model's cosmology (1.47e7). Use a tolerance of about 1%.
    • Keep the all-matter value, 1.54e7, as a note, and cite eq. jeans directly.
  • Provenance labels: halos/model.js:17-18, 31-32, 370-372; halos/README.md:53-55, 175-177, 197-198; tests/halos.mjs:87, 94. The primary texts contain the prefactor, the pi/k_fs definition, Hui's definition, Marsh's 66.5 and Schive's M0.
    • Fix: cite the equations, marked as checked in this review: GHS JCAP eqs. dfs and dk (valid for k < k_fs), Hui eq. jeans, Marsh eq. axion_jeans, Schive 2016 eq. MFFit.
    • Drop the prefactor from "What the model leaves out".
    • Do not add a note that GHS's M_fs counts WIMPs alone: their M(R) uses all matter, as the PR does.
  • halos/README.md:79-80 and table.mjs:60. The caveat implies that rows below 3e-19 eV are calibrated. They are not: Schive et al.'s M0 was fitted at m22 = 0.8 to 3.2, and they flag it as uncertain below 1e9 Msun.
    • Fix: say that every bound row is an extrapolation, by a factor of 60 in mass at 2e-20 eV.
    • Note that Rogers and Peiris quote a half-mode mass of 7.2e7 Msun at their bound. That uses a WDM-matched convention (Drlica-Wagner et al. 2019) and is 2.1 times the PR's 3.4e7.
  • halos/README.md:121-123. The 22.5, the 46 and the 3.5 sigma use growth without the baryon lag that the README argues for two sentences earlier. That matches GHS, who ignore baryons, but the README should say so. With the lag, the same comparison needs 3.7 to 4.4 sigma.
  • tests/halos.mjs:67. "The thermal history moves it by 2.4%" names no baseline and does not reproduce. Against a constant g = 10.75 the shift is 2.3%. Fix: name the baseline, or drop the parenthetical.
  • halos/README.md:156-165. The Checks list omits two checks: the Jeans bisection check (a numerics check of jeans()) and the Aquarius normalisation check (a guard on transcribed constants). Fix: list both.
  • halos/README.md:221. The HBG entry pairs the arXiv title with the PRL reference. Fix: use the published title, "Fuzzy cold dark matter: the wave properties of ultralight particles".
  • halos/README.md:217. Goerdt's first initial is T., not A.
  • halos/README.md:202, 206, 209, 212, 216, 223, 226. Several entries lack titles or journal references. Fix:
    • Add AIP Conf. Proc. 805, 431; MNRAS 463, 102; MNRAS 492, 3662 with its full title; MNRAS 510, 1425; and May and Springel's title and link.
    • Add the two papers the tests quote: Toguz et al. (MNRAS 511, 1757, arXiv:2106.02526) and Wardana et al. (arXiv:2603.07175).
    • Keep the "as quoted in" wording unless the authors read the originals.
  • halos/README.md:106, 133-134, 185-187. Three prose lines break the roughly 115-column wrap: one 216-character joined line and two stray short lines. Fix: rewrap.
  • PR description, Files section. tests/halos.mjs takes 0.54 to 0.75 s, not "about 0.4 s". Fix: say "about 0.6 s" or "under a second". "Under a second" for the table is fine.
  • PR description, Numbering paragraph. #26 rewrites the existing cosmic bullet rather than adding one. Also, if #34 lands first, this PR's items 21-24 become 23-26 and its bullet goes after the turbulence bullet. Fix: say both.

Refuted findings:

  • sources:wave F5 said the bottom of the issue's mass range is out of date. Refuted: Milky Way satellite counts still give 2.9e-21 eV (Nadler et al. 2021), so "out of date at the top" is accurate.
  • sources:wave F7 said the wave values should be relabelled as read in the papers. Refuted: the "search text" labels honestly record what the authors read. The values are confirmed above, and any new label should say they were checked in review.
  • physics P4 said the fluid-neutrino tail applies only between 1e5 and 4e5 Mpc^-1. Refuted: Bertschinger 2006, Sec. II, builds the coupled-WIMP damping on the same fluid-neutrino background. Restricting the tail changes sigma(M_hm) by only 0.1.
  • citations N7 said CORRECTIONS 23 fails to reconcile the issue's 4.5 with 4.8. Refuted: the item pairs each end of the range with its definition. Nothing records how the issue's 4.5 was computed, so the suggested wording would assert a provenance nobody knows.

Verdict: do not merge until the damping-mass citation (tests/halos.mjs:70), the Schive 5.5e12 description (halos/README.md:90-91), the May and Springel claim (halos/README.md:192-193), the GHS z = 60 comparison (halos/README.md:119-123 and related) and the Diemand, Moore and Stadel check (tests/halos.mjs:117-121) are fixed


Generated by Claude Code

Copy link
Copy Markdown
Contributor

One note before this merges. The approval above is on f2f57a5, which is also the commit our independent review covered. That review found five blocking problems, and they are still open on this head:

  1. The collisional damping mass (tests/halos.mjs:70). The check credits ~10⁻¹⁰ M☉ to astro-ph/0508553, which doesn't contain it. It is in Green, Hofmann and Schwarz 2004 and in their JCAP paper.
  2. The core-mass relation (halos/README.md:90-91). The 5.5×10¹² M☉ pc is described as coming from Schive, Chiueh and Broadhurst's fitted profile. That profile integrates to 5.3×10¹². The 5.5 is their separate core mass-radius relation.
  3. May and Springel 2023 (halos/README.md:192-193). They are cited as showing that full wave simulations shift M₀. The paper says the opposite.
  4. The z = 60 ± 20 comparison (halos/README.md:119-123 and related). In Green, Hofmann and Schwarz this is when typical fluctuations go nonlinear, not when the first halos form, so the 3.5σ-peak comparison doesn't hold.
  5. The Diemand, Moore and Stadel check (tests/halos.mjs:117-121). It compares the model's extrapolated total, with no tidal losses, against their count of survivors ("over 10¹⁵"). Their own like-for-like extrapolation gives about 5×10¹⁵.

Once a commit addresses these, I'll re-review it.


Generated by Claude Code

Blocking:
- The collisional damping mass (~1e-10 Msun) is cited to Green, Hofmann
  and Schwarz's JCAP paper and their 2004 MNRAS letter, not
  astro-ph/0508553, which does not contain it.
- The 5.5e12 m23^-2 Msun pc is Schive, Chiueh and Broadhurst's core
  mass-radius relation (Supplementary Information); their fitted
  profile, integrated to r_c, gives 5.3e12 (printed by table.mjs).
- May and Springel 2023 agree broadly with Schive et al.'s M0; they do
  not shift it.
- Green, Hofmann and Schwarz's z = 60 +- 20 is z_nl, where typical
  fluctuations reach sigma = 1 (top hat, sigma8 = 0.9, n = 1, no
  baryons). The like-for-like z_nl is 28-29 (Planck 2018), 39 (WMAP-era)
  and 44-45 without baryons, inside their range; a factor of about 1.3
  in 1 + z remains. zc() takes a threshold option. The 3.5 sigma is
  labelled as this model's 1.686 threshold (2.1 sigma for sigma = 1;
  3.7-4.4 sigma with the baryon lag).
- The Diemand, Moore and Stadel check keeps only Aq-A >= 1e15 (a 5%
  margin); their own extrapolation, ~5e15, is a NOTE: the Aquarius law
  gives 4.8 to 8.8 times fewer.

Non-blocking: levels as an upper bound, with sub-subhalos 2 or 3 times
fewer (nesting() returns them) and mu against M50; the cusp question
as contested (Wang et al., Delos and White, Angulo et al.), also in
CORRECTIONS 21 and the root README bullet; Wang et al.'s method;
rho_chi against rho_m for Bringmann's and Cornell et al.'s masses (the
Cornell check compares the dark matter alone; the bino's 9/10 knife
edge); Hui et al.'s Jeans mass checked at their normalisation within
1%; equation-level provenance labels; every bound row an extrapolation,
and Rogers and Peiris's half-mode mass; the baryon lag on the z = 60
comparison; the unreproducible "2.4%" dropped; the Checks list
completed; Sources titles, journal references and initials; rewrapped
lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK
- Bringmann's 1e-11 to 1e-3 counts the dark matter alone; the answer
  table and the nesting table now convert it to all the matter, like
  every other mass here (1.2e-11 to 1.2e-3; with fewer sub-subhalos his
  range has 11 to 7 or 10 to 7 levels, not 12 to 7 or 11 to 7).
- The M50 level count starts its chain at M50.
- Prompt cusps: their formation is no longer presented as contested
  (Ondaro-Mallea et al. 2024 find them without artificial
  fragmentation); what is contested is whether they survive (J. Wang et
  al. 2020; Delos and White 2023; Y. Wang et al. 2025, "buried but not
  destroyed"). README, CORRECTIONS 21 and the root README bullet.
- Equation names from the arXiv sources are called labels, not numbers.
- Printed now: Green, Hofmann and Schwarz's k_fs against the derived
  one at 10, 30 and 40 MeV; the 1e12 host's 1.75 shortfall; four levels
  with sub-subhalos 2 or 3 times fewer (9e4 to 2e4 Msun).
- Hui et al.'s Jeans mass: the table row is their sphere in all the
  matter; the text gives the dark-matter-alone and all-matter values at
  Planck 2018; the check says why 1% is tighter than the quoted rounding.
- "delta = 1" for Green, Hofmann and Schwarz's threshold; zc() takes
  nu and delta with ?? ; the WMAP_ERA comment names GHS's inputs; May
  and Springel's is the first fully self-consistent wave-simulation mass
  function; hadron percentages credited to the review's calculation;
  Wardana et al.'s E. G. M. Ferreira; table alignment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK

@zero-aska zero-aska left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an independent re-review of 32020f3 by agents of the reviewing team that did not draft the branch: a sources track on the fixes and new claims, a delta track, and refuters for each finding (two for blocking ones).

Thank you for the thorough reply. Nearly every item from the first review is now fixed. Three of the problems below (B1, N1 and N7) came from wording in our own first review, and we say so where it applies.

The first review's blocking items

  1. Damping-mass citation: fixed. tests/halos.mjs:74-75 now cites GHS JCAP (jcaprev.tex:770-772, "M_d ~ 10^-10 M☉") and GHS 2004 model A (9e-11 at T_kd = 33 MeV, MD1004rv.tex:212-221). Both were checked.
  2. Schive 5.5e12 description: fixed. It is credited to the core mass-radius relation in the Supplementary Information (Supplement.tex:310-312). The fitted profile integrates to 5.30e12, which table.mjs prints.
  3. May and Springel: fixed in halos/README.md:232-234, which matches main.tex:740-790. The PR body still says they "agree with Schive et al.'s M0" (N2).
  4. GHS z = 60 comparison: partly fixed. The definition, the section and the 60N are right, and like-for-like values are printed. Attaching n = 1 to ±20 and calling 44-45 "inside their range" is wrong (B1). That wording came from our first review.
  5. Diemand, Moore and Stadel check: fixed. The only hard check left is Aq-A ≥ 1e15 (1.0511e15, with the 5% margin stated), and the 5e15 comparison is a NOTE. Springel et al. (paper.tex:618-626) confirm that Diemand's r200 is their r50, so the comparison is like for like.

Source checks

  • GHS 2005 JCAP, jcaprev.tex:764-772. PR (tests/halos.mjs:74-75): M_d ~ 1e-10 M☉ for a sphere of radius π/k_d. Source: "The total WIMP mass contained in a sphere with radius π/k_d is M_d ~ 10^-10 M☉". Confirmed. The model gives 9.70e-11 at 30 MeV.
  • GHS 2004, MNRAS 353, L23, MD1004rv.tex:212-221, 255-259. PR (tests/halos.mjs:72-75, README:61-63): model A gives 9e-11 at T_kd = 33 MeV, and "about 1e-6 M☉" is the π/k_fs sphere (9e-7 for model A). Source: model A is 100 GeV with T_kd = 33 MeV and M_d = 9e-11; "M_fs ~ 10^-6 ... for model A (B) we find M_fs = 9e-7 (6e-7)". Confirmed.
  • GHS 2005, "The first structures", jcaprev.tex:1735-1764. PR (README:146-148): z_nl is where σ(R, z_nl) = 1, with a top hat, σ8 = 0.9 and the baryons ignored. The source says exactly this and adds Ω_m/Ω_Λ = 0.370. Confirmed.
  • GHS 2005, jcaprev.tex:1850-1857. PR (README:148): Nσ peaks collapse at about 60N. Source: "z_nl^max(N) ~ (60 ± 20)N". Confirmed.
  • GHS 2005, jcaprev.tex:54, 1785-1806, 1856. PR (README:146-150, tests/halos.mjs:147 and 153-155, table.mjs:95-96, PR body): 60 ± 20 holds at n = 1, and the model's 44-45 is "inside their range". Source: 50 to 65 across their benchmarks, and "for the best fit WMAP matter density and a scale invariant power spectrum z_nl^max = 60 ± 10". The ±20 adds "the uncertainty in the primordial power spectrum". Partly right (B1).
  • GHS 2005, labels dfs and dk, jcaprev.tex:1026-1060. PR (README:66-67, model.js:18-20): T = [1 − (2/3)(k/k_fs)^2] exp[−(k/k_fs)^2 − (k/k_d)^2], stated for k < k_fs. The source matches ("valid for k/k_fs < 1"). Confirmed.
  • Schive, Chiueh and Broadhurst 2014, Supplementary Information, Supplement.tex:308-312. PR (README:109-111, tests/halos.mjs:120-123): 5.5e12 M☉ pc comes from the core mass-radius relation. Source: "M_c ~ 5.5e9/((m_B/1e-23 eV)^2 (r_c/kpc)) M☉". Confirmed.
  • Schive 2014, Supplementary Information, Supplement.tex:321 (eq:Soliton). PR (table.mjs:162-166) recalls ρ = 1.9 m23^-2 (r_c/kpc)^-4 / [1 + 0.091 (r/r_c)^2]^8 and integrates it to 5.3e12. The source matches exactly. Integrated independently, it gives 5.30e12. Confirmed.
  • Schive et al. 2016, Manuscript.tex:520, 645, 665, 1369-1379. PR (README:92-93): M0 (eq:MFFit) was fitted to runs at m22 = 0.8 to 3.2, and the authors "flag it as uncertain below 1e9 M☉". Source: the runs are confirmed. The caveat is about the mass function below about 1e9 M☉, not about M0. Partly right (N1).
  • May and Springel 2023, main.tex:740, 772, 783, 790, 983. PR (README:232-234, 278): this is the first halo mass function from a self-consistent wave simulation (7e-23 eV, z = 3, 68 haloes). It agrees broadly with Schive's fit but has too few haloes to test M0 precisely. The source says this, and Crossref confirms MNRAS 524, 4256. Confirmed.
  • Diemand, Moore and Stadel 2005, pdm.tex:70-71, 217-229. PR (README:119-122, 204, 208-210; tests/halos.mjs:129-136): their m^-1.9 law extrapolated gives about 5e15 above 1e-6 M☉, they state no host mass, and they "find" that "over 10^15" survive. Source: "N(M>10^-6 M☉) ~ 5×10^15", with no host mass, and "we expect over 10^15 to survive", which comes from "simple estimates". Confirmed, but "find" should be "expect" (N5).
  • Springel et al. 2008, paper.tex:100-101, 203, 618-626, 929-931, 1627-1634, 1707-1711. PR: sub-subhalos are 2 or 3 times fewer than self-similarity predicts, the self-similar count is an upper limit, they detect up to four generations, a0 = 3.26e-5, m0 = 2.52e7, and Aq-A's M50 = 2.52e12 (recalled). The source says all of this. Table 1 gives Aq-A-1 M50 = 2.523e12 and r50 = 433.48 kpc. Confirmed.
  • Erkal et al. 2016, ms2.tex:394. PR (README:258, tests/halos.mjs:127-128, model.js:397-403): a0 = 1.77e-5 within 353 kpc for a 1e12 host. Source: "Scaling down to a MW mass of 1e12 ... a0 = 1.77e-5 M☉^-1 within 353 kpc". Crossref confirms MNRAS 463, 102. Confirmed.
  • Angulo, Hahn, Ludlow and Bonoli 2017, abstract. PR (README:156-161): the first halos have r^-1.5 centres, and major mergers flatten them. Source: "~r^-1.5", and major mergers "lead to a shallowing of the inner profile". Crossref confirms MNRAS 471, 4687. Confirmed.
  • Ondaro-Mallea et al. 2024, abstract. PR (README:157-158, 265): simulations free of artificial fragmentation find prompt cusps; MNRAS 527, 10802. Source: "entirely free of artificial clumps ... a cusp with density ρ ∝ r^-1.5 is indeed formed promptly". Crossref confirms. Confirmed.
  • Y. Wang, Bose, Frenk and Jenkins, Main.tex:96, 633, 636, 801-803, 827-829. PR (README:163-165, CORRECTIONS.md:160-162): the cusps are "buried but not destroyed". Source: the abstract supports burial in the original peak's particles. The body finds that major mergers and early artificial fragments destroy the cusp. Partly right (B2).
  • Delos and White 2023, JCAP 10, 008, main.tex:137, 147. PR (README:156, 264): the term "prompt cusps" and the title. Source: "these prompt cusps can survive until the present day", with "ρ ∝ r^-1.5". Crossref confirms. Confirmed.
  • Delos and White 2023, MNRAS 518, 3509, main.tex:145, 683. PR (README:160-163): cusps survive at the smallest radii simulations resolve, and J. Wang et al. may not resolve them. Source: "to the extent that we can resolve them, cusps survive at the smallest radii", and the cusp "might go unresolved, which could explain why some works (e.g. Wang 2020) found no evidence". Confirmed.
  • J. Wang et al. 2020, VVV_let.tex:94-96, 130-136, 251. PR (README:161-167, CORRECTIONS.md:154-156): eight nested zooms that avoid massive haloes, with NFW and Einasto fits. The source matches. Confirmed.
  • Rogers and Peiris 2021, axions_PRL.tex:197. PR (README:94-96, table.mjs:66-67): a half-mode mass of 7.2e7 M☉ at their bound, 2.1 times the 3.4e7 here. Source: "minimum allowed half-mode halo mass of 7.2e7 M☉". Confirmed; 7.2e7/3.37e7 = 2.14.
  • Drlica-Wagner et al. 2019, models/axiontheory.tex:47-49. PR (README:95, 282): that half-mode mass uses a convention matched to warm dark matter. Source: M_hm = 1.2e11 (m/1e-22 eV)^-1.4 M☉, built from the warm-dark-matter M_hm. This gives 7.2e7 at 2e-20 eV. Confirmed.
  • Hui, Ostriker, Tremaine and Witten 2017, FDM.tex:850-866 (eq:jeans). PR (README:102-104, tests/halos.mjs:99-107): M_J = (4/3)πρ(λ_J/2)^3 = 1.5e7 (Ω_FDM/0.27)^1/4 (H0/70)^1/2 m22^-3/2, and the model gives 1.5053e7 at their normalisation. The source matches, with Ω_FDM defined as "the fraction of the critical density in FDM". Confirmed. Computed independently, the value is 1.50529e7.
  • Marsh 2016, physics_reports_v2.tex:1046-1048. PR (README:100-101, tests/halos.mjs:94): the 66.5 form is in the equation labelled axion_jeans. Source: label eqn:axion_jeans, k_J = 66.5 a^1/4 (Ω_a h^2/0.12)^1/4 m22^1/2 Mpc^-1. Confirmed.
  • Kulkarni and Ostriker 2022, main.tex:132. PR (README:275): they quote the 66.5 form; MNRAS 510, 1425. The source and Crossref match. Confirmed.
  • Toguz, Kawata, Seabroke and Read 2022, main.tex:134-140. PR (README:274, tests/halos.mjs:104): they quote Hui's Jeans mass; MNRAS 511, 1757; the title is not given. The source quotes it. Crossref gives the title "Constraining ultra light dark matter with the Galactic nuclear star cluster". Confirmed (N3).
  • Wardana et al., sample7.tex:344-347, sample7.bib:2023-2029. PR (README:276, tests/halos.mjs:122): they restate 5.5e12 and credit it to PRL 113, 261302. The source matches. Confirmed.
  • Ishiyama and Ando 2020. PR (README:215, 261): the title and MNRAS 492, 3662. Crossref matches. Confirmed.
  • Green, Hofmann and Schwarz, AIP Conf. Proc. 805, 431. PR (README:251): the year is 2006. Crossref and INSPIRE give 2005; only the arXiv journal-ref says 2006. Partly right (N3).
  • Issue #18. PR (CORRECTIONS.md:153-177): items 21-24 quote it. The quotes are accurate. Confirmed.

What was verified

  • node tests/run.mjs passes on Node 18.20.8, 20.20.0 and 22.22.0 (all 7 check files). tests/halos.mjs prints 16 PASS and 4 NOTE, halos/table.mjs exits 0, and the output is byte-identical on all three versions. CI runs test (18), (20) and (22) passed on the head.
  • 22 sources were fetched fresh as arXiv LaTeX and read. Metadata came from the arXiv API, Crossref and INSPIRE.
  • Hui et al.'s Jeans mass at their normalisation, recomputed independently: 1.50529e7 (0.35% from 1.5e7), and 1.469e7 at Planck's 0.12/h^2.
  • z_nl at σ = 1, with the PR's model, at M_hm / M(π/k_fs) / the plateau: 44.4 / 45.4 / 46.4 for WMAP-era inputs without baryons, and 43.1 / 44.1 / 45.1 for GHS's stated inputs. At M_hm / M(π/k_fs): Planck 2018 gives 28.1 / 28.7 and WMAP-era gives 38.6 / 39.4.
  • Peak heights at z = 60 (Planck 2018, M_hm): 3.53σ at 1.686 and 2.09σ at δ = 1. With the baryon lag: 3.73 to 4.42σ at 1.686 and 2.21 to 2.62σ at δ = 1.
  • Aquarius counts above 1e-6 M☉: 1.0511e15 for Aq-A (5.1% above 1e15) and 5.71e14 for the 1e12 host.
  • Level counts reproduced from nesting(): the bino gives 9 to 8 / 8 to 7, Bringmann's range 11 to 7 / 10 to 7. mu50 = 0.0182 (0.0195 for Aq-A), and the bino at 10 MeV gives 9.97 or 10.01.
  • f_c = 0.84364. The Cornell ratios are 1.244 (dark matter alone) and 1.475 (all matter). Bringmann's range converted to all matter is 1.185e-11 to 1.185e-3 M☉.
  • Rogers and Peiris's 7.2e7 was reproduced from Drlica-Wagner et al.'s M_hm at 2e-20 eV (2.14 times 3.37e7). GHS's k_fs differs from the derived one by +5.4%, +1.4% and −1.1% at 10, 30 and 40 MeV.
  • Every number in halos/README.md, CORRECTIONS 21-24, the root README bullet and the PR body table matches the script output after rounding. origin/main still ends at item 18, so items 21-24 are correct while the PR is stacked on #26.
  • zc() with a threshold works on Node 18. The "2.4%" is gone. The Checks list now includes the bisection check and the Aquarius-normalisation guard.
  • Timing on a loaded shared machine: the tests take 0.72 to 0.93 s and the table 0.89 to 1.54 s.

Blocking findings

  • B1. halos/README.md:146-150 (also tests/halos.mjs:146-147 and 153-155, halos/table.mjs:95-96 and 102, and the PR body bullet "The bino's first halos").
    • Problem. The README attaches n = 1 to GHS's 60 ± 20 and calls the model's 44-45 "inside their range". For a scale-invariant spectrum and the best-fit WMAP density, GHS give 60 ± 10, or 50 to 65 across their benchmarks (jcaprev.tex:1795-1806). The ±20, which spans 40 to 80, adds scale-dependent primordial spectra (line 1856). At n_s = 1 the model gives 44.4 to 46.4, or 43.1 to 45.1 with GHS's own Ω_m = 0.27 and h = 0.72. That is below their n = 1 range and inside only the wider one.
    • Comparison with GHS's figure. Their benchmark C (100 GeV, T_kd 25 MeV) is the closest to this bino, and its curve plateaus at about 59. The model gives 46.0 for C.
    • Origin. This wording came from our first review ("inside 60 ± 20"), and you applied it as written. Sorry about that.
    • Fix. Write: "60 ± 10 for n = 1 and the best-fit WMAP density (50 to 65 across their benchmarks), and 40 to 80 (60 ± 20) once scale-dependent spectra are included". Then say that the model's 44-46 at n_s = 1 lies below their n = 1 range, by about 1.3 in 1 + z, and inside only the wider one. Keep "a factor of about 1.3 in 1 + z remains".
    • Same change elsewhere. Make it in the NOTE label and text ("below their n = 1 range of 60 +- 10, inside only 40-80"), the two code comments, table.mjs:102 and the PR body.
    • Optional. Quote the plateau value (46.4), which is the quantity GHS call z_nl^max. halos/model.js:66-67 can say that Ω_m and h follow from GHS's stated Ω_m/Ω_Λ = 0.370 and ω_m = 0.14.
  • B2. CORRECTIONS.md:160-162 (also halos/README.md:163-165).
    • Problem. CORRECTIONS 21 says "a later study finds them buried in NFW-like profiles but not destroyed". The README places Y. Wang et al. after Angulo et al. as if they took the survival side. The abstract (Main.tex:96) does support burial in the original peak's particles. But the body finds two channels. Smooth accretion buries the cusp. Major mergers and early artificial fragments destroy it, even in the peak's own particles (Main.tex:633, 636, 827). In their words, "Violent, early, and clumpy events tend to disrupt prompt cusps, while smooth accretion tends to preserve them" (829). Their merger channel cites Angulo et al. in support (801).
    • Fix, CORRECTIONS 21. Write: "and a later study (Y. Wang et al.) finds that smooth accretion buries them beneath NFW-like envelopes, while major mergers and early clumpy accretion destroy them, as Angulo et al. found".
    • Fix, README. Keep the abstract sentence and add: "when accretion is smooth; after major mergers the peak's own profile leaves the cusp form too, as Angulo et al. find". Also say that their haloes are about 2e9 to 2e10 M☉ with imposed cut-offs, so they bear on Earth-mass halos only through the physics near a cut-off.
    • Provenance. Keep a provenance marker, such as "as #35's review read it in the arXiv source", rather than dropping it.

Non-blocking findings

  • N1. halos/README.md:92-93.
    • Problem. "Flag it as uncertain below 1e9 M☉" reads as if M0 is flagged. Schive et al. flag the mass function below about 1e9 M☉ (Manuscript.tex:665, 1369), and they say the region near M0 is insensitive to that uncertainty. This wording also came from our first review.
    • Fix. Write "and flag their mass function below about 1e9 M☉ as uncertain; at every bound M0 falls in that regime (3e8 M☉ at 2e-21 eV and lower above it)". Optionally add that a true wave simulation "may have an even stronger break" there (lines 1376-1379).
  • N2. PR body, Review section.
    • Problem. "May & Springel, who agree with Schive et al.'s M0" overstates. They report broad agreement with the fit, and they say its precision must await larger volumes (main.tex:783, 790).
    • Fix. Use the README's wording: "agrees broadly with Schive et al.'s fit; too few haloes to test M0 precisely".
  • N3. halos/README.md:157, 251, 266, 274. The Sources entries need four updates. These facts come from Crossref, arXiv and INSPIRE, which you could not reach.
    • Y. Wang et al. is now published as MNRAS 549, stag907 (2026).
    • Toguz et al.'s title is "Constraining ultra light dark matter with the Galactic nuclear star cluster".
    • Crossref and INSPIRE date AIP Conf. Proc. 805 to 2005. Only the arXiv journal-ref says 2006.
    • "Delos and White 2023" at :157 now names two papers. Cite both, or cite the JCAP paper for "prompt cusps" and the MNRAS paper for survival.
    • Optionally, give the equation labels in full: eq:jeans, eqn:axion_jeans and eq:MFFit.
  • N4. CORRECTIONS.md:166.
    • Fix. Item 22 still says Hui's 1.5e7 is "as quoted in search text", while tests/halos.mjs:104 says "checked in review". Write "first seen quoted in search text; checked in review".
    • Optional relabels. Your other labels honestly record what you read, so these are offers, not defects:
      • Aq-A's M50 is in Springel et al.'s Table 1 (2.523e12), for model.js:400-401 and README:246-247.
      • The fitted profile is eq:Soliton in the Supplementary Information (Supplement.tex:321), for table.mjs:162.
      • Erkal's 1e12 scaling is at ms2.tex:394, for model.js:399 and tests/halos.mjs:128.
      • Ondaro-Mallea et al.'s abstract supports README:158.
      • Relabel Y. Wang et al. only with the qualification from B2.
  • N5. halos/README.md:120-121, 204 (also tests/halos.mjs:131, 133).
    • Problem. Diemand, Moore and Stadel "expect" over 1e15 to survive (pdm.tex:70-71). The figure comes from "simple estimates", because they "can not simulate the entire galactic halo" (217-220).
    • Fix. Change "find" to "expect".
  • N6. halos/README.md:14-16, 26-32 (also CORRECTIONS.md:157, the PR body table, and model.js:52-54 and 403).
    • Problem. The levels column is called the self-similar upper bound, but mu = 0.0249 comes from Erkal et al.'s host-proportional scaling. That scaling holds m0 fixed while a0 grows with the host, so mu grows as M_host^(1/9). Springel's self-similar form scales both a0 and m0 with M50 and gives every host Aq-A's 0.0267 (0.0195 of M50). At 0.0267 the bino has 11.34 and 10.16 levels, so 11 to 10 rather than 11 to 9. Bringmann's range stays 14 to 9. Our first review's F4 noted "10 with 0.0267".
    • Fix. Give the bound at 0.0267. Or write "11 to 9 or 10" and say in one line where 0.0249 comes from.
  • N7. halos/README.md:58-59 (also table.mjs:130-131, CORRECTIONS.md:157-158 and the PR body).
    • Problem. The 10.01 counts the floor in dark matter alone but leaves the host at 1e12 M☉ of all matter. Counting both in dark matter alone gives 9.97, because the count depends only on host/floor. This framing came from our P5.
    • Fix. Name the mix, for example "floor in dark matter alone, since microhalos hold no baryons; host as all its matter: 10.01". Or say that the count reaches 10 for a host above 1.13e12 M☉ (0.95e12 with the floor in dark matter alone), so the Milky Way's mass decides it. In CORRECTIONS 21 and the PR body, change or drop "counting the dark matter alone, the 9 becomes 10".
  • N8. halos/README.md:29-30 (also table.mjs:123-124, model.js:414-417 and the PR body table).
    • Problem. Bringmann's light-end suppressed counts are knife edges. At 1.185e-11 M☉ they are 11.9994 (sub-subhalos 2 times fewer) and 10.991 (3 times fewer). At the unconverted 1e-11 they are 12.04 and 11.03, and WMAP-era f_c gives 12.001.
    • Fix. Print fractional suppressed counts, as the mu column already does. Or write "12 or 11 to 7 / 11 or 10 to 7".
  • N9. halos/model.js:414-417.
    • Problem. nesting() takes d1 from muAquarius() whatever host and mus it is given. The call at table.mjs:126 (host = M50, mus = [mu50]) therefore gets an inconsistent suppressed: 12/11 instead of 11/10 at 1e-11. Nothing printed uses that field today.
    • Fix. Add a mu parameter that defaults to muAquarius(), and pass mu50 at table.mjs:126. Or document the assumption.
  • N10. halos/model.js:38, 383-384 and the PR body.
    • Lines 38 and 383 run to 152 and 151 columns, against about 118 in their comment blocks. Rewrap them.
    • Lines 383-384 repeat "in their arXiv source". Remove the repetition.
    • In the PR body, "(2.1σ to reach δ = 1; 3.7–4.4σ with the baryon lag)" reads as if the lag range applied at δ = 1. Write "with the baryon lag, 3.7–4.4σ at 1.686 and 2.2–2.6σ at δ = 1".
    • The "CI on Node 18, 20, 22" box can be ticked, since all three runs passed on 32020f3.

Refuted:

  • One finding said the 1% label on the Hui et al. check (tests/halos.mjs:102-106, README:199) does not describe what the check catches. The refuter disagreed. The test fixes Hui's density, so 1% is what rejects an all-matter density (+2.3% at Planck 2018, +3.0% at Ω_m = 0.3 and h = 0.7) and the dark matter alone at Planck (−1.9%). The quoted rounding of about 3% could not do that, so the label is accurate. Optionally, print those counterfactual values.

Avenues

  • The factor of about 1.3 in 1 + z against GHS looks like an amplitude offset, not cut-off physics. It is nearly the same across GHS's benchmarks (about 1.24 to 1.32), and GHS's curve without a cut-off is already 1.28 times higher below about 1 pc. Comparing the model's σ(R_min, z = 0) with GHS's P_Δ (jcaprev.tex:1535-1550), or comparing the Eisenstein-Hu tail with their analytic transfer function near 1e6 Mpc^-1, would locate the offset. That could turn the NOTE into a check.
  • Buried cusps may be a second kind of nesting. Delos and White's JCAP paper (main.tex:234, 251) uses the same 100 GeV WIMP at 30 MeV and finds about 40,000 prompt cusps per M☉ at late times. The Aquarius law gives about 190 surviving subhalos per M☉ above the bino floor. Together with Y. Wang et al.'s dependence on merger history, this could become a column with a survival fraction per level. Delos and White also use k_fs = 1.06e6 Mpc^-1 (Bertschinger's Gaussian convention), where GHS give 1.70e6. That is a factor of about 4 in M(π/k), and it belongs beside "About 1e-6 M☉ is a convention".

Verdict: do not merge until B1 (the GHS z_nl range wording) and B2 (the summary of Y. Wang et al. on cusp survival) are fixed


Generated by Claude Code

…ber corrections

issue-17 now carries main, with the turbulence study's CORRECTIONS items 19 and
20 and the cosmic items renumbered 21 and 22, so this study's items become 23 to
26. The workflow runs the turbulence steps and the halos table; the README lists
the cosmic, turbulence and halos bullets in that order, before the closing
paragraph. No other file cites a correction by number.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bpiHyHSkC8DAL5CcyciK

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants