« home

QFT Propagators

physicsquantum field theoryMatsubaracausalityGreen's functionFeynmancetztikz

Complex plane visualization of different propagator types in quantum field theory: retarded, advanced, and Feynman propagators. The diagram shows their analytic structure in relation to Matsubara frequencies (dots on imaginary axis). This representation helps understanding causality in quantum field theory and the connection between real-time and imaginary-time (thermal) formalisms.


QFT Propagators

  Download

PNGPDFSVG

  Code

  LaTeX

qft-propagators.tex (33 lines)

\documentclass[tikz]{standalone}

\usepackage{mathtools}

\let\Im\relax
\DeclareMathOperator{\Im}{Im}
\let\Re\relax
\DeclareMathOperator{\Re}{Re}

\usetikzlibrary{decorations.pathmorphing}

\def\rerange{5}
\def\imrange{4}

\begin{document}
\begin{tikzpicture}[thick]

  % Axes
  \draw[->] [decorate, decoration={zigzag, segment length=4, amplitude=1, post=lineto, post length=2}] (-\rerange, 0) -- (\rerange, 0) node[below left] {$\Re(\omega)$};
  \draw[->] (0, -\imrange+1) -- (0, \imrange-1) node[below right] {$\Im(\omega)$};

  \foreach \n in {-\imrange, ..., \imrange}{%
      \node[circle, fill, inner sep=0, minimum size=5] (omega\n) at (0, 2/3*\n) {};}
  \node[left=2, align=left] (mf) at (omega3) {Matsubara\\frequencies};

  % Propagators
  \draw[red, dashed] (-\rerange, -1) -- (\rerange, -1) node[below, very near start] {advanced};
  \draw[blue, dashed] (-\rerange, 1) -- (\rerange, 1) node[above, very near start] {retarded};
  \draw[orange, dashed] (-\rerange, -1) -- (\rerange, 1) node[below right, very near end] {Feynman};

\end{tikzpicture}
\end{document}

  Typst

qft-propagators.typ (101 lines)

#import "@preview/cetz:0.3.4": canvas, draw, decorations
#import draw: line, content, circle

#set page(width: auto, height: auto, margin: 5pt)

#let re-range = 5
#let im-range = 4
#let arrow-style = (end: "stealth", fill: black, scale: 0.5)

#canvas({
  // Axes
  // Real axis with zigzag decoration
  // TODO: add arrow at the end, requireshttps://github.com/cetz-package/cetz/issues/446
  decorations.zigzag(
    line(
      (-re-range, 0),
      (re-range, 0),
    ),
    amplitude: 0.1,
    segment-length: 0.2,
    name: "x-axis",
    mark: arrow-style,
  )
  content(
    "x-axis.end",
    $"Re"(omega)$,
    anchor: "north-east",
    padding: (top: 5pt),
  )

  // Imaginary axis
  line(
    (0, -im-range + 1),
    (0, im-range - 1),
    mark: arrow-style,
    name: "y-axis",
  )
  content(
    "y-axis.end",
    $"Im"(omega)$,
    anchor: "north-west",
    padding: (left: 5pt),
  )

  // Matsubara frequencies
  for n in range(-im-range, im-range + 1) {
    circle(
      (0, 2 / 3 * n),
      radius: 0.05,
      fill: black,
      name: "omega" + str(n),
    )
  }
  content(
    (-1.1, 2),
    align(right)[Matsubara\ frequencies],
  )

  // Propagators
  // Advanced propagator (red)
  line(
    (-re-range, -1),
    (re-range, -1),
    stroke: (paint: red, dash: "dashed"),
    name: "advanced",
  )
  content(
    (rel: (0, -0.4), to: "advanced.start"),
    text(red)[advanced],
    anchor: "south-west",
    padding: (left: 5pt),
  )

  // Retarded propagator (blue)
  line(
    (-re-range, 1),
    (re-range, 1),
    stroke: (paint: blue, dash: "dashed"),
    name: "retarded",
  )
  content(
    "retarded.start",
    text(blue)[retarded],
    anchor: "south-west",
    padding: 2pt,
  )

  // Feynman propagator (orange)
  line(
    (-re-range, -1),
    (re-range, 1),
    stroke: (paint: orange, dash: "dashed"),
    name: "feynman",
  )
  content(
    (rel: (-0.7, -0.55), to: "feynman.end"),
    text(orange)[Feynman],
    padding: 2pt,
  )
})