Photon Polarization: The Vector Nature of Light

electromagnetism
gauge-theory
nematic
Proving that the nematic director allows for exactly two transverse polarization states.
Author

Raúl Chiclano

Published

December 28, 2025

1. Objective

A long-standing challenge for scalar gravity theories is explaining the two polarization states of the photon. In the DBH v4.0 Beta, we demonstrate that light is not a scalar pressure wave, but a torsional oscillation of the nematic director \(\mathbf{n}\). This simulation proves that such a sustrate naturally supports exactly two transverse degrees of freedom.

2. Methodology

We model the vacuum as a unit-vector field \(\mathbf{n}\). We introduce small perturbations \((n_x, n_y)\) perpendicular to the direction of propagation (\(Z\)) and verify: 1. The number of independent oscillation modes. 2. The strict transversality (\(\mathbf{e} \cdot \mathbf{k} = 0\)).

Code
import sympy
from sympy import symbols, Matrix, diff, simplify, cos, sin, pprint

# 1. Definimos las coordenadas y el tiempo
t, z = symbols('t z')
k, omega = symbols('k omega')

# 2. Definimos el Director Nemático n
# En equilibrio, el vacío está alineado con el eje Z: n0 = (0, 0, 1)
# Introducimos pequeñas perturbaciones nx, ny (oscilaciones de la luz)
nx = symbols('n_x')
ny = symbols('n_y')

# El director debe ser un vector unitario. Para pequeñas oscilaciones:
# n = (nx, ny, sqrt(1 - nx**2 - ny**2))
n = Matrix([nx, ny, sympy.sqrt(1 - nx**2 - ny**2)])

print("--- SIMULACIÓN 22: POLARIZACIÓN DE LA LUZ ---")
print("\n1. Director Nemático perturbado (n):")
pprint(n)

# 3. Verificación de Transversalidad
# Si la onda viaja en Z, la dirección de propagación es k_vec = (0, 0, 1)
k_vec = Matrix([0, 0, 1])

# Los modos de oscilación son las derivadas de n respecto a las perturbaciones
modo_x = n.diff(nx).subs({nx: 0, ny: 0})
modo_y = n.diff(ny).subs({nx: 0, ny: 0})

print("\n2. Modos de oscilación detectados:")
print("Modo 1 (Polarización X):")
pprint(modo_x)
print("Modo 2 (Polarización Y):")
pprint(modo_y)

# 4. PRUEBA DE FUEGO: ¿Son perpendiculares a la propagación?
dot_x = modo_x.dot(k_vec)
dot_y = modo_y.dot(k_vec)

print("\n3. Verificación de Transversalidad (Producto escalar con k):")
print(f"Modo X . k = {dot_x}")
print(f"Modo Y . k = {dot_y}")

if dot_x == 0 and dot_y == 0:
    print("\nÉXITO: Se han derivado 2 estados de polarización transversal pura.")
else:
    print("\nFALLO: Los modos tienen componentes longitudinales.")
--- SIMULACIÓN 22: POLARIZACIÓN DE LA LUZ ---

1. Director Nemático perturbado (n):
⎡         nₓ          ⎤
⎢                     ⎥
⎢         n_y         ⎥
⎢                     ⎥
⎢   __________________⎥
⎢  ╱     2      2     ⎥
⎣╲╱  - nₓ  - n_y  + 1 ⎦

2. Modos de oscilación detectados:
Modo 1 (Polarización X):
⎡1⎤
⎢ ⎥
⎢0⎥
⎢ ⎥
⎣0⎦
Modo 2 (Polarización Y):
⎡0⎤
⎢ ⎥
⎢1⎥
⎢ ⎥
⎣0⎦

3. Verificación de Transversalidad (Producto escalar con k):
Modo X . k = 0
Modo Y . k = 0

ÉXITO: Se han derivado 2 estados de polarización transversal pura.