Two bound pairs scattering on a free-end chain¶
Biquadratic/TL family · Supported models · Ferromagnetic overview · One pair plus real roots · Isolated bound pairs
Four TL singlet insertions can form two bound pairs. This selected-state
library solver follows that family in ell=N-8, for odd/even N>=8.
It retains both finite string deviations in fp64, native long double,
enabled fp128 or explicit MPFR precision. --pair-defects means one pair plus real roots;
the two-pair family has separate selections and scans:
bethe-biquadratic-obc 128 --ferromagnetic --two-pairs 121,122 --roots
bethe-biquadratic-obc 128 --ferromagnetic --two-pair-states all --pair-window 4
bethe-biquadratic-obc 128 --ferromagnetic --two-pair-states 3 --pair-window 4 \
--precision fp128 --json pairs.json --csv pairs.csv
--two-pair-states COUNT|all scans all binomial(N-6,2) candidates unless
--pair-window WIDTH restricts both labels to the highest WIDTH values
(2<=WIDTH<=N-6, giving binomial(WIDTH,2) candidates). The default
--max-candidates 10000 bounds all solves, not just retained rows;
counts are checked before allocation. The scan ranks direct gaps and retains
the lowest COUNT converged candidates, with ties ordered by (J1,J2).
This is not a global excitation rank or a claim of module completeness.
Tables are states, reference, and string (two rows per state,
zero-based pair_index), plus optional roots (four rows per state).
Both signed logarithmic deviations are preserved, with null deviation
on underflow. Standard JSON/CSV/TSV exports and streaming/no-retain output
work as for the other bound families. If any candidate fails, exit status
is 2 and metadata records all candidate counts; one failed diagnostic row
follows the retained converged rows, with a null verified gap. Its energy
and tl_energy are only estimates.
#include <bethe/biquadratic_ferromagnetic.hpp>
namespace ferro = bethe::biquadratic::ferromagnetic;
auto state = ferro::two_bound_pairs<long double>(128, {121, 122});
if (state.reference.converged) {
auto gap = state.tl_energy; // E-E0, evaluated directly; E0=N-1
auto energy = state.energy;
auto centers = state.reference.centers;
auto logarithmic_deviations = state.reference.log_deviations;
}
The arguments are ordered Bethe labels 1<=J1<J2<=N-6, not energy
ranks or physical lattice momenta. The high-label corner \((N -7,N -6)\)
approaches \(E -E_0 =10/3\), the separated-pair threshold 5/3+5/3.
It does not give the minimum of the entire four-defect module; other
string topologies are missing. These are TL insertions, not spin flips,
and no operator spectral weights or physical SU(2) labels are supplied.
The frontend accepts --precision bits-N and digits-N when Uni20 MPFR
scalars are configured. The C++ API follows the
shared cluster precision contract.
Arithmetic precision and solver work limits remain independent.
Coupling two existing pair systems¶
The reference remains quantum-group XXZ with opposite end fields, Delta=3/2. Its roots are
The ordering-dependent sign is essential. Applying the isolated-pair rule to both strings loses a pi phase in the second pair's equation. \(L_{i}\) and \(\sigma_{i}\) are authoritative even if exp(-L_i) underflows or the deviation disappears when added to eta. Distinct ordered centers prevent coincident pair roots; a seed that cannot resolve them at the selected precision is rejected.
The solver reuses each pair's phase, log-modulus, analytic Jacobian and direct energy contribution from the two-string system. Only the pair-pair coupling is new. The shared damped Newton driver solves four real unknowns, with work and storage per iteration independent of N. The ideal-string stage initializes the solve; convergence always uses the finite-deviation equations and the original iteration/tolerance budget.
Here is our regularization of
Bajnok et al., Eq. (5.12). For pair i scattering
with j, set \(t =(d_{i} -d_{j})/2\), \(s =(d_{i} +d_{j})/2\) and beta=a_i±a_j. Define
From each isolated pair's scaled phase residual subtract
\([F (a_{i} -a_{j})+F (a_{i} +a_{j})]/(2N)\). From its log-modulus residual subtract
the analogous sum of K. The complementary phase C is chosen continuously
for negative as well as positive beta; using the unadjusted atan2
complement would introduce a spurious 2pi jump at negative beta.
The original unsquared pair equation includes a 3pi branch contribution
when \(a_{i} \gt a_{j}\). This gives the deviation signs above. The upper center's
excluded a=pi endpoint has label N-5, leaving the largest admissible
candidate label N-6. The energies add through their direct auxiliary
shifts, then use the common ferro mapping gap=-2*energy_shift.
The lower API is
bethe::xxz::quantum_group::two_pairs::solve(N,Delta,{J1,J2},options).
It accepts finite Delta>1, but the string ansatz is not a guarantee of
convergence or branch existence for every parameter. Failed iterates retain
consistent estimates, signs and residuals, not verified energies.
Validation and remaining four-defect states¶
All binomial(N-6,2) two-pair candidates match distinct module ED levels
for N=8,...,10 at Delta=1.25, 1.5, 2 and 3. At the biquadratic value, combining
them with the existing four-real-root and one-pair-plus-two-real-root
families also matches ED as a multiset, so these are distinct subsets:
| N | Four real roots | One pair + two real roots | Two pairs | Module dimension | Still missing |
|---|---|---|---|---|---|
| 8 | 1 | 6 | 1 | 14 | 6 |
| 9 | 5 | 20 | 3 | 42 | 14 |
| 10 | 15 | 45 | 6 | 90 | 24 |
This is finite-size numerical evidence, not a general completeness proof. A three-string plus a real root is now available separately, as is the four-string droplet. Tests additionally check the original complex equations for both deviation parities, every analytic Jacobian column in ideal and finite-deviation modes, failure diagnostics, and the 10/3 threshold through N=100000, where both deviations underflow but their logarithms remain finite.