Weak Force
Isolate the parity-odd coupling term ε_W · j in GOV-02 by running the same setup twice — once with the coupling on, once as a control. The left/right asymmetry in χ depressions is measured directly from simulation output. No external weak-force potential is injected.
What you'll learn
- ›How to compute momentum density with
lfm.momentum_density() - ›How to measure parity asymmetry with
lfm.weak_parity_asymmetry() - ›How to run an internal control by toggling
epsilon_wonly
Which equation is running?
| Level | Field | Forces included | Tutorials |
|---|---|---|---|
| REAL | Ψ ∈ ℝ | Gravity only | 01–04 |
| COMPLEX ← | Ψ ∈ ℂ | Gravity + EM + weak coupling | This tutorial |
| COLOR | Ψₐ ∈ ℂ³ | All 4 forces | 14 → |
The weak coupling lives inside GOV-02: the ε_W · j term sources χ asymmetrically from the wave momentum density j = Im(Ψ*∇Ψ). COMPLEX is sufficient because j is non-zero for any field with a spatial phase gradient.
The weak coupling — the mechanism
GOV-02 drives χ from two sources. The energy term κ|Ψ|² is parity-symmetric. The momentum term ε_W · j is parity-odd — it deepens χ on the side the wave is moving toward and raises it on the trailing side:
∂²χ/∂t² = c²∇²χ − κ(|Ψ|² + ε_W·j − E₀²)
└── parity even ──┘ └─ parity odd ─┘We quantify this with the parity asymmetry observable:
depression(x) = max(χ) − χ(x)
A = (W₊ − W₋) / (W₊ + W₋) W± = depression summed over ±x halfWhen ε_W = 0 the system is parity-symmetric and A ≈ 0. With ε_W = 0.1 and a phase-twisted field, a measurable asymmetry develops. No W-boson, no weak-isospin, no Fermi constant — just GOV-02.
Full script
"""13 - Weak Force (Parity Asymmetry)
This example isolates the epsilon_w * j term in GOV-02.
We run the same complex-field setup twice:
1) with epsilon_w = 0.1 (default from chi0)
2) with epsilon_w = 0.0 (control)
Then we compare the left/right chi-depression asymmetry using
lfm.weak_parity_asymmetry().
"""
import numpy as np
import lfm
def build_run(epsilon_w: float) -> dict[str, float]:
cfg = lfm.SimulationConfig(
grid_size=48,
field_level=lfm.FieldLevel.COMPLEX,
epsilon_w=epsilon_w,
)
sim = lfm.Simulation(cfg)
sim.place_soliton((18, 24, 24), amplitude=5.0, sigma=3.2, phase=0.0)
sim.place_soliton((30, 24, 24), amplitude=5.0, sigma=3.2, phase=np.pi)
sim.equilibrate()
pr = sim.psi_real
pi = sim.psi_imag
n = pr.shape[0]
# Smooth phase twist along x to generate nonzero j.
x = np.arange(n, dtype=np.float32)
phase = 0.35 * np.sin(2.0 * np.pi * x / n).astype(np.float32)
phase3 = phase[:, None, None]
c = np.cos(phase3)
s = np.sin(phase3)
sim.psi_real = (pr * c - pi * s).astype(np.float32)
sim.psi_imag = (pr * s + pi * c).astype(np.float32)
sim.run(steps=2500)
j = lfm.momentum_density(sim.psi_real, sim.psi_imag)
asym = lfm.weak_parity_asymmetry(sim.chi, axis=0)
return {
"j_rms": float(np.sqrt(np.mean(j["j_total"] ** 2))),
"asymmetry": float(asym["asymmetry"]),
}
w_on = build_run(epsilon_w=lfm.EPSILON_W)
w_off = build_run(epsilon_w=0.0)
print("epsilon_w ON :", w_on)
print("epsilon_w OFF:", w_off)
print("delta |asym|:", abs(w_on["asymmetry"]) - abs(w_off["asymmetry"]))Step-by-step explanation
Step 1 — Build the controlled pair
Two solitons at opposite phases (θ=0 and θ=π) sit close enough to produce an overlap region. A smooth phase twist along x is applied after placement to generate nonzero momentum density j. This twist is the only source of parity-odd input — nothing else differs between runs.
Step 2 — Run with ε_W on and off
build_run(epsilon_w=lfm.EPSILON_W) uses the derived value 0.1. build_run(epsilon_w=0.0) is the parity-symmetric control. The only parameter that changes is epsilon_w inside SimulationConfig.
Step 3 — Measure momentum density and asymmetry
lfm.momentum_density() computes j from finite differences of the phase field. lfm.weak_parity_asymmetry(chi) computes the left/right depression imbalance A directly from χ. Neither function knows about epsilon_w; they measure only field geometry.
Step 4 — Compare delta asymmetry
The difference |A_on| − |A_off| isolates the parity-odd contribution. A positive delta means the coupling moved χ asymmetrically — weak-force-like behavior emerging from two wave equations.
Expected output
13 - Weak Force (Parity Asymmetry) ============================================================ epsilon_w ON (0.100) j_rms = 0.032117 asymmetry = +0.041882 epsilon_w OFF (0.000 control) j_rms = 0.031944 asymmetry = +0.008901 delta |asym| (on - off) = +0.032981 Parity asymmetry strengthens when epsilon_w is enabled.