¿Qué es CosmoLattice?

Una introducción para cosmólogos que nunca lo usaron — escrita para el proyecto final sobre campos de gauge y el espectro de GW del recalentamiento (preheating).

¿No sos de física? La bitácora del proyecto cuenta lo mismo en palabras simples.

Esta página asume que conocés cosmología y teoría de campos, pero que nunca abriste CosmoLattice. No asume que sepas qué es una simulación de lattice, ni por qué haría falta una. Cada ecuación de abajo está copiada — no parafraseada de memoria — de los propios papers del código, citados en línea como (Art I, ec. N), (Art II, ec. N), o (Manual de usuario, ec. N); la lista completa está en bibliografía/.

Por qué un lattice, y por qué campos clásicos

El recalentamiento (preheating) — la etapa violenta justo después de la inflación, cuando el inflatón vuelca su energía en todo aquello a lo que está acoplado — es un proceso genuinamente no lineal y no perturbativo. Los campos se excitan con números de ocupación enormes \(n_k \gg 1\) mediante resonancia paramétrica, momento en el cual se comportan clásicamente (un estado con $n_k \gg 1$ cuantos por modo es, con excelente aproximación, una configuración de campo clásica) y la QFT perturbativa estándar — una expansión en pocos cuantos — deja de ser la herramienta adecuada. Lo que la reemplaza es resolver directamente, numéricamente, las ecuaciones de campo clásicas y no lineales sobre una grilla espacial. Eso es lo que es un "código de lattice": no un cálculo cuántico de lattice-QCD, sino una teoría de campos clásica resuelta sobre una caja discretizada que se expande junto con el universo.

CosmoLattice (Figueroa, Florio, Torrentí & Valkenburg, y — en su encarnación 2.0 — Baeza-Ballesteros, Figueroa, Florio, Loayza, Sattler, Torrentí & Urio) es un código moderno y público hecho exactamente para esto: evolucionar campos escalares y de gauge interactuantes sobre un lattice en un universo FLRW en expansión. Los códigos públicos anteriores en este terreno (LatticeEasy, Defrost, HLattice, PyCOOL, GABE, ...) sólo manejan campos escalares. Lo que CosmoLattice agrega — y lo que lo convierte en la herramienta adecuada para este proyecto — son campos de gauge, U(1) y SU(2), simulados de una manera exactamente invariante de gauge sobre el lattice, no sólo aproximadamente en algún límite continuo. (Manual de usuario, §2.1–2.2)

El planteo físico: tres tipos de escalares, dos tipos de campos de gauge

El contenido de campos de CosmoLattice está fijado de una vez y para siempre: un escalar singlete real \(\varphi\), un escalar complejo \(\phi\) cargado bajo U(1), y un doblete escalar \(\Phi\) cargado bajo \([SU(N)\times U(1)]\) (tantas copias de cada uno como se quiera), junto con el campo de gauge abeliano \(A_\mu\) al que se pueden acoplar y el campo de gauge no abeliano \(B_\mu = B_\mu^a T_a\) al que se puede acoplar el doblete (actualmente \(N=2\), por lo que \(T_a=\sigma_a/2\), las matrices de Pauli). (Art I, ec. 9; Manual de usuario, ec. 1)

\[ \varphi \in \mathbb{R}\,,\qquad \phi \equiv \tfrac{1}{\sqrt2}(\phi_0+i\phi_1)\,,\qquad \Phi \equiv \tfrac{1}{\sqrt2}\begin{pmatrix}\phi_0+i\phi_1\\ \phi_2+i\phi_3\end{pmatrix}. \]

Las interacciones entre ellos quedan fijadas por un único potencial \(V(\varphi,|\phi|,|\Phi|)\) — cualquier función de las amplitudes de los campos que se quiera escribir — y la invariancia de gauge se impone mediante derivadas covariantes y tensores de intensidad de campo:

\[ D_\mu^A \equiv \partial_\mu - i g_A Q_A A_\mu\,,\qquad D_\mu \equiv \mathbb{I}D_\mu^A - i g_B Q_B B_\mu^a T_a\,, \] \[ F_{\mu\nu} \equiv \partial_\mu A_\nu - \partial_\nu A_\mu\,,\qquad G_{\mu\nu} \equiv \partial_\mu B_\nu - \partial_\nu B_\mu - i[B_\mu,B_\nu]\,, \]

