Chapter 4 · Section 9
Dynamical Friction
The BPT law
BPT does not state this; it is established physics the game adds so that wells sink to the hearts of the clumps they move through (matter.js:359–363). It serves a picture the book does draw. BPT Part 3.14 (Wells per Galaxy) says most of a universe's wells "are the small ones its dying stars leave (Part 2.9), scattered through its galaxies, with one great well at each heart", and its Proto Wells become the sites "where a well will be born" at the heart of each halo. A heavy well moving through a cloud of lighter matter loses its speed to the wake it raises; without that loss a well knocked off center would orbit through its galaxy for ever instead of settling at its heart.
The established physics
Chandrasekhar (1943): a mass moving through a field of lighter bodies is slowed by the wake it raises, a = −4πG²Mρ lnΛ [erf(X) − (2X/√π)e^(−X²)] v/v³, X = v/(√2σ). The error function by Abramowitz & Stegun (1964) formula 7.1.26 (cited at matter.js:370).
The game's math
friction(w, sigma) matter.js:364, added to each well's acceleration at both half-kicks (wellAcc, matter.js:398):
ρ = rho[block of w] / B² matter per cell, matter alone (no Data Matter)
v = |v_w − v̄_local| v̄ from the deposited momentum (sample())
X = v / (√2·σ)
lnΛ = max(1, ln(max(1, 2B·v² / (G·M)))) b_max = two blocks
k = 4π·G²·M·ρ·lnΛ
f = k·(4/(3√π)) / (√2σ)³ if X < 10⁻³ (slow: linear drag)
f = k·[erf(X) − (2X/√π)e^(−X²)] / v³ otherwise
Δv = −min(1, f) · v_rel
σ is the matter's spread of speeds about its local mean, σ = √(Σ|v − v̄|² / (2n)) over all bodies (matter.js:395–396), also kept as matter.sigma.
In the game
Friction has no readout of its own. The player sees its result: wells settle into the densest places of the matter and stay there, so that by the late life a deep universe "reads as galaxies round their central wells, not a field of dots" (comment at scene3d.js:1469–1470), each galaxy drawn round its well (Chapter 6). The matter's spread of speeds σ, computed for the friction, is also kept as matter.sigma, "the gas's temperature, for star formation" (matter.js:397), which Chapter 5 reads.
The scale model
Exact in form on the drawn field. The drag never exceeds stopping the well against the matter in one call (min(1, f)), a numerical bound.
Where the game and the theory differ
- Friction is not diluted by the expansion. In
Matter.step()the gravitational pull on a well is multiplied by gk = (a₀/a)³, as Matter Dilution asks (Part 4.4), but the friction added to it is not (wellAcc, matter.js:398): its G is the undilutedthis.G. So through the life, while a < 1 and gk > 1, the friction is weaker against the pull than the physics would make it, and after the final well, when a > 1, stronger.
Fixed numbers
| Number | Where | What it is | Kind | ||
|---|---|---|---|---|---|
| 4π | matter.js:372 | Chandrasekhar's prefactor | PHYSICS (Chandrasekhar 1943) | ||
| √2, 2/√π, 4/(3√π) | matter.js:369, 373 | X = v/(√2σ); bracket and its slow limit | PHYSICS (Chandrasekhar 1943) | ||
| 2 | matter.js:369 | b_max = two blocks in lnΛ | METHOD (mesh resolution) | ||
| 1, 1 | matter.js:369 | Floors on lnΛ and on its argument | METHOD | ||
| 10⁻³ | matter.js:373 | X below which the slow limit is used | METHOD | ||
| 1 | matter.js:374 | Drag never more than stopping in one flip | METHOD (stability) | ||
| 0.3275911, 1.061405429, 1.453152027, 1.421413741, 0.284496736, 0.254829592 | matter.js:371 | erf approximation coefficients | METHOD (Abramowitz & Stegun 7.1.26) | ||
| 2 | matter.js:396 | σ² from ⟨ | Δv | ²⟩/2 in two dimensions | PHYSICS (equipartition over two axes) |