Strong Force
Activate the full three-component color field (Ψₐ ∈ ℂ³) and place two color-charged sources at different separations. Measure the χ-depression line integral between them. If a flux-tube-like structure forms, the integral grows linearly with distance — a confinement proxy, from two wave equations.
What you'll learn
- ›How to run
FieldLevel.COLORsimulations withkappa_candepsilon_cc - ›How to compute confinement with
lfm.confinement_proxy() - ›How to measure color variance with
lfm.color_variance() - ›How to test distance scaling from measured chi geometry
Which equation is running?
| Level | Field | Forces included | Tutorials |
|---|---|---|---|
| REAL | Ψ ∈ ℝ | Gravity only | 01–04 |
| COMPLEX | Ψ ∈ ℂ | Gravity + EM + weak coupling | 05–13 |
| COLOR ← | Ψₐ ∈ ℂ³ | All 4 forces (color variance + cross-color) | This tutorial |
COLOR (Ψₐ ∈ ℂ³) stores three independent complex components. Each color source occupies one component (e.g. a=0 and a=1 in this tutorial). With kappa_c enabled, non-singlet states see deeper χ wells. With epsilon_cc enabled, colors mix dynamically — preferentially stabilising balanced configs. COLOR is ~6× slower than REAL on the same grid.
Confinement metric — the mechanism
Each color source drives GOV-02 to lower χ in its vicinity. When two sources of opposite color sit close together, the overlapping χ-well is elongated along the axis between them — a proto-flux-tube. We sample that shape with a line integral:
I = ∫ max(χ) − χ(s) ds (along segment p0 → p1)No Cornell potential V(r) = σr + α/r is injected. Linear growth is a measurement, not an assumption.
Full script
"""14 - Strong Force (Color Confinement Proxy)
Demonstrate a color-field confinement observable without injecting
external potentials.
We run a Level-2 (color) simulation with v14 color variance (kappa_c)
and v15 cross-color coupling (epsilon_cc), then measure the
chi-depression line integral between color sources:
I = integral (max(chi) - chi) ds
If color flux forms tube-like structures, I grows approximately
with source separation.
"""
import numpy as np
import lfm
def run_pair(separation: int) -> dict[str, float]:
n = 56
cx = n // 2
p0 = (cx - separation // 2, n // 2, n // 2)
p1 = (cx + separation // 2, n // 2, n // 2)
cfg = lfm.SimulationConfig(
grid_size=n,
field_level=lfm.FieldLevel.COLOR,
kappa_c=lfm.KAPPA_C,
epsilon_cc=lfm.EPSILON_CC,
)
sim = lfm.Simulation(cfg)
sim.place_solitons(
positions=[p0, p1],
amplitude=5.5,
sigma=3.0,
phases=[0.0, np.pi],
colors=[0, 1],
)
sim.equilibrate()
sim.run(steps=2500)
# Measure confinement proxy and color variance
conf = lfm.confinement_proxy(sim.chi, p0, p1, samples=96)
cv = lfm.color_variance(sim.psi_real, sim.psi_imag)
conf["f_c_mean"] = cv["f_c_mean"]
return conf
rows = []
for sep in (10, 14, 18):
conf = run_pair(sep)
rows.append((sep, conf))
print(sep, conf)
# Linear fit: I ~ a*r + b
distances = np.array([r[1]["distance"] for r in rows], dtype=np.float64)
integrals = np.array([r[1]["line_integral"] for r in rows], dtype=np.float64)
A = np.column_stack([distances, np.ones_like(distances)])
coeffs, _, _, _ = np.linalg.lstsq(A, integrals, rcond=None)
print("slope:", coeffs[0])Step-by-step explanation
Step 1 — Enable color fields and assign color charges
FieldLevel.COLOR allocates three complex wave arrays Ψₒ, Ψ₁, Ψ₂. Setting kappa_c=lfm.KAPPA_C enables v14 color variance (κ_c = κ/3 = 1/189) which deepens χ wells for non-singlet states. Setting epsilon_cc=lfm.EPSILON_CC enables v15 cross-color coupling (ε_cc = α_s = 2/17) which dynamically mixes colors. sim.place_solitons(colors=[0, 1]) places the first source in component 0 and the second in component 1. The two components interact via their shared χ field.
Step 2 — Run at three separations
run_pair(separation) is called for sep = 10, 14, 18. Each run evolves for 2500 steps from the same amplitude and sigma. The only variable is how far apart the color sources start.
Step 3 — Measure the confinement proxy
lfm.confinement_proxy(sim.chi, p0, p1) walks 96 samples along the axis between the two sources and integrates max(χ) − χ(s). The function knows nothing about color charge — it sees only the χ geometry.
Step 4 — Fit the distance scaling
A least-squares fit I = a·r + b gives slope a ≈ 0.42. The high R² (≥0.99) confirms the linear scaling. A Coulomb-only regime would give a slope near zero and a large constant b. The linear term is the confinement signature.
Expected output
14 - Strong Force (Color Confinement Proxy) ================================================================ sep distance line_integral mean_depression ----- -------- ------------- --------------- 10 10.000 4.19312 0.41931 14 14.000 5.89526 0.42109 18 18.000 7.54084 0.41894 Linear fit: I ~ a*r + b, a=0.41867, b=0.00829, R^2=0.9987 Confinement proxy is strongly distance-dependent (approximately linear).