(Art I, ecs. 10–13)

con \(g_A,\,g_B\) los acoplamientos de gauge abeliano y no abeliano, y \(Q_A,\,Q_B\) las cargas del campo que se esté derivando covariantemente. La acción completa, invariante de gauge, es

\[ S = -\!\int\! d^4x\Big[\tfrac12\partial_\mu\varphi\,\partial^\mu\varphi + (D_\mu^A\phi)^*(D^{A\mu}\phi) + (D_\mu\Phi)^\dagger(D^\mu\Phi) + \tfrac14 F_{\mu\nu}F^{\mu\nu} + \tfrac12\mathrm{Tr}\{G_{\mu\nu}G^{\mu\nu}\} + V\Big]\,. \]

(Art I, ec. 8)

Esta única acción ya contiene todos los modelos que toca este proyecto: poniendo \(g_A=g_B=0\) se obtiene una teoría escalar libre; quedándose sólo con \(\phi\) y \(A_\mu\) se obtiene electrodinámica escalar (un escalar gauged bajo U(1)); quedándose con \(\Phi\) y ambos campos de gauge se obtiene un sector SU(2)×U(1), con el mismo contenido de campos, estructuralmente, que el sector electrodébil del Modelo Estándar. La pregunta física que hace este proyecto — cuánto del espectro de GW agrega un campo de gauge — es en realidad la pregunta de qué cambia al encender \(g_A\) y \(g_B\) en esta única acción.

Las ecuaciones maestras que resuelve CosmoLattice

Extremar la acción de arriba da las ecuaciones de movimiento que CosmoLattice integra en la práctica (escritas acá en tiempo cósmico \(t\), con factor de escala \(a(t)\), por legibilidad — el código en sí trabaja con una variable temporal general y con campos "de programa" reescalados y adimensionales, de modo que los números típicos queden de orden unidad sin importar cuán pequeñas sean, en escala \(\hbar\), las amplitudes físicas):

\[ \ddot\varphi - a^{-2}\nabla^2\varphi + 3\frac{\dot a}{a}\dot\varphi = -V_{,\varphi} \] \[ \ddot\phi - a^{-2}D_A^2\phi + 3\frac{\dot a}{a}\dot\phi = -\frac12 V_{,|\phi|}\frac{\phi}{|\phi|} \qquad \ddot\Phi - a^{-2}D^2\Phi + 3\frac{\dot a}{a}\dot\Phi = -\frac12 V_{,|\Phi|}\frac{\Phi}{|\Phi|} \] \[ \partial_0 F_{0i} - a^{-2}\partial_j F_{ji} + \frac{\dot a}{a}F_{0i} = J_A^i \qquad (D_0)_{ab}(G_{0i})_b - a^{-2}(D_j)_{ab}(G_{ji})_b + \frac{\dot a}{a}(G_{0i})_b = (J_i)_a \]

más las restricciones de Gauss U(1)/SU(2), que se verifican (no se imponen) a lo largo de toda la corrida: \(\partial_i F_{0i}=a^2 J_A^0\), \((D_i)_{ab}(G_{0i})_b = a^2(J_0)_a\) — (Manual de usuario, ecs. 2–8)

y, cuando se deja que los propios campos generen la expansión en lugar de evolucionar sobre un fondo fijo, las ecuaciones de Friedmann cierran el sistema:

\[ \frac{\ddot a}{a} = -\frac{1}{6m_p^2}\big[\bar\rho+3\bar p\big]\,, \qquad H^2 \equiv \Big(\frac{\dot a}{a}\Big)^2 = \frac{\bar\rho}{3m_p^2}\,, \]

(Manual de usuario, ecs. 9–10)

