XXZ Chain (1D, spin-1/2)

Overview

The spin-1/2 XXZ chain generalises both the Heisenberg chain (isotropic $\Delta = 1$) and the XX / free-fermion point ($\Delta = 0$) through a single anisotropy parameter $\Delta$:

\[H = J \sum_{i} \bigl[\, S^x_i S^x_{i+1} + S^y_i S^y_{i+1} + \Delta\, S^z_i S^z_{i+1} \,\bigr]\]

with $\mathbf{S}_i = \tfrac{1}{2}\boldsymbol{\sigma}_i$ and $J > 0$ the antiferromagnetic exchange coupling.

Parameters: $J$ (exchange coupling, default 1.0), $\Delta$ (anisotropy, default 0.0 = XX point).

Phase diagram:

RegimePhaseDescription
$\Delta < -1$Gapped ferromagnetIsing-like FM order
$\Delta = -1$Saturated ferromagnet$e_0/J = -1/4$
$-1 < \Delta \le 1$Luttinger liquid ($c = 1$)Gapless, critical
$\Delta = 0$XX / free fermion$e_0/J = -1/\pi$
$\Delta = 1$Isotropic AF Heisenberg$e_0/J = 1/4 - \ln 2$
$\Delta > 1$Gapped Néel antiferromagnetIsing-like AFM order

Ground-state energy density (infinite chain)

Statement

QAtlas currently exposes the three canonical exact points:

\[ e_0/J = \begin{cases} -\,\tfrac{1}{4} & (\Delta = -1,\ \text{FM saturated}) \\[2pt] -\,\tfrac{1}{\pi} & (\Delta = 0,\ \text{XX / free fermion}) \\[2pt] \tfrac{1}{4} - \ln 2 & (\Delta = 1,\ \text{AF Heisenberg, Hulthén 1938}) \end{cases} $$ For every other $\Delta$ the call returns `NaN` and emits a warning — the general-$\Delta$ Yang–Yang integral has multiple inequivalent normalisations in the literature and is tracked as a follow-up PR. ### References - L. Hulthén, Ark. Mat. Astron. Fys. **26A**, No. 11 (1938) — evaluation at $\Delta = 1$. - C. N. Yang, C. P. Yang, Phys. Rev. **150**, 321 (1966) — general Bethe-ansatz integral equation. - M. Takahashi, *Thermodynamics of One-Dimensional Solvable Models* (Cambridge University Press, 1999), Ch. 4. ### QAtlas API ```julia e_xx = QAtlas.fetch(XXZ1D(; J=1.0, Δ=0.0), Energy(), Infinite()) # → -0.3183098861837907 (= -1/π) e_af = QAtlas.fetch(XXZ1D(; J=1.0, Δ=1.0), Energy(), Infinite()) # → -0.4431471805599453 (= 1/4 - ln 2) e_fm = QAtlas.fetch(XXZ1D(; J=1.0, Δ=-1.0), Energy(), Infinite()) # → -0.25 ``` The `GroundStateEnergyDensity()` quantity is an alias returning the same value. ### Verification | Test | Method | What is checked | |------|--------|-----------------| | `test_XXZ1D.jl` | Analytical | $e_0(\Delta = 0) = -1/\pi$ to $10^{-10}$ | | `test_XXZ1D.jl` | Analytical | $e_0(\Delta = 1) = 1/4 - \ln 2$ to $10^{-10}$ | | `test_XXZ1D.jl` | Analytical | $e_0(\Delta = -1) = -1/4$ to $10^{-14}$ | | `test_XXZ1D.jl` | Warning behaviour | `NaN` + `general-Δ` warning for any other $\Delta$ | --- ## Central charge (critical regime only) ### Statement For $-1 < \Delta < 1$ the chain flows to a $c = 1$ compactified-boson (Luttinger-liquid) CFT in the IR: $$c(\Delta) = 1, \qquad -1 < \Delta < 1.\]

Outside this window the chain is gapped; QAtlas returns NaN with a warning.

QAtlas API

QAtlas.fetch(XXZ1D(; Δ=0.3), CentralCharge(), Infinite())  # → 1.0
QAtlas.fetch(XXZ1D(; Δ=1.5), CentralCharge(), Infinite())  # → NaN (+ warn)

Luttinger parameter $K$

Statement

Across the full critical regime $-1 < \Delta \le 1$,

\[\boxed{\,K(\Delta) = \frac{\pi}{2\,(\pi - \gamma)}, \qquad \gamma \equiv \arccos \Delta\,}\]

Canonical values:

$\Delta$$\gamma$$K$Interpretation
$-1^{+}$$\pi^{-}$$\to \infty$FM boundary
$0$$\pi/2$$1$XX / free fermion
$1$$0$$1/2$AF Heisenberg

Monotone decreasing in $\Delta$.

Full derivation: XXZ Luttinger parameters from Bethe ansatz .

References

  • T. Giamarchi, Quantum Physics in One Dimension (Oxford, 2004), Ch. 6.
  • F. D. M. Haldane, Phys. Rev. Lett. 45, 1358 (1980); Phys. Rev. Lett. 47, 1840 (1981) — bosonisation of the XXZ chain.

QAtlas API

QAtlas.fetch(XXZ1D(; Δ=0.0), LuttingerParameter(), Infinite())  # → 1.0
QAtlas.fetch(XXZ1D(; Δ=1.0), LuttingerParameter(), Infinite())  # → 0.5

Luttinger / spin-wave velocity $u$

Statement

\[\boxed{\,u(\Delta) = J\cdot \frac{\pi}{2}\,\frac{\sin\gamma}{\gamma}, \qquad \gamma \equiv \arccos \Delta\,}\]

Canonical values:

$\Delta$$u / J$Identification
$0$$1$Free-fermion Fermi velocity $v_F$
$1$$\pi/2$des Cloizeaux–Pearson spin-wave velocity

SpinWaveVelocity is a type-level alias of LuttingerVelocity (const SpinWaveVelocity = LuttingerVelocity). The two names denote the same physical quantity for 1D critical spin chains; the alias exists purely for readability in spin-chain contexts.

Full derivation: XXZ Luttinger parameters from Bethe ansatz .

QAtlas API

QAtlas.fetch(XXZ1D(; J=1.0, Δ=0.0), LuttingerVelocity(), Infinite())
# → 1.0

QAtlas.fetch(XXZ1D(; J=1.0, Δ=1.0), SpinWaveVelocity(), Infinite())
# → 1.5707963267948966  (= π/2)

Legacy Symbol API

Symbol-dispatch calls are still routed through the v0.13 deprecation layer (src/deprecate/legacy_xxz.jl):

QAtlas.fetch(:XXZ, :energy, Infinite(); J=1.0, Δ=0.0)              # → -1/π
QAtlas.fetch(:XXZ, :spin_wave_velocity, Infinite(); J=1.0, Δ=1.0)  # → π/2
QAtlas.fetch(:XXZ, :luttinger_parameter, Infinite(); J=1.0, Δ=0.0) # → 1.0

Recognised quantity aliases for the velocity family include :v_F, :v_LL, :fermi_velocity, :spin_wave_velocity, :sound_velocity, and the capitalised struct names.


Connections

  • Heisenberg limit: $\Delta = 1$ reproduces the Hulthén result cached in the Heisenberg model page. The Heisenberg chain is the isotropic SU(2)-symmetric point of the XXZ family.
  • Free-fermion limit: $\Delta = 0$ reduces to the XX chain, which Jordan–Wigner-maps to a 1D nearest-neighbour tight-binding model. The value $-1/\pi$ can equivalently be read off the free-fermion cosine band — see JW → TFIM BdG for the analogous mapping on the Ising side.
  • Universality: The entire $-1 < \Delta < 1$ window sits in the $c = 1$ compactified-boson universality class (Luttinger liquid). The compactification radius varies continuously with $\Delta$ via $K(\Delta)$, which controls every long-distance exponent of the chain.