Supersymmetric t–J chains¶
Overview | Supported models | Precision and CLI controls
The worked filling tutorial compares supported populations, explains the nested roots and checks the fermionic no-hole momentum convention.
bethe-tj-pbc solves selected fixed-population ground states of the
periodic t–J chain at t=1, J=2. Each site is empty, spin up, or spin down:
double occupancy is excluded. This is not a solver at arbitrary J/t.
P projects out double occupancy. Fermions have periodic boundary conditions, including the boundary hopping sign in a Fock basis. We require L>=3, so there is no two-site bond-counting ambiguity. There is no magnetic field or chemical-potential term. Energies include the displayed density interaction.
First calculations and supported populations¶
# No holes: the Heisenberg limit, with its exchange factor and energy shift.
bethe-tj-pbc 6
# Two holes, three electrons of each spin.
bethe-tj-pbc 8 --particles 6 --roots
# An imbalanced doped sector: N_up=3, N_down=1.
bethe-tj-pbc 5 --particles 4 --sz 1 --precision long-double
# Exact polarized free fermions.
bethe-tj-pbc 7 --particles 4 --sz 2 --roots
--particles N defaults to L. --sz defaults to 0 for even N or 1/2 for
odd N, and fixes \(N_{\mathrm{up}} =N /2+S^z\), \(N_{\mathrm{down}} =N /2-S^z\). Every returned energy is
a minimum within those populations when the solve converges, not a
minimization over filling. Failed solves return estimates, not ground-state energies.
Three branches are supported:
- Doped, mixed spin: both N_up and N_down must be odd. Either parity of L is allowed. Spin reversal is supported and reuses the same equations.
- No holes: every physical spin population, using the periodic XXX sector solver. This includes odd L and populations excluded by the doped branch's parity restriction.
- Vacuum or full polarization: any particle count from 0 to L, using exact periodic free-fermion occupations.
Thus 8 --particles 4 is currently rejected: its default N_up=N_down=2
lies outside the doped real-root family. Do not silently shift its quantum
numbers or spin to a supported state. Excitations, other doped shell
parities, strings, open boundaries, and J!=2t are not implemented.
Why the Sutherland formulation?¶
Essler–Korepin present three nested gradings. The Sutherland/BFF form, their Eq. (3.73), gives two real-root families for the branch used here. With spin reversal folded so N_up>=N_down, their counts are \(M_1 =N_{h} +N_{\mathrm{down}}\), \(M_2 =N_{h}\), not N_e and N_down. At no holes the second family disappears and the first equations reduce to XXX. The Lai/FFB and alternative FBF gradings are not additional implemented solvers.
Define \(e_{a} (x)=(x +i \,a /2)/(x -i \,a /2)\). The original equations are
There is no mu–mu self-scattering. It would be incorrect to copy the SU(3) equations unchanged. In logarithmic form, with \(\theta_{a} (x)=2\,\arctan (2\,x /a)\),
We use consecutive centered labels at each level:
\(I_{j} =j -(M_1 -1)/2\), \(J_{\alpha} =\alpha -(M_2 -1)/2\), with zero-based indices.
Taking the signs of the original rational equations into account requires
2I = L-M1+1-M2 (mod 2) and 2J = M1 (mod 2). For these centered seas,
these conditions require both spin populations to be odd. This is a branch
restriction, not a prohibition on other physical populations. Both the
logarithmic and original multiplicative equations are tested independently.
Energy and momentum conventions¶
The paper's supersymmetric Hamiltonian includes a chemical-potential shift: \(H_{\mathrm{susy}} =H +2\,N_{e} -L\), Eq. (1.5). Removing it from Eq. (3.75) gives our energy
The primary rapidities are conventional lambda, not the XXX executable's z=2*lambda. For no holes,
Numerically we sum the root contributions directly, rather than subtracting these two extensive terms. This preserves an O(1) nearly polarized energy even when L is large enough for that subtraction to lose it in fp64.
This energy reduction does not permit copying spin-chain momentum blindly. Translation of the fully occupied fermionic reference has sign \((-1)^{L -1}\). Add pi to the XXX spin momentum on even L, and zero on odd L. The centered doped family has total fermionic momentum zero. These conventions are checked against translation in the projected Fock-space ground eigenspace.
Fully polarized states fill integer modes closest to zero, \(k =2\,\pi \,j /L\). For even particle count we choose the sea with positive total momentum; its reflected partner is degenerate (and coincides modulo L at full filling). The root report prints those free modes instead of manufacturing nested roots.
Library and numerical contract¶
#include <bethe/tj.hpp>
auto state = bethe::tj::ground_state<long double>(8, 3, 3);
// Arguments: sites, N_up, N_down, optional SolverOptions<Real>.
if (!state.converged) { /* report an incomplete solve */ }
The frontend supports fp64, long double, optional fp128, and explicit MPFR precision with Uni20 MPFR scalars:
bethe-tj-pbc 5 --particles 4 --sz 1 --precision bits-256 --roots
# The equivalent precision can also be specified in decimal digits.
bethe-tj-pbc 8 --particles 6 --precision digits-80
Library calls use SolverOptions<uni20::mpreal>(Precision::bits(256)) and
ground_state<uni20::mpreal>(L, N_up, N_down, options). Options and tolerances
own their working precision; concurrent requests can use different precisions
without changing MPFR defaults. Analytic free states, no-hole XXX states and
interacting doped solves work without MPLAPACK; Uni20 supplies CPU LU.
The doped solver works with the positive halves of reflection-paired roots, inserting exact zero roots for odd counts. Newton uses an analytic Jacobian and a line search preserving positive, ordered roots. Uni20's recoverable linear-solve dispatch selects the configured provider at the selected precision, returning an unresolved status for singular/numerically tiny pivots without changing a process-global abort policy. Dense Newton storage is O((M1+M2)^2); factorization is cubic. The tangent seed is only an initial guess, not a thermodynamic approximation to the result. This grading is economical near unit filling: a dilute gas on a long ring can still require many hole roots. A different grading may be preferable for that regime, but is not yet implemented. Higher arithmetic precision does not fix a poor initial guess or guarantee convergence for large dilute sectors.
residual_norm is the largest logarithmic residual divided by L, with each
level also retained in level_residuals. The default is 32 epsilon, not an
energy-error bound. A zero budget evaluates the seed only. Accepted updates
consume max_iterations; no-hole states use the existing XXX fixed-point
updates, while free states need none. Failure returns the final iterate,
energy estimate, residual, count, and a status: iteration limit, stalled,
or ill-conditioned. The CLI exits 2 for incomplete solves, 1 for invalid or
unsupported input, and 0 for convergence. Tolerances are never loosened and
arithmetic precision is never silently changed.
Independent analytic references at 768 bits test accuracy growth at 80, 160 and 256 bits, including an error below 1e-65 for the five-site doped energy. Original complex Bethe equations, all three branches and incomplete states are checked separately. Owning one/two-worker Async grids compare complete mixed-precision results with direct solves and wait on their final result. The single-request CLI stays serial.
Supported populations do not guarantee convergence at every size. For example,
bethe-tj-pbc 512 --particles 2 --max-iterations 50 --format json stalls in
binary64 with residual about 0.159, far above tolerance. The same request in
80-bit extended precision stalls near the same residual; binary128 reaches the
50-update limit there. Increasing arithmetic precision alone has not resolved
this example. Its returned energy is an unconverged estimate and must not be
used as a physical result. The large filling-curve checks in
parallel-grid measurements
record these numerical failures separately from the concurrency checks.
Tests cover native-precision analytic energies (including E=-4 for one electron of each spin and E=-3-sqrt(5) for L=5, N_up=3, N_down=1), the XXX reduction, free limits, original equations, Jacobian differences, budgets, spin reversal, and singular Newton systems. Independent projected-Fock-space energies and momenta cover all supported populations through L=8. Root and equation checks also reach L=96. The ED oracle intentionally uses fp64; separate analytic and equation checks run in all supported scalar types.
Next extensions require an explicit finite-ring branch audit for the missing population parities; open boundaries and excited-state selection need their own equations and labels. Neither shifted centered labels nor copying Hubbard's finite-ring selection is a validated extension.
Supported size/population requests compose through the owning Async grid; the nested sweep example demonstrates balanced odd-population filling curves. Each solve owns its roots and scratch, and failed final iterates retain all diagnostics. The single-request CLI and each Newton sequence stay serial. Explicit MPFR remains a separate audit of controls, constants, reductions and Newton precision; composition adds no missing population parity or excited family.