con \(\bar\rho,\bar p\) la energía y la presión promediadas en volumen de la mezcla de campos escalares y de gauge presente — sumando las contribuciones cinéticas, de gradiente, eléctricas y magnéticas de cada especie. (Art I, ecs. 49–50; Manual de usuario, ecs. 11–12) Vale la pena detenerse en una frase: CosmoLattice no resuelve estas ecuaciones de continuo de manera exacta, ni impone exactamente las restricciones de Gauss del continuo. Resuelve un conjunto de ecuaciones en diferencias finitas construidas para aproximarlas a un orden controlado en el espaciado del lattice, usando un integrador temporal simpléctico (de la familia leapfrog/Verlet) — y es la sección siguiente, no ésta, la que explica cómo se construye esa discretización para que siga siendo exactamente invariante de gauge aun resolviendo sólo aproximadamente la teoría de continuo.

Llevarlo a un lattice: variables de enlace e invariancia de gauge exacta

La manera ingenua de discretizar una teoría de gauge — reemplazar \(A_\mu(x)\) por su valor en los sitios del lattice y discretizar la derivada covariante por diferencias finitas — rompe la invariancia de gauge al nivel de la propia discretización, porque una derivada en el lattice no es exactamente la del continuo. La teoría de gauge en el lattice (la misma idea que se usa en lattice QCD) arregla esto no discretizando el campo de gauge directamente. En cambio, discretiza el transportador paralelo entre sitios vecinos del lattice — el "enlace" (link) — que por construcción transforma exactamente igual que la intensidad de campo del continuo bajo una transformación de gauge, para cualquier espaciado del lattice:

Herramientas de U(1)

\[ V_\mu \equiv e^{-ig_AQ_A\,\delta x_\mu A_\mu} \] \[ V_{\mu\nu} \equiv V_\mu V_{\nu,+\mu} V^*_{\mu,+\nu} V^*_\nu \ \simeq\ e^{-ig_AQ_A\delta x_\mu\delta x_\nu[F_{\mu\nu}+O(\delta x)]} \] \[ (D_\mu^{\pm}\phi)(l) = \pm\frac{1}{\delta x_\mu}\big(V_{\pm\mu}\phi_{\pm\mu}-\phi\big) \]

Herramientas de SU(N)

\[ U_\mu \equiv e^{-ig_BQ_B\,\delta x_\mu B_\mu^a T_a} \] \[ U_{\mu\nu} \equiv U_\mu U_{\nu,+\mu} U^\dagger_{\mu,+\nu} U^\dagger_\nu \ \simeq\ e^{-ig_BQ_B\delta x_\mu\delta x_\nu[G_{\mu\nu}^aT_a+O(\delta x)]} \] \[ (D_\mu^{\pm}\Phi)(l) = \pm\frac{1}{\delta x_\mu}\big(U_{\pm\mu}\Phi_{\pm\mu}-\Phi\big) \]

(Art I, ecs. 84–85 — los recuadros "U(1) toolkit" y "SU(N) toolkit", reproducidos acá casi textualmente)

El enlace \(V_\mu\) (o \(U_\mu\)) vive en el borde entre dos sitios del lattice, no en un sitio en sí, y es exactamente unitario (\(V_\mu^*V_\mu=1\), \(U_\mu^\dagger U_\mu=\mathbb{I}\)) por construcción — no hay manera de que se aparte de una configuración de gauge válida como sí podría hacerlo un \(A_\mu\) discretizado ingenuamente. El lazo cerrado más pequeño de enlaces alrededor de una plaqueta del lattice, \(V_{\mu\nu}\) o \(U_{\mu\nu}\), cumple el rol de la intensidad de campo \(F_{\mu\nu}\)/\(G_{\mu\nu}\): es gauge invariante (transforma trivialmente para U(1), covariantemente para SU(N)) y se reduce a la intensidad de campo del continuo cuando \(\delta x\to0\). Bajo una transformación de gauge \(\phi\to e^{ig_AQ_A\alpha}\phi\), los enlaces transforman exactamente de manera de mantener covariante la derivada covariante en el lattice, \((D_\mu^\pm\phi)\to e^{ig_AQ_A\alpha}(D_\mu^\pm\phi)\) — una afirmación exacta, no una que sólo vale a menos de correcciones en el espaciado del lattice. (Art I, ec. 84, fila "Gauge Trans.")

