home

RG Flow in Theory Space

Visualization of renormalization group (RG) flow trajectories in the theory space of all possible coupling constants (λ₁, λ₂, λ₃, λ₄) allowed by symmetries. The diagram shows how different microscopic actions (S₁, S₂, S₃) obey the same symmetries and thus flow to the same quantum effective action (Γ) through different paths, each corresponding to a different choice of infrared regulator R_k(q). This illustrates the universality of the effective action despite different starting points and regulators.


RG Flow in Theory Space

Download

PNG PDF SVG

Code

rg-flow-in-theory-space.typ (70 lines)

#import "@preview/cetz:0.5.2": canvas, draw
#import draw: circle, content, hobby, line

#set page(width: auto, height: auto, margin: 8pt, fill: none)
#set text(size: 12pt)

#let unit = 5

#canvas({
  let arrow-style = (mark: (end: "stealth", fill: black, scale: 0.5))

  let qea = (-0.225 * unit, -5 / 12 * unit) // quantum effective action
  let ma1 = (0.4 * unit, 0.5 * unit) // microscopic action 1
  let ma2 = (0.6 * unit, 0.33 * unit) // microscopic action 2
  let ma3 = (unit, 0.5 * unit) // microscopic action 3
  let r1 = (0.17 * unit, 0.25 * unit) // regulator 1
  let r2 = (0.4 * unit, 0.1 * unit) // regulator 2
  let r3 = (0.5 * unit, -0.2 * unit) // regulator 3

  for (idx, end, anchor) in (
    (1, (0, 0.67 * unit), "south"),
    (2, (-0.5 * unit, -0.5 * unit), "north-east"),
    (3, (0.14 * unit, -0.67 * unit), "north"),
    (4, (0.83 * unit, -0.5 * unit), "north-west"),
  ) {
    let name = "lambda_" + str(idx)
    line((0, 0), end, ..arrow-style, name: name)
    content(name + ".end", $lambda_#idx$, anchor: anchor)
  }

  line((0, 0), (unit, 0), ..arrow-style)

  hobby(
    (0.75 * unit, -0.3 * unit),
    (0.82 * unit, -0.2 * unit),
    (0.83 * unit, -0.1 * unit),
    stroke: (
      dash: "loosely-dotted",
      thickness: 1.5pt,
    ),
  )

  for (idx, points, regulator) in (
    (1, (ma1, r1, (0, -.8), qea), r1),
    (2, (ma2, r2, (0, -1.7), qea), r2),
    (3, (ma3, r3, qea), r3),
  ) {
    hobby(..points, stroke: (dash: "dashed"))
    content(regulator, $R_#idx$, anchor: "north-west")
  }

  let dark-red = rgb("8B0000")
  circle(qea, radius: 0.1, fill: dark-red, stroke: none)
  content(
    (rel: (0, -0.2), to: qea),
    text(fill: dark-red)[$Gamma_(k=0) = Gamma$],
    anchor: "north",
  )

  let dark-blue = rgb("00008B")
  for (idx, pos) in ((1, ma1), (2, ma2), (3, ma3)) {
    circle(pos, radius: 0.1, fill: dark-blue, stroke: none)
    content(
      (rel: (0, 0.2), to: pos),
      text(fill: dark-blue)[$Gamma_(k=Lambda_#idx) = S_#idx$],
      anchor: "south",
    )
  }
})