Recompute the radiation-era plateau of a cosmic-string background
Sandbox Physics ·
This guide recomputes one published number and one published formula with a fixed Nambu–Goto loop model. The number is the coefficient 8.04 in eq. 5.2 of Auclair and colleagues, the height of the radiation-era plateau in units of ΩrGμ/Γ. The formula is their eq. 6.1 for the plateau as a function of loop size. Both come out within a fraction of a percent. Along the way it records two printed values that disagree with the same model, and four ways to get a wrong answer.
Download the scripts, inputs and saved outputs and extract the archive. It contains six Python files, the three saved JSON files and a short README. The scripts use only the Python standard library. The saved run used Python 3.9.6 and took 37.4 seconds.
cd cosmic-string-background/scripts
python3 reproduce_benchmarks.py ../my-run
The run writes inputs.json, outputs.json and failure-cases.json into the folder you name. Compare them with the saved copies in the archive's benchmarks folder; the same files are also served as inputs, outputs and failure cases. Run the command from the scripts folder: the main script imports its five siblings from there.
Fix the inputs and units
Every time and length is in units of 1/H0 with c=1, frequencies are in hertz, and densities are reported as h2Ωgw. The fixed inputs are:
Table 5.1 Fixed inputs of the saved run.
Quantity
Value
Source
Hubble parameter h
0.678
Auclair eq. 2.7
Ωm and Ωr
0.308 and 9.1476×10−5
Auclair eq. 2.7
Change in particle species
none, factor held at 1
teaching choice
Loop power Γ
50
Auclair Section 4.1
Ar and Am
0.54 and 0.039
Auclair eqs. 3.16 and 3.17
ξr and ξm
0.271 and 0.625
Auclair eq. 3.11
Earliest redshift
1026
teaching choice
Highest harmonic
105
as in NANOGrav Section 5.4
The model blends the radiation and matter loop amplitudes and birth sizes linearly in ρr/(ρr+ρm). That blend is a teaching choice. The paper solves the one-scale equations through the transition instead, so any result that depends on the transition is a property of this model only. NANOGrav Collaboration, 2023, Section 5.4 describes the same Model I family with αL≃0.37 and F=0.1.
Two independent routes to the same spectrum
The first route is the redshift integral of eqs. 4.4 and 4.5. It evaluates C1 by Simpson's rule in u=ln(1+z) with 800 intervals, from today back to the birth boundary of the loops that can emit at the requested frequency. It uses the loop density n(ℓ,t) and its Jacobian.
The second route never builds a loop density. It follows cohorts of loops from birth, lets each loop shrink at ΓGμ, deposits the energy it radiates in its fundamental mode into logarithmic frequency bins after redshifting, and divides by today's critical density. An error in the Jacobian or in the (1+z) powers of the first route would not appear in the second.
from loop_population import LoopPopulation
from background_by_redshift_integral import fundamental_only_density
import string_cosmology as cosmology
table = cosmology.CosmicTimeTable()
loops = LoopPopulation(table, 1e-10, 0.1)
print(fundamental_only_density(loops, 1e4))
This prints about 4.537×10−10, the fundamental-mode plateau for Gμ=10−10 and α=0.1.
What the recomputation gives
The pure-radiation integral of the simulation-based loop density, eqs. 3.18 and 3.19, gives a plateau coefficient of 8.0425. The paper prints 8.04 in eq. 5.2. An analytic evaluation of the same integral gives 8.0425 as well.
Eq. 6.1 matches the numerical fundamental-mode plateau at 104Hz within 0.06% for 24 of 25 cases spanning Gμ=10−8 to 10−17 and loop sizes from 0.1 down to 10−3ΓGμ. The one exception, Gμ=10−17 with α=5×10−19, is 4.6% low. There the loops heard at 104Hz can only have been emitting at 1+z below about 6×104, close to matter–radiation equality at z≈3366, so that frequency is not yet deep in the radiation plateau.
The cohort histogram and the redshift integral agree within 0.9% at 27 frequencies from 1.1×10−12 to 4×103Hz, for Gμ=10−10 and 10−17. Summing all the energy radiated by every cohort, without any spectrum, agrees with the frequency integral of the spectrum to 0.3% for both tensions.
As the tension falls toward zero the plateau divided by Gμ stays at 4.537×10−5 from Gμ=10−12 to 10−16. At 10−18 and 10−20 the ratio rises to 4.549×10−5 and 5.16×10−5, because the spectrum reaches its plateau at higher frequency when the tension is lower and 104Hz is no longer on it. At one cycle per year the background falls as (Gμ)2 at small tension, reaching 8.0×10−27 at Gμ=10−20. The background goes to zero with the tension, as it must.
Two printed values the model does not reproduce
Eq. 6.1 and eq. 6.2 print the prefactor (128π/9)ArΩrh2 as about 1.02×10−2. With the paper's own inputs it is 1.0146×10−3, a factor of 10.05 smaller. Eq. 6.5 shows the same factor of ten. The symbolic form agrees with eq. 5.2 and with both numerical routes, so the scripts use it. They do not edit the paper; the discrepancy is recorded as unresolved in outputs.json under printedPlateauCoefficient.
Section 6.1, in the text after figure 8, quotes a plateau of h2Ω≈6.04×10−14 for Gμ=10−17. Eq. 5.2 with constant particle species gives 1.51×10−13, so the quoted value is 0.40 of it. The paper's figure 4 shows that the Standard Model's changing species count alters the high-frequency part of the spectrum, which may account for some of the difference. The statement is recorded as unresolved, and left uncorrected, until that effect is computed.
Four ways to get it wrong
The saved failure-cases.json records four mistakes and their size.
Dropping the Jacobian, using 1/α for dti/dℓ when α=ΓGμ, doubles the plateau: the ratio is 2.000.
Using the plateau formula at one cycle per year for Gμ=10−10 underestimates the fundamental-mode background by a factor of 2.43.
Assuming ∑Pn=Γ while summing only 105 cusp harmonics misses 1.79% of the power.
Starting the network at z=1010 instead of 1026 removes the high-frequency plateau: at 1Hz the result falls from 4.54×10−10 to 2.6×10−14.
What this does and does not establish
The recomputation shows that one model agrees with itself: its loop density, its spectrum and its energy budget agree with each other and with two published closed forms. It does not test whether cosmic strings exist, whether Model I describes them, or whether constant particle species is a good approximation. It fits no data. Comparing it with pulsar-timing results needs the full likelihood analysis described in the guide to reading pulsar-timing and LISA results.