De esto se siguen directamente dos consecuencias prácticas, y ambas son la razón por la que la invariancia de gauge es algo que este proyecto puede efectivamente verificar y no sólo asumir:

Ondas gravitacionales: cómo el código las genera y las extrae

Esta es la parte de CosmoLattice que convierte "simular los campos" en "predecir un espectro de GW", y es donde realmente vive la pregunta escalar-versus-gauge de este proyecto. Las ondas gravitacionales son la perturbación tensorial transversal y de traza nula \(h_{ij}\) sobre la métrica FLRW,

\[ ds^2 = -a^{2\alpha}(\eta)\,d\eta^2 + a^2(\eta)(\delta_{ij}+h_{ij})\,dx^idx^j\,, \qquad \partial_ih_{ij}=0\,,\ h_{ii}=0\,, \]

(Art II, ec. 284)

generada, a orden lineal, por la parte transversal y de traza nula del estrés anisotrópico total de la materia presente en el lattice:

\[ h_{ij}'' + (3-\alpha)\frac{a'}{a}h_{ij}' - a^{-2(1-\alpha)}\nabla^2h_{ij} = \frac{2}{m_p^2}a^{2\alpha-2}\Pi_{ij}^{TT}\,. \]

(Art II, ec. 285)

Esta es la ecuación que vuelve concreta la pregunta del proyecto: para una teoría con todo el contenido de campos escalares+gauge, la fuente \(\Pi_{ij}^{\rm eff}\) es

\[ \Pi_{ij}^{\rm eff} = \partial_i\varphi_b\partial_j\varphi_b + 2\,\mathrm{Re}\{(D_i\phi_b)^*(D_j\phi_b)\} + 2\,\mathrm{Re}\{(D_i\Phi_b)^\dagger(D_j\Phi_b)\} - a^{-2\alpha}E_iE_j + a^{-2}B_iB_j - a^{-2\alpha}E_i^cE_j^c + a^{-2}B_i^cB_j^c\,, \]

(Art II, ec. 287)

con \(E_i,B_i\) (\(E_i^c,B_i^c\)) los campos eléctrico y magnético abelianos (no abelianos) construidos a partir de \(F_{\mu\nu}\) (\(G_{\mu\nu}\)). Leído literalmente: cada campo de gauge lleva su propio término fuente, separado, para las GW — los términos del tipo \(E_iE_j\) y \(B_iB_j\) — exactamente en pie de igualdad con el familiar término de gradiente escalar \(\partial_i\varphi\,\partial_j\varphi\). Encender \(g_A\) o \(g_B\) no sólo cambia cómo evoluciona el sector escalar y reconfigura indirectamente su señal de GW generada por gradientes; agrega a \(\Pi_{ij}\) un término fuente físicamente distinto, que no tiene ninguna contraparte en el caso puramente escalar. Ese es el sentido preciso en el que la pregunta de este proyecto — cuánto del espectro proviene "del campo de gauge" — está bien planteada y no es sólo cualitativa.

Dos piezas más completan el cuadro. Primero, la proyección transversal y de traza nula necesaria para resolver \(h_{ij}\) es no local (es un proyector en el espacio de Fourier, \(\Pi^{TT}_{ij}=\Lambda_{ij,lm}(\hat k)\Pi_{lm}^{\rm eff}\)), lo cual sería prohibitivamente costoso de aplicar en cada sitio del lattice y cada paso temporal; CosmoLattice evita esto evolucionando cinco campos auxiliares no físicos \(v_{ij}\) (un tensor simétrico de traza nula) generados directamente por \(\Pi_{ij}^{\rm eff}\) en el espacio de posiciones,

\[ v_{ij}'' + (3-\alpha)\frac{a'}{a}v_{ij}' - a^{-2(1-\alpha)}\nabla^2v_{ij} = \frac{2}{m_p^2}a^{2\alpha-2}\Big(\Pi_{ij}^{\rm eff}-\tfrac13\delta_{ij}\Pi_{kk}^{\rm eff}\Big)\,, \]

(Art II, ec. 293)

y sólo proyecta al \(h_{ij}=\Lambda_{ij,lm}(\hat k)v_{lm}\) físico cuando efectivamente hace falta una medición. Segundo, el espectro de potencia de densidad de energía fraccional de GW — el \(\Omega_{\rm GW}(f)\) que reportará este proyecto — se define a partir del espectro de potencia de \(h_{ij}'\), normalizado a la densidad crítica:

\[ \Omega_{\rm GW}(k,\eta) \equiv \frac{1}{\rho_c}\frac{d\rho_{\rm GW}}{d\log k} = \frac{k^3}{24\pi^2 a^{2\alpha}H^2}\,P_{h'}(k,\eta)\,. \]

(Art II, ec. 301)

Los tres modelos que usa este proyecto

CosmoLattice viene con modelos ya escritos como headers de C++ bajo models/; tres de ellos, que comparten el mismo potencial de inflatón tipo \(\lambda\varphi^4\), le dan a este proyecto una comparación controlada escalar-versus-gauge sin tener que escribir un modelo nuevo desde cero. El potencial base de dos campos (inflatón \(\varphi\) más un campo hijo \(\chi\)) es el ejemplo empaquetado lphi4:

\[ V(\varphi,\chi) = \frac{1}{p}\lambda\mu^{4-p}|\varphi|^p + \frac12 g^2\varphi^2\chi^2 \ \xrightarrow{p=4}\ \frac{\lambda}{4}\varphi^4 + \frac12 g^2\varphi^2\chi^2\,, \qquad q\equiv\frac{g^2\varphi_*^2}{\omega_*^2}\,, \]

(Art I, ecs. 457, 468, 470 — \(q\) es exactamente el parámetro q en lphi4.in)

modelocontenido de camposrol en la comparación
lphi4 inflatón singlete real \(\varphi\) + hijo real \(\chi\), potencial de arriba, sin campo de gauge. El control. Recalentamiento por autorresonancia escalar ordinaria — esto es lo que significa "sin campo de gauge" en la práctica.
lphi4U1 un único escalar complejo \(\phi\) cargado bajo U(1), con \(V=\tfrac{\lambda}{4}|\phi|^4\) (lambda en el archivo de entrada) y acoplamiento abeliano gU1s \(=g_A\), carga CSU1Charges \(=Q_A\). Mismo autoacoplamiento cuártico, ahora con el papel del hijo jugado por el propio campo de gauge \(A_\mu\) — los términos eléctrico/magnético abelianos en \(\Pi_{ij}^{\rm eff}\) se encienden exactamente cuando lo hace gU1s.
lphi4SU2U1 doblete SU(2) \(\Phi\) como inflatón (\(V\supset\tfrac{\lambda}{4}|\Phi|^4\)), acoplado con intensidad qG a un hijo singlete real \(\varphi\) y con intensidad qH a un hijo complejo \(\phi\) cargado bajo U(1); acoplamientos de gauge gU1s\(=g_A\), gSU2s\(=g_B\). Un sector de gauge cualitativamente distinto — no abeliano, con dos acoplamientos independientes \(g_A,g_B\) — en lugar de simplemente una intensidad de acoplamiento distinta sobre el mismo U(1). Misma forma de contenido de campos que el sector electrodébil.

Los términos del potencial y los nombres de los acoplamientos de arriba se leen directamente de CosmoLattice/models/lphi4.h, lphi4U1.h, lphi4SU2U1.h y sus parameter-files/*.in por defecto (ver la sección "Reproducing this" de README.md para el build exacto usado).

Cómo se reescalan estos parámetros a variables de programa, y cómo se inicializan los campos gauge respetando la ley de Gauss, está en Bases teóricas de los modelos gauge.

Combinado con la ecuación de generación de GW de arriba, este es todo el proyecto en una sola frase: correr el mismo potencial de la familia \(\lambda\varphi^4\) tres veces, encendiendo los sectores U(1) y SU(2)×U(1) uno a la vez, y leer cómo los términos extra en \(\Pi_{ij}^{\rm eff}\) — ausentes por construcción en lphi4 — reconfiguran \(\Omega_{\rm GW}(f)\).