neutron_star_eos¶
The equation of state (EOS) of neutron-star matter, the relation between pressure and density beyond nuclear density, constrained jointly by the two binary neutron stars, GW170817 and GW190425.
gwtc_analysis neutron_star_eos # low-spin PE priors
gwtc_analysis neutron_star_eos --spin-prior high
Method¶
The EOS fixes, through the equations of hydrostatic equilibrium, the radius and the tidal deformability \(\Lambda = \frac{2}{3} k_2 (Rc^2/Gm)^5\) of a star of each mass. All neutron stars share it, so the four stars of the two events lie on one curve. For stars of nearly equal radius (De et al. 2018 [87]),
and the EOS is summarized by \(\Lambda_{1.4}\), the deformability of a 1.4 M☉ star. The radius follows from the empirical relation \(\Lambda_{1.4} = 2.88 \times 10^{-6} (R_{1.4}/\text{km})^{7.5}\) of Annala et al. 2018 [88], accurate to about 0.5 km across EOS models.
The data measure mostly the mass-weighted combination \(\tilde\Lambda = a\Lambda_1 + b\Lambda_2\) (see Tidal deformability). For each event, with PE samples \((m_{1,i}, m_{2,i}, \tilde\Lambda_i)\) in the source frame,
with \(K_h\) a Gaussian kernel (reflected at 0) and \(\pi\) the prior on \(\tilde\Lambda\) that the PE priors (\(\Lambda_1, \Lambda_2\) uniform on 0–5000) imply at the sample's masses: a trapezoid, computed exactly. The events multiply, with a flat prior on \(\Lambda_{1.4}\); the mass population is the PE mass prior.
| Event | PE label (low spin) | Masses (M☉) |
|---|---|---|
| GW170817 | C02:IMRPhenomPv2_NRTidal-LowSpin (bundle) |
1.47, 1.27 |
| GW190425 | C01:IMRPhenomPv2_NRTidal:LowSpin (GWTC-2.1) |
1.75, 1.56 |
What the mode does¶
The mode runs no inference on strain data. It reads the released PE samples of the two events and evaluates the likelihood above on a grid of \(\Lambda_{1.4}\).
- Samples. GW190425: the PE file of GW190425_081805 on Zenodo (kept in the PE cache). GW170817: the bundle that
unofficial_pe builds from the public GWTC-1 products. The analysis is the one of
--spin-prior(theHighSpinlabels withhigh). From each sample the mode takes the source-frame masses and \(\Lambda_1, \Lambda_2\), orders the stars so that \(m_1 \ge m_2\), and recomputes \(\tilde\Lambda\) from them. - Weights. \(1/\pi(\tilde\Lambda_i \mid m_{1,i}, m_{2,i})\), the trapezoid for \(\Lambda_1, \Lambda_2\) uniform on
0–
--lambda-max; samples where it vanishes are dropped, and the weights are capped at their 99.5th percentile (a few samples at \(\tilde\Lambda \approx 0\) carry huge weights). - Kernel. Gaussian, of width half Silverman's rule, \(h = 0.5 \times 1.06\,\sigma_{\tilde\Lambda}\, n^{-1/5}\),
reflected at 0. At each grid value the model gives \(\Lambda_1, \Lambda_2\) at the sample's masses; a sample whose
predicted \(\Lambda_1\) or \(\Lambda_2\) exceeds
--lambda-max(outside the PE prior) counts zero. - Posteriors. \(\Lambda_{1.4}\) on 1201 points from 0 to 3000; the joint ln L is the sum over the events. Each posterior is normalized by trapezoids; the median and the 90% interval come from its cumulative distribution, and \(R_{1.4}\) from these quantiles with the Annala et al. relation.
The PE runs are not redone, and no sampler is run: the posterior is a one-dimensional grid. The published GW170817 value it is compared with is a constant of the code.
Results¶
| Analysis | Λ₁.₄, median (90%) | R₁.₄ (km) |
|---|---|---|
| GW170817 | 216 (80–628) | 11.2 (9.8–12.9) |
| GW190425 | 628 (109–1783) | 12.9 (10.2–14.9) |
| joint, low spin | 241 (97–631) | 11.4 (10.1–12.9) |
| joint, high spin | 212 (57–608) | 11.2 (9.4–12.9) |
| GW170817, LVK 2018 [70] | 190 (70–580) |

Left: the Λ₁.₄ posteriors, with the radius scale on top. Right: the common Λ(m) curve, with the PE medians of the four stars, which the common EOS pulls together.
GW170817 alone agrees with the published common-EOS result. GW190425 adds little: its stars are heavier, so less deformable (Λ ≈ 0.2–0.7 Λ₁.₄), and it was seen essentially by one detector; it removes some of the lowest values (the joint 5% bound rises from 80 to 97).
Validation¶
On mock events (PE-like samples with uniform Λ priors and a Gaussian likelihood of Λ̃ around the common-EOS
value of a known Λ₁.₄), the truth falls inside the 90% interval about 90% of the time and at the posterior
median on average (tests/test_ns_eos.py). Dividing the smoothed posterior by the prior at the model
point instead of reweighting the samples diverges at small Λ₁.₄, where the prior of Λ̃ vanishes; the kernel
width is half of Silverman's rule, the full width over-smoothing (98% coverage).
Limits¶
- Λ ∝ m⁻⁶ assumes stars of equal radius over 1.2–1.9 M☉; real EOSs bend this slightly.
- No maximum-mass constraint from heavy pulsars and no X-ray radii are included: this is the gravitational-wave constraint alone.
- GW190425's PE file does not record its Λ prior; uniform on 0–5000 is assumed, as recorded for GW170817
(
--lambda-max).
Outputs¶
- The HTML report ends with the PE files of this run: for each event the file read, its type (
nocosmo,cosmo,combinedor the GW170817 bundle) and where it was taken from (Zenodo, the S3 mirror, Galaxy, a PE cache), then the options of the run; see Which PE file is read; --out-report(HTML): Λ₁.₄ and R₁.₄ of each event and jointly, against the published values, with the plot;--out-summary(TSV): Λ₁.₄ and R₁.₄ (median and 90%);<name>.posterior.tsv: the Λ₁.₄ posteriors on a grid;--plots-dir:ns_eos.png.
Options¶
| Option | Default | Meaning |
|---|---|---|
--events {GW170817,GW190425} |
GW170817 GW190425 |
Binary neutron stars to combine. |
--spin-prior {low,high} |
low |
PE analyses with the low-spin (|chi| <= 0.05) or high-spin (|chi| <= 0.89) prior. |
--lambda-max |
5000.0 |
Upper bound of the uniform PE priors on Lambda_1, Lambda_2. |
--cache-dir |
.cache_gwosc |
Cache root of the GW170817 bundle. |
--pe-cache |
— | PE cache of the Zenodo files (default: that of hubble_constant). |
--out-report |
neutron_star_eos.html |
Output HTML report path. |
--out-summary |
neutron_star_eos.tsv |
Output TSV of Lambda_1.4 and R_1.4 (the posteriors go to <name>.posterior.tsv). |
--plots-dir |
neutron_star_eos_plots |
Directory for the plots. |
--data-repo {zenodo,s3,galaxy} |
zenodo |
where the PE files and the GWTC-1 products of GW170817 are downloaded from: their public sources, or a mirror holding the same files, s3 (the MinIO bucket, faster) or galaxy (the public usegalaxy.org history), else the public source (S3 mirror of the public files) |
Every report ends with the options of its run, defaults included. The same table with the help text of all the modes: CLI reference.