PulseCore

Chapter 4 · Section 14

The Heat of the Universe

The BPT law

BPT Part 3.12, The Heat of the Universe: Cooling Makes the Structures: "Gravity gathers the gas; cooling decides what it becomes. Gas falling into a clump is heated by the fall, and it can go on collapsing only if it radiates that heat away faster than it falls." That one comparison, the book says, made at every scale, "is why the first stars were giants, why the smallest galaxies were starved, why ordinary galaxies are fed by cold streams, and why the largest go red and dead". Its laws: the Radiation Temperature, T_γ = T_γ0 · (1 + z), T_γ0 = 2.725 K, below which no gas cools; the Virial Temperature, T_vir = μ · m_p · v_c² / (2 · k_B), μ ≈ 0.59 when ionized, "about 10⁴ K for an orbit of 17 km/s, 10⁶ K for 165 km/s"; the Cooling Time against the free-fall time (Part 4.11). Its Structure by Structure section walks the scales: metal-free gas in clumps above about 10³ K cools only through molecular hydrogen, and above a critical metallicity of about 10^(−3.5) of the Sun's it cools to ordinary stars; clumps above about 10⁴ K cool through atomic hydrogen; reionization starves the smallest by the Baryon Retention, f_b = f_b0 / (1 + (2^(2/3) − 1) · (v_f / v_c)^6)^(3/2); and the halos of the largest are kept hot by their wells. The universe's times are read as shares of its life, the life being ours at level 202, 11.0 Gyr (BPT Chapter 1, Part D).

The established physics

All named in the code (heat.js:1–14, 31–38):

  • Cooling function Λ_N in collisional ionization equilibrium (Sutherland & Dopita 1993), tabled at log T = 4.0–8.5 and [Fe/H] = −∞, −3, −2, −1.5, −1, −0.5, 0, +0.5; solar metal fraction 0.019 (Anders & Grevesse 1989).
  • Cooling time t⊹ = (3/2)(n_e + n_t)k_BT/(n_e n_t n_H Λ_N); free-fall t⇓ = √(3π/(32Gρ)); virial temperature T = μm_pv²/(2k_B), μ = 0.59.
  • Planck 2018 ΛCDM (H₀ = 67.7, Ω_m = 0.31): our scale factor at 11.0 Gyr, 0.814; mean hydrogen today 1.9 × 10⁻⁷ cm⁻³; mean matter density 0.31 × 8.62 × 10⁻³⁰ g cm⁻³; virial overdensity 200.
  • Critical metallicity 10^(−3.5) Z☉ (Bromm et al. 2001); filtering speed 25 km/s (Okamoto, Gao & Theuns 2008), in the form of Gnedin (2000); reionization done by about 0.75 Gyr; hot halos kept hot by their wells (Croton et al. 2006); CMB today 2.725 K.

The game's math

galaxyHeat({ beta, aGame, lifeFrac, Z, feeding }) heat.js:66:

a     = max(10⁻⁶, 0.814 · aGame)                 our scale factor at the same share of the life
T_cmb = 2.725 / a;  T_vir = 0.59·m_p·(β·c)²/(2k_B);  T = max(T_vir, T_cmb)
n_H   = 200 · 1.9×10⁻⁷ / a³;   t⇓ = freeFall(200 · ρ_m0 / a³)
reionized = lifeFrac ≥ 0.75/11.0
if T < 10⁴ K:   can cool if Z ≥ Z_crit, or T ≥ 10³ K and not reionized (H₂)
                f = 1 if it can, else 0
else:           t⊹ = coolTime(T, n_H, Z);  f = min(1, t⇓/t⊹)
                hot halo (t⊹ ≥ t⇓) with its well feeding at ≥ 0.01 Eddington: f = 0
if reionized:   f ← f · [1 + (2^(2/3) − 1)(25 km/s / v_c)⁶]^(−3/2)

logLambda(T, Z) heat.js:41 interpolates the table bilinearly in log T and [Fe/H], with log T clamped to 4–8.5; between [Fe/H] = −4 and −3 it blends from primordial. coolTime() heat.js:50 takes n_e and n_t from the table at the nearest log T step.

Where it is used. galaxyOf() (app.js:2963, the heat at app.js:2987–2993; galaxies are documented in Chapter 6) computes each galaxy's circular speed from its bodies' motions, v_c = a·√(K/M) with K the kinetic sum and M the mass, as a fraction of light, and passes

β = (v_c / c) · 2^(Lm − 6)

the scale-model correction (ruling 2026-10-28, after 59 of 60 phone galaxies read as hot halos): a model of level Lm lives 2^Lm Tempos while light crosses its field in two flips, so its motions run 2^(6 − Lm) times faster against light than in the level-6 model; reading speeds at the level-6 scale gives one universe one heat on every device.

updateGalaxies() app.js:3093 then sets each galaxy body's b.sfHeat = f (star formation reads it, Chapter 5) and, outside every galaxy after reionization (life share ≥ 0.75/11.0, app.js:3099), b.sfHeat = 0. It also gives each galaxy its escape speed, β_esc = √(2(1 + ln 10))·v_c/c (BPT Part 3.12, Halo Escape Speed at a tenth of the halo's reach) and a wind heating time min(t⊹, 1 Gyr) as a share of the life (the fountain time, Oppenheimer et al. 2010, app.js:3101–3110), used by the winds of Chapter 5.

Worked case: a galaxy at v_c = 165 km/s (β = 5.5 × 10⁻⁴) has T_vir = 0.59 × 1.67 × 10⁻²⁴ × (1.65 × 10⁷)² / (2 × 1.38 × 10⁻¹⁶) ≈ 9.7 × 10⁵ K, the 10⁶ K BPT Part 3.12 gives for that speed.

