« home

QFT Propagator Poles

physicsquantum field theoryMatsubaracetztikz

QFT Propagator Poles

  Download

PNGPDFSVG

  Code

  LaTeX

qft-propagator-poles.tex (41 lines)

\documentclass[svgnames,tikz]{standalone}

\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing}

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

  \def\xrange{6} \def\yrange{4}
  % Axes
  \draw (-1,0) -- (2,0);
  \draw[->,decorate,decoration={zigzag,segment length=4,amplitude=1,post=lineto,post length=3}]
  (2,0) -- (\xrange,0) node[above left] {$\Re(p_0)$};
  \draw[decorate,decoration={zigzag,segment length=4,amplitude=1}] (2,-3) -- (\xrange,-3);
  \draw [->] (0,-\yrange-1) -- (0,2) node [below left=0.2] {$\Im(p_0)$};

  \draw[decorate,decoration={brace,amplitude=10pt,mirror},xshift=-2pt] (2,0) -- (2,-3) node [midway,left=8pt] {$q_0$};

  % Matsubara frequencies
  \foreach \n in {-\yrange,...,-1,1}{%
      \fill (0,\n) circle (1pt) node [right] {$i \omega_{_{\n}}$};}
  \fill (0,0) circle (1pt) node [above right] {0};

  % Poles
  \fill
  (3,1) circle (2pt) node[above] {$\alpha_2^1$}
  (5,1) circle (2pt) node[above] {$\alpha_1^1$}
  (3,-1) circle (2pt) node[above] {$\alpha_2^1$}
  (5,-1) circle (2pt) node[above] {$\alpha_1^1$}
  (3,-2) circle (2pt) node[above] {$\alpha_2^2$}
  (5,-2) circle (2pt) node[above] {$\alpha_1^2$}
  (3,-4) circle (2pt) node[above] {$\alpha_2^2$}
  (5,-4) circle (2pt) node[above] {$\alpha_1^2$};

  % Regions
  \node[DarkBlue] at (4,1.5) {(I)};
  \node[DarkBlue] at (4,-1.5) {(II)};
  \node[DarkBlue] at (4,-4.5) {(III)};

\end{tikzpicture}
\end{document}

  Typst

qft-propagator-poles.typ (82 lines)

#import "@preview/cetz:0.3.2": canvas, draw, decorations

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

#canvas({
  import draw: line, content, circle

  let xrange = 6
  let yrange = 4

  // Axes styles
  let arrow-style = (mark: (end: "stealth", fill: black))
  let line-style = (stroke: black + .75pt)
  let zigzag-style = (amplitude: 0.1, segment-length: 0.2)

  // Main axes
  line((-1, 0), (2, 0), ..line-style, name: "x-axis-left")
  decorations.zigzag(
    line((2, 0), (xrange, 0)),
    ..zigzag-style,
    ..line-style,
    name: "x-axis-right",
  )
  content((rel: (-0.3, 0.3), to: "x-axis-right.end"), $"Re"(p_0)$, name: "x-label")

  decorations.zigzag(
    line((2, -3), (xrange, -3), name: "lower-zigzag"),
    ..zigzag-style,
    ..line-style,
  )

  line((0, -yrange - 1), (0, 2), ..arrow-style, ..line-style, name: "y-axis")
  content((rel: (0.8, -0.2), to: "y-axis.end"), $"Im"(p_0)$, name: "y-label")

  // Brace for q_0
  content(
    (2, -1.5),
    [#math.underbrace(box(width: 7.5em))],
    name: "q0-brace",
    angle: -90deg,
  )
  content((rel: (-0.5, 0), to: "q0-brace"), $q_0$, name: "q0-label")

  // Matsubara frequencies
  for n in range(-yrange, 2) {
    if n != 0 {
      circle((0, n), radius: 0.04, fill: black, name: "matsubara-" + str(n))
      content("matsubara-" + str(n), $i omega_#n$, anchor: "west", padding: 0.2)
    }
  }
  circle((0, 0), radius: 0.03, fill: black, name: "origin")
  content((0.2, 0.1), $0$, name: "origin-label")

  // Poles
  let pole(x, y, label) = {
    circle((x, y), radius: 0.06, fill: black, name: "pole-" + str(x) + "-" + str(y))
    content("pole-" + str(x) + "-" + str(y), label, anchor: "south", padding: 0.1)
  }

  // First row of poles
  pole(3, 1, $alpha_2^1$)
  pole(5, 1, $alpha_1^1$)

  // Second row
  pole(3, -1, $alpha_2^1$)
  pole(5, -1, $alpha_1^1$)

  // Third row
  pole(3, -2, $alpha_2^2$)
  pole(5, -2, $alpha_1^2$)

  // Fourth row
  pole(3, -4, $alpha_2^2$)
  pole(5, -4, $alpha_1^2$)

  // Region labels
  let blue = rgb("#00008B") // DarkBlue equivalent
  content((4, 1.5), text(fill: blue)[(I)], name: "region-1")
  content((4, -1.5), text(fill: blue)[(II)], name: "region-2")
  content((4, -4.5), text(fill: blue)[(III)], name: "region-3")
})