Validation¶
liulu is validated against \(N\)-body halo catalogues (LCDM and \(f(R)\)
fiducial cosmologies, \(z=0.25\), up to 100 boxes, four mass cuts), plus an
independent cross-validation on 25 AbacusSummit base_c000 boxes
(\(2\,\mathrm{Gpc}/h\), \(z=0.2\), Planck cosmology). The full study is in the
companion LaTeX report (docs/streaming_model_report.tex); this page
summarises the conclusions and key figures.
Compare like with like¶
A pair-count estimator does not sample \(\xi_\ell\) at the bin centre: pycorr's
multipole per \(s\) bin is the \(s^2\)-weighted average over the bin, and the
measured \(\xi(r)\) per bin belongs at the pair-weighted separation, not the
geometric centre. Every comparison here therefore uses
StreamingModel.multipoles_binned(s_edges) and a pair-weighted \(\xi(r)\)
abscissa. Neither is optional: each side is an \(\mathcal{O}(2\%)\) effect on
the steep monopole — and on the DEGRACE grids the two cancel, which long hid
both. On AbacusSummit the surviving output-side artefact masqueraded as a
\(\sim\)15% small-\(s\) quadrupole "failure" that is really \(\sim\)4% once the
model is bin-averaged like the measurement.
The model is correct and literature-consistent¶
Feeding measured \(\xi(r)\) and pairwise velocity moments through the streaming integral reproduces the measured redshift-space multipoles at (or beyond) the expected accuracy: \(\xi_0\) to a few per mille at \(s>3\,\mathrm{Mpc}/h\) (0.1–0.4% fracRMS across mass cuts) and the skew-\(t\) \(\xi_2\) to a few percent on quasi-linear scales.

The quadrupole-dip problem and its fix¶
The residual in \(s^2\xi_2\) around \(s\sim3\)–\(5\,\mathrm{Mpc}/h\) — the Fingers-of-God → Kaiser transition — is not numerical: it is the intrinsic limitation of the four-moment skew-\(t\) shape. The distinct-halo pairwise velocity PDF there is skewed and leptokurtic (from the intrinsic non-Gaussianity of the velocity field plus an environmental superposition over pairs; there is no 1-halo term for distinct haloes).
Feeding the empirically measured velocity PDF through the identical integral reproduces the measurement — \(\xi_0\) to \(\lesssim\)0.8% at every scale down to \(s\sim1\,\mathrm{Mpc}/h\) and \(\xi_2\) to \(\sim\)8% (median) through the dip — so the framework and its numerics are exact, and whatever gap a parametric PDF leaves is its four-moment shape error. (An earlier version of this test appeared to miss the monopole by up to 12%; that was the test's own estimator artefacts — a \(P=0\) hole below the first histogram bin centres and centre evaluation — both since fixed.)

NIG fixes most of it¶
Replacing the skew-\(t\) with the NIG (generalized-hyperbolic) PDF — same four moments, a Gaussian-mixture shape — cuts the \(\xi_2\)-dip residual from ~34% to ~3%, while keeping the monopole at a few per mille. The improvement is robust across tracer bias (four mass cuts) and to modified gravity (\(f(R)\)): NIG improves the \(\xi_2\) \(\chi^2/\mathrm{ndof}\) over the skew-\(t\) by ~17–29× for well-populated samples. On AbacusSummit — a different simulation code, cosmology and redshift, with per-mille errors — NIG lands within a few times the measurement error at \(s>5\,\mathrm{Mpc}/h\). The genuine four-moment breakdown is confined to the deepest Fingers-of-God (\(s\lesssim2\, \mathrm{Mpc}/h\), worse on Abacus whose FoG is stronger and more leptokurtic), as the Abacus empirical-PDF test confirms.


Is a tuned \(\lambda\) (constant or scale-dependent) worth it?¶
No — at either level of ambition.
Scale-dependent \(\lambda(r)\): calibrated on the PDF shape (per-cell KL) it loses to a well-chosen constant; calibrated on the \(\xi_2\) observable it nudges ahead only in-sample and fails to generalise across mass cuts and to \(f(R)\) — the slope has no consistent sign and the out-of-distribution sample gets worse. (These \(\chi^2\) values pre-date the estimator-consistent comparison, self-consistently for every \(\lambda\), so the ranking stands.)


Constant \(\lambda\), recalibrated from scratch on the estimator-consistent
comparison, fails the harder cross-simulation transfer test
(scripts/calibrate_gh_lambda_const.py): calibrated on DEGRACE by PDF shape
(\(\lambda^\ast\simeq+0.15\), a mere 1–2% KL gain over NIG) or by \(\xi_2\)
(\(\lambda^\ast\simeq+0.3\), in-sample \(\chi^2\) 42→17), and transferred
unchanged to AbacusSummit, it makes Abacus worse than NIG:
\(\chi^2(s>5)\) 4.8→27–38 and the FoG median 4%→28–29%. The preferred class
index encodes simulation-specific small-scale velocity structure, not
transferable physics.
Meanwhile the extended empirical-PDF test (cylinder to \(r_\perp<15\), \(r_\parallel<40\,\mathrm{Mpc}/h\), \(9\times10^7\) pairs) shows NIG has no measurable closure error left at the FoG → quasi-linear transition: its \(\xi_2\) residuals at \(s=6\)–\(10\,\mathrm{Mpc}/h\) (−2.6/+0.2/+0.3%) sit at or below the empirical PDF's own cell-smoothing floor (−4.5/−1.6/−0.8%). The only regime with genuine shape headroom is the deep FoG (\(s\lesssim2.5\,\mathrm{Mpc}/h\)), and recovering it needs more than four moments (a measured/emulated PDF or a mixture family), not a tuned \(\lambda\).
Bottom line¶
Recommended velocity-PDF ladder
NIG (analytic, zero-tuning) → a measured/emulated \(\mathcal{P}(v_\parallel|r_\perp,r_\parallel)\) (or a \(>\)4-moment mixture) for the deep FoG only. A tuned \(\lambda\) — constant or scale-dependent — wins in-sample and fails to transfer across simulations; NIG already saturates the measurable accuracy at \(s\gtrsim2.5\,\mathrm{Mpc}/h\).
And always compare estimator-consistently
multipoles_binned(s_edges) against binned measurements; pair-weighted
\(r\) for the \(\xi(r)\) table. Two ~2% artefacts that can cancel on one
simulation and masquerade as model failure on another.
See Velocity PDFs for the models and the moment→parameter maths.