In the game

The heat is what decides which clumps light up. The player sees it in where stars form and where they do not: gas that cools faster than it falls lights into stars along the filaments, the smallest clumps form fewer stars after reionization, the gas between the galaxies forms no new stars once the universe is reionized, and the biggest galaxies, whose wells feed and keep their halos hot, stop forming stars, so their share of young blue stars falls (Chapter 5 for the stars, Chapter 6 for the galaxies).

The heat is named in words when the player taps a well after the universe has returned to the Source: the banner describes the galaxy round it with its heat (galaxyOf() app.js:2994–2995), for example "a cloud of gas gathering round its well, no stars lit yet · hot halo · T_vir … K · metals none yet", or for a lit galaxy "… galaxy · cold streams · T_vir … K · metals … of the Sun's · κ_rot … · … stars, …% young and blue". The heat's mode is one of "cold", "H₂", "too warm to cool", "cold streams", "hot halo" and "hot halo, kept hot by its well" (galaxyHeat() heat.js:74–77). No control changes it.

The scale model

The temperatures, densities and times are our universe's at the same share of the life; only the circular speed comes from the game, corrected to the level-6 scale. The heat is read every 4 Pulses (updateGalaxies() from measureFeeding(), app.js:816), not every step.

Where the game and the theory differ

  • Speeds are read at the desktop's scale. The correction β = (v_c/c)·2^(Lm − 6) reads every model at the scale of the level-6 model, the desktop's model level, not at the universe's true level. It makes a phone and a desktop agree on one universe's heat; the reference is the desktop's model, not a law.
  • Two coolings. The cooling function here decides how much gas can form stars; the matter's own cooling in Matter.cool() uses a fixed share of the free-fall time and is not tied to it (Part 4.11).

Fixed numbers

Number Where What it is Kind
46 × 8 table, logT0 4.0, dlogT 0.1 SD93 heat.js:15–30 Λ_N, n_e, n_t by log T and [Fe/H] PHYSICS (Sutherland & Dopita 1993)
−∞, −3, −2, −1.5, −1, −0.5, 0, 0.5 SD93.feh heat.js:17 Table metallicities PHYSICS (Sutherland & Dopita 1993)
1.380649e-16, 1.67262e-24, 2.99792458e10, 6.674e-8 heat.js:31 k_B, m_p, c, G in cgs PHYSICS (CODATA)
0.59 MU heat.js:31 Mean particle mass, ionized PHYSICS (BPT Part 3.12, Virial Temperature)
2.725 T_CMB0 heat.js:32 CMB today, K PHYSICS (Fixsen 2009)
0.019 Z_SUN heat.js:32 Solar metal fraction of the tables PHYSICS (Anders & Grevesse 1989)
11.0e9, 3.15576e7 LIFE_S heat.js:33 The life as ours, seconds BPT (Chapter 1, Part D: level 202)
0.814 A_FINAL heat.js:34 Our scale factor at 11.0 Gyr PHYSICS (Planck 2018 ΛCDM)
1.9e-7 N_H0 heat.js:35 Mean hydrogen today, cm⁻³ PHYSICS (Planck 2018)
0.31, 8.62e-30 RHO_M0 heat.js:35 Ω_m × critical density, g cm⁻³ PHYSICS (Planck 2018)
200 DELTA_VIR heat.js:35 Virial overdensity PHYSICS (standard convention)
10^(−3.5) Z_CRIT heat.js:36 Critical metallicity over Z☉ PHYSICS (Bromm et al. 2001)
25 V_FILTER heat.js:37 Filtering speed, km/s PHYSICS (Okamoto, Gao & Theuns 2008)
0.75, 11.0 REION_FRACTION heat.js:38; app.js:3099 Reionization at 0.75 Gyr of the 11.0 Gyr life PHYSICS (reionization by z ≈ 7)
2^(2/3) − 1, 6, 3/2 retention() heat.js:60 Baryon Retention form PHYSICS (Gnedin 2000; BPT Part 3.12)
0.1 retention() heat.js:60 Floor on v_c, km/s METHOD
4, 8.5 heat.js:42, 51 Clamp of log T to the table METHOD (table range)
−4 (F[1] − 1) heat.js:45 Blend from primordial to [Fe/H] = −3 over one dex METHOD
10⁻³, 10⁻³⁰ heat.js:52, 53 Floors on n_e and n_H METHOD
1.5 heat.js:53 (3/2) in the cooling time PHYSICS (ideal gas)
3π/32 freeFall() heat.js:56 Free-fall time PHYSICS
2 virialT() heat.js:58 T = μm_pv²/(2k_B) PHYSICS
10⁻⁶ heat.js:67 Floor on a METHOD
10⁴, 10³ heat.js:71, 73 Atomic cooling line; H₂ cooling floor, K PHYSICS (BPT Part 3.12, Structure by Structure)
0.01 heat.js:77 Feeding that keeps a hot halo hot PHYSICS (Croton et al. 2006; BPT Part 3.14 Seyfert line)
6 app.js:2993 Level of the heat's reference scale, 2^(Lm − 6) CAP (the desktop model level, see Part 4.15)
1, ln 10 app.js:3104 Escape speed √(2(1 + ln 10))·v_c PHYSICS (BPT Part 3.12, Halo Escape Speed)
1e9 app.js:3110 Longest wind heating, years PHYSICS (Oppenheimer et al. 2010)
299792.458 app.js:3110 Light speed, km/s PHYSICS