Skip to content

SU(n) fermions: components are not Bethe levels

View this page on GitHub

All tutorials · Model guide · Gaudin–Yang tutorial

Adding internal components lets fermions share spatial orbitals without violating antisymmetry within any one component. Contact repulsion then couples the components. This tutorial follows a three-component gas and shows how physical populations become a hierarchy of auxiliary Bethe roots.

This is a continuum gas, not the SU(3)/ULS permutation spin chain. We use \(\kappa\) for the component count, N for particle number, and \(\ell\) for the physical circumference.

1. Start with nine particles, not nine lattice sites

All masses and all intercomponent repulsions are equal:

\[ H=-\sum_j\partial_{x_j}^2+2c\sum_{i\lt j}\delta(x_i-x_j),\qquad \frac{\hbar^2}{2m}=1,\qquad E=\sum_jk_j^2. \]

Same-component contact interactions vanish by antisymmetry. There are no component-dependent fields, traps or chemical potentials. Choose populations 3,3,3 and circumference 9, so the total density is one:

bethe-sun-fermions-pbc --populations 3,3,3 --length 9 --c 1 \
  --csv-table states=sun-state.csv --csv-table components=sun-components.csv \
  --csv-table roots=sun-roots.csv

The energy is approximately 7.77546038 and momentum is zero. The general solution is due to Sutherland; the finite nested equations used here are Eqs. (2)–(3) of Lee–Guan–Batchelor. Although that paper also develops thermodynamics, these examples solve finite-ring equations without a thermodynamic or string approximation.

2. Repulsion raises the charge energy

The three-component energy increases toward the impenetrable limit; a second panel shows charge and two auxiliary root seas at c=1. The three-component energy increases toward the impenetrable limit; a second panel shows charge and two auxiliary root seas at c=1.

The left panel uses seven native calculations from c=0.001 to 1000, with dimensionless interaction \(\gamma=c/(N/\ell)\). Its reference energy is

\[ E_\infty=\frac{\pi^2N(N^2-1)}{3\ell^2} =\frac{80\pi^2}{27}\quad(N=\ell=9). \]

At c=0 the three independent three-particle seas have energy \(8\pi^2/27\simeq2.92432723\). The weak-coupling slope counts pairs of different components:

\[ E-E_{\mathrm{free}} =\frac{2c}{\ell}\sum_{a\lt b}N_aN_b+O(c^2)=6c+O(c^2). \]

At c=0.001 the shift is about 0.00599850. By c=1000 the energy is 29.14229213, close to the finite-ring strong-coupling limit. No power-law fit or extrapolation supplies these points.

The 9,0,0 sector is an exact free-fermion reference at every c. Since N=9 is odd, its periodic shell coincides with the charge shell of the displayed strong-coupling limit. This is deliberately different from the even-N shell subtlety in the Gaudin–Yang example.

3. Follow the nesting without losing physical component labels

For sorted occupied populations \(N_1\ge\cdots\ge N_\kappa\), the sea sizes are

\[ M_0=N,\qquad M_a=N_{a+1}+\cdots+N_\kappa. \]

Thus 3,3,3 produces 9 charge roots, 6 first-level spin roots and 3 second-level spin roots. Only level 0 contains the momenta whose squares enter E. Adding all levels' squared rapidities would overcount auxiliary degrees of freedom. The horizontal labels in the right panel belong to their respective seas; a label at one level is not the identity of a particle at another.

Try an imbalanced input with an empty component:

bethe-sun-fermions-pbc --populations 1,0,5,3 --length 9 --c 1 --roots

The physical component table remains in input order:

Input component Population Nesting rank
0 1 2
1 0 absent
2 5 0
3 3 1

Rank zero is the reference component. Empty components have no Bethe sea; they are not assigned a spurious zero rank. The sorted occupied list is 5,3,1, giving sea sizes 9,4,1 and energy 10.10040293. The saved 5,3,1 run has exactly the same roots and energy. Equal populations are sorted stably. The additional 3,1,1,1 example exercises four occupied components, with sea sizes 6,3,2,1.

4. Supported shells and cross-model checks

Every occupied component must have an odd population on the interacting centered branch. Hence 3,3,3 is supported and 2,2,2 is not. This is a restriction of the implemented periodic shell, not of the physical model's integrability. Zero populations are allowed. Exact c=0, single-occupied-component and vacuum paths allow arbitrary nonnegative counts.

Free components occupy integer momentum modes; even populations use a positive-current representative when the shell is degenerate. For example, 2,0,2 at c=0 and circumference 1 has P=\(4\pi\). Continuum momentum is not folded into a lattice Brillouin zone.

The saved data include several checks useful before an MPS comparison:

  • Populations 3,3 reproduce the separate Gaudin–Yang solver at the same circumference and coupling.
  • Populations 1,1,1 form an antisymmetric internal singlet with a symmetric spatial ground state. Its charge roots and energy agree with three Lieb–Liniger bosons; the auxiliary roots still describe a different internal state, and generic observables need not agree.
  • Doubling circumference and halving c at fixed populations preserves \(\gamma\): all physical roots halve and E becomes one quarter.

Match the factor 2c, physical density and component populations when benchmarking a continuum discretization. The code does not supply arbitrary excited states, unequal masses, unequal pair couplings or attractive branches. If continuation stops early, an energy may belong to the last reached c: the requested coupling, reached coupling, both residuals and success status must agree before treating it as a target result.

5. Reproduce and validate

c, populations 3,3,3 State Components Roots
0.001 CSV CSV CSV
0.01 CSV CSV CSV
0.1 CSV CSV CSV
1 CSV CSV CSV
10 CSV CSV CSV
100 CSV CSV CSV
1000 CSV CSV CSV
Other calculation State Components Roots or free modes
c=0, 3,3,3 CSV CSV modes
9,0,0 CSV CSV modes
5,3,1 CSV CSV roots
1,0,5,3 CSV CSV roots
Rescaled 3,3,3 CSV CSV roots
3,3 CSV CSV roots
1,1,1 CSV CSV roots
3,1,1,1 CSV CSV roots
Free even shell CSV CSV modes
Vacuum CSV CSV empty modes

Reduction references: Gaudin–Yang state, charge roots, spin roots; Lieb–Liniger state and roots.

With the plotting dependencies, from the source checkout:

python3 scripts/plot_multicomponent_tutorial.py --check
python3 scripts/plot_multicomponent_tutorial.py
# Optional: regenerate both multicomponent tutorials and their reference runs.
python3 scripts/plot_multicomponent_tutorial.py --solver-dir /path/to/bethe/bin
python3 -m unittest discover -s scripts -p 'test_tutorial_multicomponent.py'

The script checks every nested equation, component mapping, sea size, energy reconstruction and continuation status. It retains the native export provenance. The tests add reductions, scaling, limiting slopes and corrupted-table checks. The default fp64 examples can be repeated manually with native long-double or optional MPLAPACK fp128; changing precision does not remove unsupported-shell restrictions.