TFIM — Transverse-Field Ising Model

Overview

The one-dimensional transverse-field Ising model is the canonical exactly-solvable quantum many-body system with a quantum phase transition. QAtlas solves it via the Jordan-Wigner transformation followed by Bogoliubov-de Gennes (BdG) diagonalisation; PBC additionally requires parity-projected (NS+R) sectors.

Hamiltonian

\[H = -J \sum_{i} \sigma^z_i \sigma^z_{i+1} - h \sum_{i} \sigma^x_i\]

(σ-convention: eigenvalues ±1.) Parameters: Ising coupling $J$ (default 1.0), transverse field $h$.

Phase diagram:

  • \[h/J < 1\]

    : ferromagnetic ordered phase ($\langle \sigma^z\rangle\neq0$)
  • \[h/J = 1\]

    : quantum critical point (Ising CFT, $c=1/2$)
  • \[h/J > 1\]

    : quantum paramagnetic phase ($\langle \sigma^z\rangle = 0$)

Universality: the critical point belongs to the 2D Ising universality class via the quantum-classical mapping (1+1D quantum ↔ 2D classical).


Coverage Matrix

The table below reflects TFIM_registry.jl @register entries. ✅ marks a native fetch method; "conversion" means routed through another granularity by core/registry.jl.

QuantityOBCPBCInfinite
Energy {:total}✅ BdGconversion
Energy {:per_site}conversion✅ BdG (NS+R)✅ closed-form
FreeEnergy✅ NS+R
ThermalEntropy✅ NS+R
SpecificHeat✅ NS+R
MagnetizationX✅ NS+R
MagnetizationZ0 by Z₂✅ Pfeuty $m_z = (1-(h/J)^2)^{1/8}$
SusceptibilityXX✅ variance✅ NS+R✅ Kubo (Calabrese-Mussardo)
SusceptibilityZZ✅ WickN_proxy=80
CorrelationLength$\xi = 1/(2\lvert h-J\rvert)$
MassGap$\Delta = 2\lvert h-J\rvert$
XXCorrelation {:static}✅ Pfaffian✅ proxy
XXCorrelation {:connected}
XXCorrelation {:dynamic}
ZZCorrelation {:static}
ZZCorrelation {:connected}✅ (= static, Z₂)
ZZCorrelation {:dynamic}
ZZCorrelation {:lightcone}
ZZStructureFactor✅ static + dynamic (proxy)
VonNeumannEntropy✅ Peschel✅ CC (T=0 crit/gapped + T>0 crit)
RenyiEntropy(α)✅ Peschel✅ CC
EnergyLocal
LocalMagnetization(:x)
QuenchLocalMagnetization(:x)✅ closed-form k-integral (#145)
LocalMagnetization(:z)
SpontaneousMagnetization✅ alias of MagnetizationZ
CentralCharge✅ 1/2 (critical) / 0

YY observables (YYCorrelation, SusceptibilityYY, MagnetizationY) are intentionally not implemented — the σʸ JW string makes OBC contractions expensive; tracked as Tier 3 in issue #110.


Boundary Conditions

QAtlas supports three boundary conditions for the TFIM, each with different physical content:

BCfetch argumentBdG sizePhysical setting
OBCOBC(N)$2N \times 2N$ (numerical)Open chain, $N$ sites, $N-1$ bonds
PBCPBC(N)parity-projected NS+RRing of $N$ sites, $N$ bonds
InfiniteInfinite()$k$-integralThermodynamic limit, PBC $N \to \infty$

OBC: the BdG matrix is diagonalised numerically. Boundary effects include the Z₂ tunneling splitting in the ordered phase and the $O(1/N)$ boundary correction at criticality. See gap analysis below.

PBC: the JW transformation produces a fermion parity factor that splits the partition function into Neveu-Schwarz (anti-periodic) and Ramond (periodic) sectors with both signs of the parity projector (LSM). QAtlas evaluates all four (NS±, R±). The Ramond k=0 zero mode at criticality is handled explicitly.

Infinite: the quasiparticle dispersion $\Lambda(k) = 2\sqrt{J^2 + h^2 - 2Jh\cos k}$ is integrated over the Brillouin zone using Gauss-Kronrod quadrature (QuadGK.jl).


v0.17 / v0.18 Highlights

Status: Unstable (v0.18.x)

The PBC thermodynamics, Z-axis Infinite surface, XX static / connected via Pfaffian, Calabrese-Cardy entanglement at Infinite, and dynamic structure-factor helpers are new in v0.17–v0.18. Method signatures, granularity conventions, and keyword-argument names (N_proxy, ω, , beta) may change in v0.19. Call sites should use the public QAtlas.fetch(model, quantity, bc; ...) interface and must not depend on internal helpers (the _tfim_* prefixed functions).

1. PBC free-fermion thermodynamics (v0.17)

Jordan-Wigner with a fermion parity factor splits $Z$ into Neveu-Schwarz and Ramond sectors with both parity-projector signs. QAtlas sums all four sectors (NS+, NS−, R+, R−); at the critical point the R-sector $k=0$ zero mode is handled explicitly.

m  = TFIM(; J=1.0, h=0.5)
β  = 1.0
QAtlas.fetch(m, FreeEnergy(),       PBC(8); beta=β)
QAtlas.fetch(m, MagnetizationX(),   PBC(8); beta=β)
QAtlas.fetch(m, SusceptibilityXX(), PBC(8); beta=β)
QAtlas.fetch(m, MassGap(),          PBC(8))

References: Lieb-Schultz-Mattis (1961); Sachdev §4.2. Source: TFIM_pbc_thermal.jl.

2. Z-axis Infinite — Pfeuty closed forms (v0.17)

QuantityFormula
MagnetizationZ (= SpontaneousMagnetization)$m_z = (1 - (h/J)^2)^{1/8}\;\;(h<J)$, else 0
CorrelationLength$\xi = 1/(2\lvert h-J\rvert)$ (Inf at criticality)
SusceptibilityZZOBC large-$N$ proxy via N_proxy kwarg
ZZStructureFactorstatic $S_{zz}(q)$ from Fourier of large-$N$ correlator
QAtlas.fetch(TFIM(; J=1.0, h=0.5), MagnetizationZ(),    Infinite())  # ≈ 0.985
QAtlas.fetch(TFIM(; J=1.0, h=0.7), CorrelationLength(), Infinite())  # 1/0.6 ≈ 1.667

Source: TFIM_zaxis.jl.

3. XX static / connected via Pfaffian Wick (v0.18)

OBC static $\langle\sigma^x_i\sigma^x_j\rangle$ is the $t=0$ limit of the existing dynamic Wick contraction, evaluated as a real Pfaffian over the Majorana covariance block. The connected variant subtracts $\langle\sigma^x_i\rangle\langle\sigma^x_j\rangle$. Infinite uses the OBC large-$N$ proxy (N_proxy kwarg).

m = TFIM(; J=1.0, h=0.7)
QAtlas.fetch(m, XXCorrelation{:static}(),    OBC(8); beta=Inf, i=3, j=5)
QAtlas.fetch(m, XXCorrelation{:connected}(), OBC(8); beta=Inf, i=3, j=5)
QAtlas.fetch(m, XXCorrelation{:static}(),    Infinite(); i=3, j=5, N_proxy=80)

YY OBC remains unimplemented (issue #110, Tier 3). Source: TFIM_xx_static.jl.

4. Calabrese-Cardy Infinite entanglement (v0.18)

The thermodynamic-limit von Neumann and Rényi entropies are evaluated in closed form via the Calabrese-Cardy formula. Coverage:

Region$T = 0$$T > 0$
Critical (h = J)$S = (c/3)\,\log(2\ell)$$S = (c/3)\,\log\!\left[(2\beta/\pi)\sinh(\pi\ell/\beta)\right]$
Gapped (h ≠ J)$S = (c/6)\,\log(2\xi\,\sinh(\ell/\xi))$error (deferred — see issue #110)

with $c = 1/2$ for Ising. The Rényi $\alpha\neq 1$ prefactor is $(c/12)(1 + 1/\alpha)$.

QAtlas.fetch(TFIM(; J=1.0, h=1.0), VonNeumannEntropy(), Infinite(); ℓ=50)
# ≈ (1/6) log(100) — critical T=0

QAtlas.fetch(TFIM(; J=1.0, h=0.5), RenyiEntropy(2.0),   Infinite(); ℓ=20)
# Rényi-2, gapped CC

QAtlas.fetch(TFIM(; J=1.0, h=1.0), VonNeumannEntropy(), Infinite();
             ℓ=20, beta=4.0)
# critical T>0

Source: TFIM_cft_entanglement.jl.

5. Dynamic structure factor at Infinite (v0.18, proxy)

ZZStructureFactor at Infinite() is router-dispatched on the optional ω keyword:

  • ω === nothing → existing static proxy (Fourier of static correlator)
  • ω::Real → dynamic proxy (time-evolution + Fourier of dynamic correlator)

Two helpers are exported for analytic post-processing:

  • tfim_quasiparticle_dispersion(model, k) -> Float64 — closed-form Bogoliubov dispersion $\Lambda(k)$.
  • tfim_two_spinon_dos(model, ω; q_total = 0.0) -> Float64 — two-spinon density of states at fixed total momentum, used to identify the continuum threshold.
m = TFIM(; J=1.0, h=1.0)
QAtlas.fetch(m, ZZStructureFactor(), Infinite(); q=π/2, ω=1.5)
tfim_quasiparticle_dispersion(m, π/2)
tfim_two_spinon_dos(m, 1.5; q_total=0.0)

Closed-form form-factor expansion (Calabrese-Mussardo) is not yet implemented — issue #110. Source: TFIM_infinite_dynamics.jl.


Ground-State Energy

Statement

The ground-state energy of the OBC TFIM with $N$ sites is

\[E_0 = -\sum_{n=1}^{N} \frac{\Lambda_n}{2}\]

where $\{\Lambda_n\}$ are the positive eigenvalues of the $2N \times 2N$ BdG matrix. At finite temperature $\beta = 1/(k_B T)$:

\[\langle H \rangle(\beta) = -\sum_{n=1}^{N} \frac{\Lambda_n}{2} \tanh\!\left(\frac{\beta \Lambda_n}{2}\right)\]

Derivation

The TFIM is solved exactly via the Jordan-Wigner transformation, which maps the spin chain to free fermions after a Kramers-Wannier duality step. The full derivation — including why the duality is needed for the $\sigma^z\sigma^z$ convention and the explicit construction of the BdG matrix — is given in the calculation note JW-TFIM-BdG.

The result is a $2N \times 2N$ real symmetric BdG matrix whose eigenvalues come in $\pm\Lambda_n$ pairs. The positive eigenvalues $\Lambda_n > 0$ are the quasiparticle energies, and the total energy at inverse temperature $\beta$ is:

\[\langle H \rangle = -\sum_n \frac{\Lambda_n}{2} \tanh\!\left(\frac{\beta \Lambda_n}{2}\right)\]

Thermodynamic limit

For PBC in the $N \to \infty$ limit, the quasiparticle dispersion is $\Lambda(k) = 2\sqrt{J^2 + h^2 - 2Jh\cos k}$, and the energy per site becomes a $k$-integral evaluated by Gauss-Kronrod quadrature (QuadGK.jl).

References

  • P. Pfeuty, "The one-dimensional Ising model with a transverse field", Ann. Phys. 57, 79 (1970) — exact solution of the 1D TFIM.
  • E. Lieb, T. Schultz, D. Mattis, "Two Soluble Models of an Antiferromagnetic Chain", Ann. Phys. 16, 407 (1961) — JW transformation for spin chains.
  • S. Sachdev, Quantum Phase Transitions, Cambridge University Press (2011), Ch. 5 — pedagogical treatment.

QAtlas API

m = TFIM(; J=1.0, h=0.5)

# Ground-state energy (β → ∞), OBC, N=16 — total
E₀ = QAtlas.fetch(m, Energy{:total}(), OBC(16))

# Finite-temperature total energy
Eβ = QAtlas.fetch(m, Energy{:total}(), OBC(16); beta=2.0)

# Thermodynamic limit (PBC, N→∞) — per site
ε  = QAtlas.fetch(m, Energy{:per_site}(), Infinite(); beta=2.0)

Verification

Test fileMethodWhat is checked
test_tfim_gap_closure.jlDense ED via build_tfim$E_0^{\text{ED}} = E_0^{\text{BdG}}$ for $N = 4, 6, 8$
test_universality_cross_check.jlBdG at $N = 200$$E_0/N \to -4J/\pi$ at $h = J$

Finite-Temperature Observables

Statement

At inverse temperature $\beta$ and for $N$ sites (OBC), the following quantities are computed from the BdG spectrum $\{\Lambda_n\}$:

QuantityFormulaType
Free energy$F = -\frac{1}{\beta}\sum_n \ln\!\left[2\cosh(\beta\Lambda_n/2)\right]$FreeEnergy
Entropy$S = \beta(\langle H \rangle - F)$ThermalEntropy
Specific heat$C_v = -\beta^2\,\partial \langle H \rangle / \partial \beta$SpecificHeat
Mag. (X)$\langle\sigma^x\rangle$ from the Bogoliubov occupationMagnetizationX
Susc. (XX)Variance of $\sum_i \sigma^x_i$ (OBC); Kubo at InfiniteSusceptibilityXX

PBC ⇒ all of the above with parity-projected NS+R sums (v0.17).

Derivation

All quantities follow from the free-fermion partition function. For independent modes with energies $\Lambda_n$:

\[\mathcal{Z} = \prod_n 2\cosh\!\left(\frac{\beta\Lambda_n}{2}\right)\]

The free energy is $F = -\beta^{-1}\ln\mathcal{Z}$, and all other thermodynamic quantities follow from $\beta$-derivatives.

References

  • S. Sachdev, Quantum Phase Transitions (2011), Ch. 5.3.
  • QAtlas: src/models/quantum/TFIM/TFIM_thermal.jl, TFIM_pbc_thermal.jl — full implementation.

QAtlas API

m = TFIM(; J=1.0, h=0.5)
β = 2.0

F  = QAtlas.fetch(m, FreeEnergy(),       OBC(16); beta=β)
S  = QAtlas.fetch(m, ThermalEntropy(),   OBC(16); beta=β)
Cv = QAtlas.fetch(m, SpecificHeat(),     OBC(16); beta=β)
Mx = QAtlas.fetch(m, MagnetizationX(),   OBC(16); beta=β)
χ  = QAtlas.fetch(m, SusceptibilityXX(), OBC(16); beta=β)

# PBC variants (NS+R) — v0.17
F_pbc = QAtlas.fetch(m, FreeEnergy(),     PBC(16); beta=β)
Mx_pbc = QAtlas.fetch(m, MagnetizationX(), PBC(16); beta=β)

# Infinite — closed-form k-integrals
F_inf  = QAtlas.fetch(m, FreeEnergy(),     Infinite(); beta=β)
Mx_inf = QAtlas.fetch(m, MagnetizationX(), Infinite(); beta=β)

Verification

Test fileMethodWhat is checked
test_TFIM_thermal.jlDense ED ($N \leq 10$)Exact match of $F$, $S$, $C_v$, $M_x$ vs. ED
test_TFIM_pbc_thermal.jlNS+R vs. ED ($N\leq8$)PBC parity-projected sums match exact ring partition

Energy Gap and Quantum Phase Transition

Statement

The many-body energy gap $\Delta = E_1 - E_0$ equals the smallest BdG quasiparticle energy $\Lambda_{\min}$. In the thermodynamic limit:

\[\Delta = 2|J - h|\]

At the critical point $h = J$, the gap closes as $\Delta \sim N^{-z}$ with dynamic exponent $z = 1$.

Physical Context

  • Ordered phase ($h < J$): for OBC with finite $N$, the "gap" seen by exact diagonalisation is actually the Z₂ tunneling splitting between $|\!\uparrow\cdots\uparrow\rangle$ and $|\!\downarrow\cdots\downarrow\rangle$, which is exponentially small in $N$. This is distinct from the physical excitation gap $\Delta \approx 2(J - h)$.
  • Critical point ($h = J$): $\Delta \sim \pi/N$ (finite-size gap for OBC).
  • Disordered phase ($h > J$): $\Delta \approx 2(h - J)$, the paramagnetic gap.

References

  • P. Pfeuty, Ann. Phys. 57, 79 (1970), Eq. (3.6).
  • S. Sachdev, Quantum Phase Transitions (2011), §5.5.

QAtlas API

# Infinite chain — closed form Δ = 2|h − J|
QAtlas.fetch(TFIM(; J=1.0, h=0.3), MassGap(), Infinite())   # 1.4
QAtlas.fetch(TFIM(; J=1.0, h=1.0), MassGap(), Infinite())   # 0.0  (critical)

# OBC finite-N — smallest positive BdG eigenvalue
QAtlas.fetch(TFIM(; J=1.0, h=1.0), MassGap(), OBC(32))      # ≈ π/N

# PBC finite-N — smallest excitation across NS / R sectors (v0.17)
QAtlas.fetch(TFIM(; J=1.0, h=1.0), MassGap(), PBC(16))

Verification

Test fileMethodWhat is checked
test_tfim_gap_closure.jlDense ED ($N = 4$$12$)Gap shrinks with $N$ at $h = J$
test_tfim_gap_closure.jlEDOrdered-phase gap is Z₂ tunneling ($< 10^{-3}$ for $N=6$)
test_universality_cross_check.jlBdG ($N = 200$)$\Delta \approx 2\lvert h-J\rvert$; $\nu z = 1$ from log-log regression

Entanglement Entropy at OBC (Peschel)

Statement

At the critical point $h = J$, the entanglement entropy of a contiguous block of $\ell$ sites in an $N$-site OBC chain obeys the Calabrese-Cardy formula:

\[S(\ell) = \frac{c}{6}\ln\!\left[\frac{2N}{\pi}\sin\!\left(\frac{\pi \ell}{N}\right)\right] + s_1\]

with central charge $c = 1/2$ (Ising CFT). See the Calabrese-Cardy method page for OBC vs. PBC prefactors and extraction procedure.

Physical Context

The TFIM is a free-fermion system after Jordan-Wigner transformation, so the reduced density matrix on a contiguous block of $\ell$ spins is Gaussian and its von Neumann (or Rényi) entropy is computable in $O(\ell^3)$ from the Majorana covariance matrix restricted to that block (Peschel's correlation-matrix method). QAtlas exposes this directly via VonNeumannEntropy and RenyiEntropy at OBC — no Kramers-Wannier detour is needed, because the internal $\sigma^x$-string JW convention puts the Majorana pair $(\gamma_{2i-1}, \gamma_{2i})$ on spin site $i$ directly, and the JW transformation factorises across any contiguous bipartition up to a parity factor on $A$ that commutes with $\rho_A$ (Fagotti-Calabrese 2010).

Full derivation of the per-mode entropy formula $S_A = \sum_k s_2(\nu_k)$ from the Gaussian-preservation theorem, the Majorana-covariance canonical form, and the contiguous-block JW factorisation: Peschel correlation-matrix method.

References

  • P. Calabrese, J. Cardy, J. Stat. Mech. 0406, P06002 (2004), Eq. (19).
  • I. Peschel, J. Phys. A 36, L205 (2003), Eq. (9).
  • G. Vidal, J. I. Latorre, E. Rico, A. Kitaev, Phys. Rev. Lett. 90, 227902 (2003).
  • M. Fagotti, P. Calabrese, Phys. Rev. Lett. 104, 227203 (2010).

QAtlas API

# Ground-state von Neumann, ℓ = N/2 at criticality
QAtlas.fetch(TFIM(; J=1.0, h=1.0), VonNeumannEntropy(), OBC(100); ℓ=50)
# ≈ 0.7256  ((c/6) log((2N/π) sin(πℓ/N)) + s_1, c = 1/2)

# Thermal von Neumann at β = 1
QAtlas.fetch(TFIM(; J=1.0, h=1.0), VonNeumannEntropy(), OBC(100); ℓ=50, beta=1.0)

# Rényi α ≠ 1 (v0.18)
QAtlas.fetch(TFIM(; J=1.0, h=1.0), RenyiEntropy(2.0), OBC(100); ℓ=50)

Verification

Test fileMethodWhat is checked
test_TFIM_entanglement.jlPeschel vs. full ED SVDMachine-precision agreement for every $\ell$ at $N = 10$, three $(J, h)$ points
test_TFIM_entanglement.jlPeschel ($N = 100$)Extracted $c \approx 0.5$ within 5% at criticality
test_TFIM_entanglement.jlPeschelSymmetric $S(\ell) = S(N-\ell)$, area law away from criticality
test_TFIM_renyi.jlPeschel α-traceRényi $\alpha = 2, 3$ matches small-$N$ ED
test_TFIM_cft_entanglement.jlCC at InfiniteCritical T=0/T>0 and gapped T=0 closed forms vs. analytic
test_entanglement_central_charge.jlED ($N \le 14$)$c_{\text{extracted}} \approx 0.5$ within 10%

Coverage by Reference

Physical / methodological backing of each fetch surface:

  • BdG (OBC ground / thermal): Pfeuty 1970.
  • PBC parity projection (NS+R): Lieb-Schultz-Mattis 1961; Sachdev §4.2.
  • Peschel correlation matrix (entanglement, OBC): Peschel 2003; Calabrese-Cardy 2004; Fagotti-Calabrese 2010.
  • Calabrese-Cardy (entanglement, Infinite): Calabrese-Cardy 2004,
  • Pfaffian Wick (XX static / connected): Wick 1950 + free-fermion Σ contraction.
  • Pfeuty closed forms (Z-axis Infinite): Pfeuty 1970 (spontaneous magnetisation, correlation length).
  • Two-spinon DOS / dispersion helpers: standard Bogoliubov dispersion + convolution; see Calabrese-Mussardo for the form-factor programme (not yet implemented).

Connections

  • Universality: Ising universality class$c = 1/2$, $\nu = 1$, $z = 1$.
  • Classical counterpart: IsingSquare — the 1+1D TFIM maps to the 2D classical Ising model via the quantum-classical correspondence ($\beta_{\text{classical}} \leftrightarrow$ imaginary time).
  • Disordered version: Random TFIM — the Fisher infinite-randomness fixed point at $[\ln J]_{\text{avg}} = [\ln h]_{\text{avg}}$.
  • E8 spectrum: E8 universality — perturbing the critical TFIM at $h = J$ by a longitudinal field $\lambda \sigma^z$ is the $\Phi_{(1,2)} = \sigma$ magnetic perturbation of the Ising CFT. Zamolodchikov (1989) showed the resulting massive field theory remains integrable and its eight stable particles realise the $E_8$ mass spectrum.

API

Modules = [QAtlas] at the end of index.md already pulls docstrings for the exported observable types and TFIM helpers (tfim_quasiparticle_dispersion, tfim_two_spinon_dos); no @autodocs block is needed here.


<!– ATLAS:HUBS:START – auto-generated by docs/atlas/generate.jl. Do not edit by hand; edits between these markers are overwritten on next regen. –>

Verified hubs

In the Verified Atlas, this model registers 67 hubs (quantity / BC pair). The badge column shows the R1 assurance level; click a hub link to see the exact verify(...) calls, references, and corroboration mechanism.

QuantityBCAssuranceCards
CentralChargeInfinite🟢 corroborated-at-p5
ConformalTowerOBC🟠 uncorroborated-but-feasible0
ConformalTowerPBC🟠 uncorroborated-but-feasible0
ConnectedSpinCorrelationInfinite🟠 uncorroborated-but-feasible0
ConnectedSpinCorrelationOBC🟠 uncorroborated-but-feasible0
CorrelationLengthInfinite🟢 corroborated-at-p3
CriticalExponentsInfinite🟠 uncorroborated-but-feasible0
DynamicalCorrelationOBC🟠 uncorroborated-but-feasible0
DynamicalSpinStructureFactorInfinite🔵 coherent2
EnergyInfinite🟢 corroborated-at-p12
EnergyOBC🟢 corroborated-at-p58
EnergyPBC🟢 corroborated-at-p16
EnergyLocalOBC🟠 uncorroborated-but-feasible0
FermionicEntanglementEntropyOBC🟠 uncorroborated-but-feasible0
FidelitySusceptibilityInfinite🟢 corroborated-at-p2
FidelitySusceptibilityOBC🟢 corroborated-at-p9
FreeEnergyInfinite🟢 corroborated-at-p9
FreeEnergyOBC🟢 corroborated-at-p45
FreeEnergyPBC🟢 corroborated-at-p30
GGEValueInfinite🔵 coherent1
LiebRobinsonVelocityInfinite🟠 uncorroborated-but-feasible0
LightconeSpinCorrelationOBC🟠 uncorroborated-but-feasible0
LocalMagnetizationOBC🟠 uncorroborated-but-feasible0
LoschmidtAmplitudeOBC🟠 uncorroborated-but-feasible0
LoschmidtRateFunctionInfinite🟢 corroborated-at-p10
LoschmidtRateFunctionOBC🟢 corroborated-at-p12
MagnetizationXInfinite🟢 corroborated-at-p6
MagnetizationXOBC🟢 corroborated-at-p18
MagnetizationXPBC🟢 corroborated-at-p18
MagnetizationYOBC🟢 corroborated-at-p3
MagnetizationZInfinite🟢 corroborated-at-p5
MassGapInfinite🟢 corroborated-at-p25
MassGapOBC🟢 corroborated-at-p1
MassGapPBC🟠 uncorroborated-but-feasible0
NMRRelaxationExponentInfinite🟠 uncorroborated-but-feasible0
NMRSpinRelaxationRateInfinite🟠 uncorroborated-but-feasible0
NMRSpinRelaxationRateOBC🟠 uncorroborated-but-feasible0
QuenchEntanglementEntropyOBC🔵 coherent1
QuenchLocalMagnetizationInfinite🔵 coherent2
QuenchLocalMagnetizationOBC🟠 uncorroborated-but-feasible0
RenyiEntropyInfinite🟠 uncorroborated-but-feasible0
RenyiEntropyOBC🟢 corroborated-at-p74
SpecificHeatInfinite🔵 coherent7
SpecificHeatOBC🟢 corroborated-at-p40
SpecificHeatPBC🟢 corroborated-at-p18
SpinCorrelationInfinite🟠 uncorroborated-but-feasible0
SpinCorrelationOBC🟠 uncorroborated-but-feasible0
SpontaneousMagnetizationInfinite🟢 corroborated-at-p7
SurfaceMagnetizationOBC🟢 corroborated-at-p1
SusceptibilityXXInfinite🟠 uncorroborated-but-feasible0
SusceptibilityXXOBC🟢 corroborated-at-p18
SusceptibilityXXPBC🟢 corroborated-at-p12
SusceptibilityYYOBC🟢 corroborated-at-p18
SusceptibilityZZInfinite🟠 uncorroborated-but-feasible0
SusceptibilityZZOBC🟢 corroborated-at-p18
ThermalEntropyInfinite🔵 coherent11
ThermalEntropyOBC🟢 corroborated-at-p41
ThermalEntropyPBC🟢 corroborated-at-p15
UniversalityClassInfinite🟠 uncorroborated-but-feasible0
VonNeumannEntropyInfinite🟠 uncorroborated-but-feasible0
VonNeumannEntropyOBC🟢 corroborated-at-p41
XXStructureFactorInfinite🔵 coherent14
XXStructureFactorOBC🟢 corroborated-at-p27
YYStructureFactorInfinite🔵 coherent14
YYStructureFactorOBC🟢 corroborated-at-p27
ZZStructureFactorInfinite🔵 coherent12
ZZStructureFactorOBC🔵 coherent24

<!– ATLAS:HUBS:END –>


<!– ATLAS:DOCS:START – auto-generated by docs/atlas/generate.jl. Do not edit by hand; edits between these markers are overwritten on next regen. –>

API

Every fetch(::Model, …) method registered for this model — together with the model struct(s) and exported helpers — generated directly from the source (in lock-step with @register):

QAtlas.TFIMType
TFIM(; J = 1.0, h = 1.0) <: AbstractQAtlasModel

The 1D transverse field Ising model with Hamiltonian

H = -J Σ_i σᶻ_i σᶻ_{i+1} - h Σ_i σˣ_i

J > 0 is ferromagnetic, h is the transverse field. The critical point sits at h = J.

Currently registered fetches:

QuantityBCCoverage
EnergyOBC / InfiniteExact energy computed via BdG transformation
SpecificHeatInfiniteSpecific heat at finite temperature
FreeEnergyInfiniteFree energy density at finite temperature
ThermalEntropyInfiniteThermal entropy density at finite temperature
UniversalityClassInfinite:Ising universality class at the critical point h = J (flows to :IsingSDRG under strong disorder)
source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SurfaceMagnetization, bc::OBC) -> Float64

Surface magnetization of the N-site open chain with the far end fixed (h_N = 0), in closed form. Peschel's exact free-fermion result ([1]; [2] Eq. (4.4)) is a sum over products of h_j/J_j; on a uniform chain those are one ratio r = h/J and the sum is geometric:

m_s(N) = [1 + r²(1 − r^{2(N−1)})/(1 − r²)]^{-1/2}, m_s(N) = N^{-1/2} at r = 1.

The two limits are the exponents, not fitted: N → ∞ below the transition gives m_s = √(1−r²), so β_s = 1/2, and at r = 1 the N^{-1/2} is x_m^s = 1/2. Both are the surface entries of the 2D Ising table, and both are what a RANDOM chain also has for x_m^s by a different argument, which is why the average alone cannot tell the two apart and the typical value must.

Evaluated through log1p/expm1 so r > 1 neither overflows the numerator nor loses the answer: m_s is exponentially small there, not zero.

Size comes from bc.N (or kwargs[:N]), which is where a non-positive N is refused; there is no second check for it here.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::CentralCharge, ::Infinite) -> Float64

Central charge of the TFIM:

  • c = 1/2 at the critical point h = J (Ising CFT)
  • c = 0 in either gapped phase (h ≠ J) — no low-energy CFT description

Criticality is detected by |h/J - 1| ≤ 1e-6.

Example

julia> QAtlas.fetch(TFIM(), CentralCharge(), Infinite())
0.5
source
AbstractQAtlas.fetchMethod
fetch(::TFIM, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTuple

Onsager 2D-Ising critical exponents at the TFIM quantum critical point h = J, delegated to the existing Universality(:Ising) infrastructure at d = 2:

β = 1/8,  γ = 7/4,  δ = 15,  ν = 1,  α = 0,  η = 1/4.

The 1D TFIM is exactly equivalent to the 2D classical Ising model via the quantum-classical mapping (Pfeuty 1970), so the universal critical exponents are identical to Onsager's 1944 result.

References

  • L. Onsager, Phys. Rev. 65, 117 (1944) — 2D classical Ising exact solution.
  • P. Pfeuty, Ann. Phys. 57, 79 (1970) — TFIM ↔ 2D Ising equivalence.
  • S. Sachdev, Quantum Phase Transitions (2nd ed., Cambridge 2011) — TFIM as canonical QPT example.
source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Energy{:per_site}, ::Infinite; beta, betas) -> Float64 or Vector{Float64}

Energy per site ⟨H⟩/N in the thermodynamic limit (PBC, N → ∞). Native granularity at Infinite() (total energy diverges and has no defined value here).

ε(β) = -(1/π) ∫₀^π dk  Λ(k)/2 · tanh(β Λ(k) / 2)

where the PBC dispersion is Λ(k) = 2√(J² + h² - 2Jh cos k).

  • beta::Float64: return scalar ε(β)
  • betas::AbstractVector{Float64}: return vector
  • no keyword: return ground-state energy per site (β → ∞)

Uses adaptive Gauss-Kronrod quadrature (QuadGK).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Energy{:total}, bc::OBC; beta, betas) -> Float64 or Vector{Float64}

Total energy ⟨H⟩(β) for the OBC TFIM with N sites. Native granularity for finite-N TFIM (per-site is provided by the generic conversion fallback in src/core/quantities.jl).

  • N is read from bc.N (OBC(N) / OBC(; N)) or from kwargs[:N] as a legacy fallback.
  • beta::Float64: return scalar ⟨H⟩(β)
  • betas::AbstractVector{Float64}: return vector, reusing spectrum (O(N³) once)
  • no keyword: return ground-state energy E₀ = -Σₙ Λₙ/2 (β → ∞)

Uses the exact BdG formula: ⟨H⟩ = -Σₙ (Λₙ/2) tanh(β Λₙ / 2)

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::EntanglementGrowthSlope, ::Infinite;
      beta_eff::Real, kwargs...) -> Float64

Linear-growth slope of post-quench half-system entanglement entropy for the TFIM at the Ising critical point h = J. Wires together two universality-layer pieces

c = 1/2          (Universality(:Ising) CentralCharge)
v_LR = 2 |J|     (TFIM LiebRobinsonVelocity at h = J critical)

into the Calabrese-Cardy 2005 result

dS_A/dt = π c v_LR / (3 beta_eff) = π J / (3 beta_eff).

For non-critical TFIM (h ≠ J, gapped) the CC linear-growth picture does not apply and DomainError is thrown.

Reference: Calabrese-Cardy J. Stat. Mech. P04010 (2005); combines universality-layer dispatches from PR #588 and the TFIM LiebRobinsonVelocity from PR #586 / fix #592.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::LiebRobinsonVelocity, ::Infinite;
      J=m.J, h=m.h) -> Float64

Lieb-Robinson velocity of the transverse-field Ising chain. Via the Jordan-Wigner mapping the TFIM is a free Bogoliubov-fermion system with dispersion Λ(k) = 2 sqrt(J^2 + h^2 - 2 J h cos k). The tight Lieb-Robinson velocity is the maximum single-particle group velocity saturating the bound: differentiating Λ(k) and locating the interior stationary point at cos k = min(|J|, |h|) / max(|J|, |h|) gives

v_LR = max_k |dΛ/dk| = 2 min(|J|, |h|).

At criticality h = J this is 2J = 2h (Calabrese-Cardy 2006). The Hastings-Koma upper bound 2 max(|J|, |h|) is loose; the value returned here is the tight free-fermion saturated velocity that governs e.g. the linear-growth slope of post-quench entanglement (see PR #588 EntanglementGrowthSlope).

At h = 0 (classical Ising) or J = 0 (decoupled site spins) the chain has no quantum dynamics and v_LR = 0.

Reference: Lieb-Robinson 1972; Hastings-Koma 2006 (general bound); Calabrese-Cardy 2006 (free-fermion saturation in quench dynamics).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::MassGap, ::Infinite) -> Float64

Mass gap of the infinite-chain TFIM: the lowest single-quasiparticle excitation energy

Δ = min_k Λ(k),     Λ(k) = 2 √( J² + h² − 2 J h cos k ).

Closed form:

Δ = 2 |h − J|.

Canonical values:

  • ordered (h < J): Δ = 2(J − h)
  • disordered (h > J): Δ = 2(h − J)
  • critical (h = J): Δ = 0 (Ising CFT, Δ ~ π v_F / N on finite chains)
source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::MassGap, bc::OBC) -> Float64

Single-quasiparticle gap of the N-site OBC TFIM read off the BdG spectrum as Λ_min, the smallest positive eigenvalue of the 2N×2N Bogoliubov-de Gennes Hamiltonian.

This is the one-particle excitation energy. Away from the critical point (|h − J| > O(1/N)) it converges to 2|h − J| exponentially in N. At the critical point h = J the OBC gap scales as Δ(N) ~ π J / N (Ising CFT).

Size is taken from bc.N (or kwargs[:N] as a legacy fallback).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::NMRRelaxationExponent, ::Infinite; kwargs...) -> Float64

NMR spin-lattice relaxation rate temperature scaling exponent θ_{NMR} = -3/4 at the quantum critical point h = J. For non-critical h ≠ J, returns NaN with a warning.

source
AbstractQAtlas.fetchMethod
fetch(m::TFIM, ::BoundaryEntropy, ::Infinite;
      h = m.h, J = m.J, boundary_state::Symbol, kwargs...) -> Float64

Affleck-Ludwig boundary entropy log g of the critical TFIM at the quantum critical point h = J. Delegates to Universality(:Ising) with the same boundary_state, which is dimensionless (independent of the sound velocity).

Off-critical (h != J) is gapped and Affleck-Ludwig does not apply — this dispatch throws DomainError.

Reference: Affleck-Ludwig Phys. Rev. Lett. 67, 161 (1991).

source
AbstractQAtlas.fetchMethod
fetch(m::TFIM, ::EntanglementSaturationDensity, ::Infinite;
      beta_eff::Real, h = m.h, J = m.J, kwargs...) -> Float64

Long-time saturation S_A(infty)/L = pi c / (6 beta_eff) of the half-system entanglement entropy after a global quench at the critical TFIM point |h| = |J|. Delegates to Universality(:Ising) (c = 1/2).

source
AbstractQAtlas.fetchMethod
fetch(m::TFIM, ::LogarithmicNegativity, ::Infinite;
      ℓ_A::Real, ℓ_B::Real, kwargs...) -> Float64

Calabrese-Cardy-Tonni 2012 logarithmic negativity of two adjacent intervals at the critical TFIM point |h| = |J|:

E = (c/4) log[ℓ_A · ℓ_B / (ℓ_A + ℓ_B)],   c = 1/2.

Delegates to Universality(:Ising).

source
AbstractQAtlas.fetchMethod
fetch(m::TFIM, ::MutualInformation, ::Infinite;
      ℓ_A::Real, ℓ_B::Real, beta::Real=Inf, kwargs...) -> Float64

Calabrese-Cardy mutual information I(A:B) of two adjacent intervals at the critical TFIM point |h| = |J|, with the same lattice spacing convention a = 1/2 used by the VonNeumannEntropy / RenyiEntropy wrappers. The cutoff cancels in S(A) + S(B) - S(A union B), so the result is independent of a.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, q::RenyiEntropy, ::Infinite;
      ℓ::Int, beta::Real = Inf, kwargs...) -> Float64

Calabrese-Cardy Rényi-α entanglement entropy of a contiguous block of length in the infinite TFIM. Coefficient

P_α = (c / 6) · (1 + 1/α),  c = 1/2.
  • T = 0, critical: S_α = P_α · log(2 ℓ)
  • T = 0, gapped : S_α = (P_α / 2) · log(2 ξ sinh(ℓ/ξ)), ξ = 1/(2|h - J|)
  • T > 0, critical: S_α = P_α · log[(2 β/π) sinh(π ℓ / β)]
  • T > 0, gapped : not implemented (errors out).

The non-universal S_0 offset is dropped.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::VonNeumannEntropy, ::Infinite;
      ℓ::Int, beta::Real = Inf, kwargs...) -> Float64

Calabrese-Cardy von Neumann entanglement entropy of a contiguous block of length in the infinite TFIM (Ising CFT, c = 1/2). Returns the universal leading-log term; the non-universal S_0 offset is dropped.

  • beta = Inf (default): T = 0 ground state.
  • beta < ∞ : finite-temperature thermal state.

At criticality (h ≈ J) and T = 0 the result is (c/3) log(2 ℓ). In a gapped phase at T = 0 the result is (c/6) log(2 ξ sinh(ℓ/ξ)) with ξ = 1/(2|h - J|); this saturates at (c/6)(ℓ/ξ + log ξ + log 2) for ℓ ≫ ξ (area law set by ξ). At criticality + finite T the result is (c/3) log[(2 β/π) sinh(π ℓ / β)], consistent with the T = 0 form under β → ∞. The off-critical + finite-T case errors out (not yet implemented).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ConnectedSpinCorrelation{:z,:z}, bc::OBC;
      beta::Float64, [i::Int, j::Int]) -> Matrix{Float64} or Float64

Connected static thermal correlator C^c_{ij} = ⟨σᶻ_i σᶻ_j⟩_β − ⟨σᶻ_i⟩_β ⟨σᶻ_j⟩_β for the OBC TFIM.

In the OBC TFIM the Z₂ symmetry σᶻ → −σᶻ is unbroken at any finite N (Gaussian state of the JW fermions; odd-product expectation vanishes), so ⟨σᶻ_i⟩_β = 0 and the connected correlator coincides with the bare static one. This method therefore re-uses the :static routine and is provided as a separate dispatch for caller clarity / API completeness.

If at some point a TFIM variant breaks Z₂ explicitly (e.g. by adding a longitudinal field), the implementation will still be correct provided the per-site ⟨σᶻ_i⟩_β is taken from LocalMagnetization and subtracted off — see the comment in the source.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::DynamicalCorrelation{(:x, :x)}, bc::OBC;
      i::Int, j::Int, t::Float64, beta::Float64 = Inf) -> ComplexF64

Exact ⟨σˣ_i(t) σˣ_j(0)⟩_β for the OBC TFIM.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::DynamicalCorrelation{(:z, :z)}, bc::OBC;
      i::Int, j::Int, t::Float64, beta::Float64 = Inf) -> ComplexF64

Exact ⟨σᶻ_i(t) σᶻ_j(0)⟩_β for the OBC TFIM. beta = Inf (the default) gives the ground-state result. N comes from bc.N.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::LightconeSpinCorrelation{:z,:z}, bc::OBC;
      center::Int, times::AbstractVector{<:Real}, beta::Float64 = Inf) -> Matrix{ComplexF64}

Exact spreading correlation C[it, ix] = ⟨σᶻ_ix(t_it) σᶻ_center(0)⟩_β for all sites ix ∈ 1:N and t_it ∈ times.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpinCorrelation{:z,:z}, bc::OBC;
      beta::Float64, [i::Int, j::Int]) -> Matrix{Float64} or Float64

Static (equal-time) thermal correlator ⟨σᶻ_i σᶻ_j⟩_β for the OBC TFIM. With both i and j given returns a scalar; otherwise returns the full N×N matrix.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ZZStructureFactor, bc::OBC;
      beta::Float64, q::Real) -> Float64

Static structure factor S_zz(q, β) for the OBC TFIM at wave vector q.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SusceptibilityZZ, bc::OBC;
      beta::Float64) -> Float64

Static uniform longitudinal (q = 0) susceptibility per site,

χ_zz(β) = (β/N) Σ_{i,j} ⟨σᶻ_i σᶻ_j⟩_β.
source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::FermionicEntanglementEntropy, bc::OBC;
      region::Region, beta::Float64 = Inf, kwargs...) -> Float64
fetch(model::TFIM, ::FermionicEntanglementEntropy, bc::OBC;
      ℓ::Int, beta::Float64 = Inf, kwargs...) -> Float64

Von Neumann entropy of the state restricted to the fermionic algebra of the region — the same Peschel covariance restriction as the VonNeumannEntropy route, with no contiguity requirement.

This is the quantity the multi-interval closed form cft_region_entropy predicts, and it is what makes that formula checkable at all: the spin entropy of a disconnected region is a different number (the Jordan-Wigner string leaves the region), and no entropy inequality separates the two. See src/core/regions.jl.

On a single contiguous interval the two agree exactly, which is asserted rather than assumed — a route that quietly returned one for the other would otherwise be invisible on precisely the regions where both are defined.

Cost is O(|region|³), the same as the spin route; there is no ED fallback and no size cap, so L = 64 with fifteen blocks runs in about 0.09 s.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, q::RenyiEntropy, bc::OBC;
      region::Region, beta::Float64 = Inf, kwargs...) -> Float64
fetch(model::TFIM, q::RenyiEntropy, bc::OBC;
      ℓ::Int, beta::Float64 = Inf, kwargs...) -> Float64

The block is named by region or by exactly as in the von Neumann method above, and carries the same single-interval restriction.

Rényi entropy of order α = q.α (α ≠ 1) for the first spins of the N-site OBC TFIM in the thermal state at inverse temperature beta (or the ground state when beta = Inf), via Peschel's correlation-matrix method — see equation (2) in the file header.

The Gaussian factorisation gives S_α = Σ_k s_α(ν_k), where the νk are the non-negative eigenvalues of `i ΣA`. As for the von Neumann case, the JW-factorisation argument (Fagotti–Calabrese 2010) means the fermion Rényi entropy equals the spin Rényi entropy for a contiguous block.

α = 1 is rejected at the RenyiEntropy constructor; use VonNeumannEntropy explicitly.

Cost is O(ℓ³) from the Hermitian eigendecomposition of i Σ_A, identical to the von Neumann path — and, like it, a disconnected region is answered rather than refused, by reconstructing the spin state with the Jordan-Wigner string reinstated (spin_rdm_from_covariance) and taking Tr ρ^α directly. That branch is exponential in the region size.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::VonNeumannEntropy, bc::OBC;
      region::Region, beta::Float64 = Inf, kwargs...) -> Float64
fetch(model::TFIM, ::VonNeumannEntropy, bc::OBC;
      ℓ::Int, beta::Float64 = Inf, kwargs...) -> Float64

Von Neumann entanglement entropy of a block of the N-site OBC TFIM in the thermal state at inverse temperature beta (or the ground state when beta = Inf), computed by Peschel's correlation-matrix method — see equation (1) in the file header.

The block is named either by a Region or by the block length , which is sugar for Region(1:ℓ); give exactly one. A Region may sit anywhere in the chain — Region(3, 4) is the block on sites 3 and 4 — which is what lets the region entropy inequalities be instantiated on ADJACENT blocks (A = 1:2, B = 3:4, C = 5:6), where every union they need is again a single interval.

Two routes, chosen by the shape of the region and not by a keyword, because the choice is forced rather than preferred:

  • contiguous — Peschel's correlation matrix, O(ℓ³). The Jordan-Wigner string factorises across the boundary, so the spin and fermionic entropies coincide and the covariance restriction is already the answer.
  • disconnected — the string does not factorise, and the covariance restriction would give the FERMIONIC entropy, a genuinely different number that no entropy inequality would flag. The string is therefore reinstated explicitly (spin_rdm_from_covariance), at a cost of 4^|region| Pfaffians but still polynomial in N.

This used to throw. It answers now; ask for FermionicEntanglementEntropy if the fermionic number is what you want. Measured at N = 12, J = h = 1, the two differ by ~0.1–0.2 nats on regions like {1,3} or {1,2,5,6}.

  • N = _bc_size(bc, kwargs) (read from OBC(N) or legacy kwargs[:N]).
  • The region must lie in 1:N and leave a non-empty complement.
  • Contiguous cost is O(ℓ³); N = 200, ℓ = 100 runs in a few milliseconds, whereas the full-ED SVD baseline scales as O(4^N). The disconnected route is exponential in the REGION and polynomial in the CHAIN — the opposite trade to dense ED, which is 2^N and capped at N = 12.

The result matches the full-ED reference at every small N (verified to 1e-10 in test/models/test_TFIM_entanglement.jl).

See full derivation in docs/src/calc/jw-tfim-bdg.md.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::FidelitySusceptibility, ::Infinite;
      rtol::Float64=1e-10, kwargs...) -> Float64

Per-site fidelity susceptibility χ_F / L of the infinite TFIM with respect to the transverse field h, computed by Gauss–Kronrod quadrature of the closed-form Bogoliubov-vacuum overlap integral.

Closed-form values (h ≠ J):

χ_F / L = 1 / (16 (J² − h²))            (ordered, h < J)
χ_F / L = J² / (16 h² (h² − J²))         (disordered, h > J)

Both branches diverge as 1 / |J − h| at the critical point |h| = J — a DomainError is thrown if ||h| − |J|| is below 1e-14.

References: Gu, [3]; Damski, PRB 87, 165101 (2013).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::FidelitySusceptibility, bc::OBC;
      per_site::Bool=false, kwargs...) -> Float64

Ground-state fidelity susceptibility χ_F of the OBC TFIM with N = bc.N sites with respect to the transverse field h:

χ_F(h) = Σ_{n ≠ 0} |⟨n | ∂_h H | 0⟩|² / (E_n - E_0)²,

evaluated in closed form via the Bogoliubov diagonalisation (no numerical differentiation). Cost O(N³).

per_site=true returns χ_F / N.

References: Gu, [3]; Damski, PRB 87, 165101 (2013).

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::GGEValue{Energy{:per_site}}, ::Infinite;
      initial::TFIM, kwargs...) -> Float64

Per-site Generalised Gibbs Ensemble (GGE) energy density of the infinite TFIM after a sudden quench (J, h_0) → (J, h_f), with model_f = TFIM(J = J, h = h_f) and initial = TFIM(J = J, h = h_0).

The closed form

ε_GGE = -(1/π) ∫₀^π dk · (Λ_k(h_f)/2) · (1 − 2 n_k(h_0, h_f))

is the long-time average reached by the post-quench evolution; it also equals the (time-independent) energy expectation of the initial state |ψ0⟩ in the post-quench Hamiltonian Hf, which serves as the canonical energy-conservation cross-check.

Required kwarg

  • initial::TFIM — pre-quench TFIM whose ground state is the initial state. The Ising couplings must match (initial.J == model_f.J); a mismatch throws DomainError.

Example

fetch(TFIM(J = 1.0, h = 0.5), GGEValue(Energy(:per_site)), Infinite();
      initial = TFIM(J = 1.0, h = 2.0))

References

  • Rigol et al., Relaxation in a Completely Integrable Many-Body Quantum System, PRL 98, 050405 (2007).
  • Calabrese, Essler, Fagotti, Quantum Quench in the Transverse Field Ising Chain, J. Stat. Mech. (2012) P07016, P07022.
source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::GGEValue{MagnetizationX}, ::Infinite;
      initial::TFIM, kwargs...) -> Float64

GGE stationary value of the transverse magnetisation ⟨σˣ⟩ of the infinite TFIM after a sudden quench (J, h_0) → (J, h_f):

⟨σˣ⟩_GGE = (2/π) ∫₀^π dk · (h_f − J cos k)/Λ_k(h_f) · (1 − 2 n_k)

with n_k = sin²(θ_k(h_0) − θ_k(h_f)).

Required kwarg

  • initial::TFIM — pre-quench TFIM (must share J).

References

See [fetch(::TFIM, ::GGEValue{Energy{:per_site}}, ::Infinite; ...)].

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpinStructureFactor{:z,:z}, ::Infinite;
      beta::Real, q::Real, N_proxy::Int = 80, kwargs...) -> Float64

Static longitudinal structure factor S_zz(q; β) of the infinite TFIM, computed by the large-N OBC proxy _zz_static_structure_factor (default N_proxy = 80; same path as defined in TFIM_zaxis.jl). Passing an ω kwarg is an error — split #734 moved the dynamic S_zz(q, ω; β) onto the DynamicalSpinStructureFactor{:z,:z} method below.

fetch(model::TFIM, ::DynamicalSpinStructureFactor{:z,:z}, ::Infinite;
      beta::Real, q::Real, ω::Real, N_proxy::Int = 64,
      t_max::Real = 20.0, dt::Real = 0.1, kwargs...) -> Float64

Dynamic S_zz(q, ω; β), computed as the OBC large-N proxy of the time- and space-Fourier transform of ⟨σᶻ_i(t) σᶻ_j(0)⟩_β,

S_zz(q, ω; β) = ∫dt e^{iωt} · (1/N_b) Σ_{i,j ∈ bulk}
                      e^{-iq(i-j)} ⟨σᶻ_i(t) σᶻ_j(0)⟩_β,

with t ∈ [-t_max, t_max] discretised at spacing dt and (i, j) restricted to the central bulk window [N/4, 3N/4] of an N_proxy-site OBC chain.

Default N_proxy = 64, t_max = 20.0, dt = 0.1 is a balance of precision and cost; the dominant errors are (a) ω-resolution ~ π/t_max ≈ 0.157, (b) UV cutoff ~ π/dt ≈ 31.4, (c) finite-size finite-bulk corrections ~ exp(−(N_proxy − 4 ξ)/ξ). Raise the appropriate parameter to tighten any of these.

Performance: O(|ts| · N_b² · M³) Pfaffians per (q, ω) point, where M ≈ 2 (i + j) − 2. At default settings this is ~1 sec/point on a single core after the Majorana eigendecomposition is amortised. Multiple (q, ω) points should be batched by writing a custom loop that reuses Σ and the per-t evolution matrices R(t).

Static path remains the recommended one for any equilibrium sum-rule work; the dynamic path is intended primarily as a benchmark for TPQMPS / DMRG dynamic structure factor reference values.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SusceptibilityZZ, ::Infinite;
      beta::Real, ω::Union{Real,Nothing} = nothing,
      q::Union{Real,Nothing} = nothing,
      N_proxy::Int = 64, t_max::Real = 20.0, dt::Real = 0.1, kwargs...)
    -> Float64

Longitudinal susceptibility of the infinite TFIM. This router dispatches on ω:

  • ω === nothing (default) → static uniform isothermal susceptibility χ_zz(β) at q = 0, the same large-N OBC proxy _zz_uniform_susceptibility previously exposed in TFIM_zaxis.jl (default N_proxy = 80). q is ignored on this branch.

  • ω::Real → dynamic imaginary part χ''_zz(q, ω; β) at finite momentum, computed via the Kubo commutator formula

    χ''_zz(q, ω; β) = (1/2) ∫dt e^{iωt} · (1/N_b) Σ_{i,j ∈ bulk}
                            e^{-iq(i-j)} ⟨[σᶻ_i(t), σᶻ_j(0)]⟩_β

    (Kubo 1957; Mahan, Many-Particle Physics, ch. 3) on the same N_proxy-site OBC chain as ZZStructureFactor's dynamic branch. q is required on this branch; ArgumentError is raised if absent.

    Default N_proxy = 64, t_max = 20.0, dt = 0.1 mirror the dynamic ZZStructureFactor proxy so the two are directly comparable (e.g. for fluctuation–dissipation cross-checks); the same ω-resolution ~ π/t_max, UV cutoff ~ π/dt, and finite-bulk exponential corrections apply.

The static and dynamic branches answer different physical questions: the static path returns the equilibrium thermodynamic susceptibility (integral of χ''(ω)/ω weighted by tanh(βω/2)), while the dynamic path returns the spectral function at a single (q, ω). The static branch is the recommended one for sum-rule / equation-of-state work.

FDT cross-check is not an independent physics anchor

The dynamic χ'' branch shares the OBC large-N Pfaffian / Majorana machinery (and (N_proxy, t_max, dt) discretisation) with the ZZStructureFactor dynamic branch. Asserting S = 2χ''/(1−e^{-βω}) therefore primarily verifies the commutator-vs-product structure is consistent — both spectral functions are computed from the same cached Σ_thermal and R(t) = exp(h_majorana · t), so their discretisation errors are correlated. Stronger independent anchors are: (i) the f-sum rule ∫₀^∞ ω χ''(q,ω) dω relates analytically to ½⟨[[H, σᶻq], σᶻ{-q}]⟩ (Hohenberg-Brinkman 1974); and (ii) at h = 0 the σᶻ operator commutes with H, so χ''_zz(q,ω) ≡ 0 — a trivial-but-strong test that fails fast on any sign error.

source
QAtlas.tfim_quasiparticle_dispersionMethod
tfim_quasiparticle_dispersion(model::TFIM, k::Real) -> Float64

Single-quasiparticle Bogoliubov dispersion of the infinite TFIM,

Λ(k) = 2 √(J² + h² − 2 J h cos k),

at momentum k ∈ [0, π]. Useful for plotting band structure and as the kinematic input to two-spinon density-of-states / structure factor calculations.

Special values:

  • Λ(0) = 2 |J − h| — equal to the gap Δ in either phase.
  • Λ(π) = 2 (J + h) — top of the band.
  • min over k ∈ [0, π] is the mass gap MassGap at Infinite.
source
QAtlas.tfim_two_spinon_dosMethod
tfim_two_spinon_dos(model::TFIM, ω::Real; q_total::Real = 0.0) -> Float64

Two-spinon density of states at total momentum q_total and frequency ω for the infinite TFIM:

ρ_2(ω; q_total) = (1/π) ∫₀^π dk  δ(ω − Λ(k) − Λ(q_total − k)).

For q_total = 0 the two-spinon continuum is supported on [2 Δ, Λ(0) + Λ(π)] = [2 |J − h|, 2 (J + h)]; outside this window the routine returns 0.0.

Computation: numerical root-finding for k* ∈ (0, π) where f(k) := Λ(k) + Λ(q_total − k) = ω, then

ρ_2(ω; q_total) = (1/π) Σ_{k*} 1 / |f'(k*)|.

Roots are isolated by a brute-force scan with Nscan = 4096 samples followed by 50 bisection refinements per bracket — sufficient for ~12-digit precision in k* and ~1/Nscan precision in counting roots near van Hove singularities (where |f'| vanishes and ρ_2 diverges integrably). Right at a van Hove point the returned value is finite because the bisected k* is offset from the exact saddle.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::EnergyLocal, bc::OBC; beta::Float64, kwargs...)
    -> Vector{Float64}

Site-local energy density ε_i of the OBC TFIM at inverse temperature beta, defined so that Σᵢ ε_i = ⟨H⟩_β. Each bond is split symmetrically between its two endpoints:

ε_i = -(J/2) (⟨σᶻ_{i-1} σᶻ_i⟩_β + ⟨σᶻ_i σᶻ_{i+1}⟩_β) - h ⟨σˣ_i⟩_β

with the missing bonds at the i = 1 and i = N boundaries taken to be zero. Bond expectations are read off as Σ(β)[2i, 2i+1] from the Majorana thermal covariance (exact, O(N) after the single 2N×2N diagonalisation).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::LocalMagnetization{:x}, bc::OBC; beta::Float64, kwargs...)
    -> Vector{Float64}

Site-resolved transverse magnetisation [⟨σˣ_i⟩_β for i = 1:N] of the OBC TFIM at inverse temperature beta, read off from the Majorana thermal covariance as Σ[2i-1, 2i]. N is taken from bc.N.

beta = Inf falls back to the ground state.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::LocalMagnetization{:z}, bc::OBC; beta::Float64, kwargs...)
    -> Vector{Float64}

Site-resolved longitudinal magnetisation [⟨σᶻ_i⟩_β for i = 1:N]. Identically zero in the OBC TFIM by the Z₂ symmetry σᶻ → −σᶻ of the Hamiltonian (Gaussian state, odd product of Majoranas). Returned as an explicit zero vector so consumers can use it as an exact baseline against finite random-sample estimates that fluctuate around zero.

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::LoschmidtAmplitude, bc::OBC;
      initial::TFIM, t::Real, kwargs...) -> Float64

Loschmidt echo L(t) = |⟨ψ_0|e^{-iH_f t}|ψ_0⟩|² for an OBC chain of size bc.N after a sudden quench H_0 = TFIM(J, h_0) → H_f = TFIM(J, h_f).

initial carries the pre-quench Hamiltonian (must share J with model_f; only h differs). Computed by diagonalising both BdG matrices and evaluating the per-mode Bogoliubov overlap product.

References: Heyl-Polkovnikov-Kehrein, [4]; Heyl, [5].

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::LoschmidtRateFunction, ::Infinite;
      initial::TFIM, t::Real, atol::Real=1e-10, rtol::Real=1e-8, kwargs...)
    -> Float64

Loschmidt rate function in the thermodynamic limit:

λ(t) = -(1/2π) ∫_0^π log| cos²(Δθ_k) + sin²(Δθ_k) e^{-2 i Λ_k^{(f)} t} |² dk,

evaluated by QuadGK.quadgk. At a DQPT critical time the integrand has a log-divergence at k = k^*; QuadGK's adaptive subdivision handles the integrable singularity.

References: Heyl-Polkovnikov-Kehrein, [4]; Heyl, [5].

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::LoschmidtRateFunction, bc::OBC;
      initial::TFIM, t::Real, kwargs...) -> Float64

Loschmidt rate function λ(t) = -log L(t) / N for the OBC TFIM quench h_0 → h_f. See LoschmidtRateFunction.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Energy{:per_site}, bc::PBC; beta::Real, kwargs...) -> Float64

Per-site energy ε(β) = -∂_β log Z / N of the N-site PBC TFIM. Native granularity for PBC TFIM (the :total granularity is provided by the generic conversion fallback in src/core/quantities.jl).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::MassGap, bc::PBC; kwargs...) -> Float64

Lowest excitation energy of the N-site PBC TFIM. See _tfim_pbc_mass_gap for sector handling.

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::QuenchEntanglementEntropy, bc::OBC;
      initial::TFIM, ℓ::Int, t::Real, kwargs...) -> Float64

Post-quench von Neumann entanglement entropy of the first sites of the N-site OBC TFIM.

Prepare the chain in the ground state of initial::TFIM and quench instantly to model_f::TFIM; this method returns

S(ℓ, t) = -Tr ρ_A(t) log ρ_A(t)

evaluated by Peschel's correlation-matrix method on the time-evolved Majorana covariance Σ(t) = R(t) Σ0 R(t)ᵀ. See the file header (`TFIMquench_entanglement.jl`) for the full derivation and the Calabrese–Cardy quasi-particle picture for the expected linear-growth behaviour.

Required keyword arguments

  • initial::TFIM — initial-Hamiltonian model whose ground state is the t = 0 state.
  • ℓ::Int — subsystem length, 1 ≤ ℓ ≤ N - 1.
  • t::Real — post-quench time.

N is read from OBC(N) (or legacy kwargs[:N]). At t = 0 the result coincides with the equilibrium VonNeumannEntropy of the initial model — this is the back-compat sanity check exercised in test/standalone/test_tfim_quench_entanglement.jl.

Cost: O(N³) from the matrix exponential plus O(ℓ³) from the Peschel eigendecomposition.

References: Calabrese–Cardy J. Stat. Mech. P04010 (2005); Peschel J. Phys. A 36, L205 (2003).

source
QAtlas.RandomTFIMType
RandomTFIM

Disordered{TFIM}: the 1D random transverse-field Ising chain,

H = -Σ_i J_i σᶻ_i σᶻ_{i+1} - Σ_i h_i σˣ_i

with J_i = J·λ_i and h_i = h·μ_i, the TFIM's own J and h being the SCALES and λ, μ drawn from the families named for :J and :h.

Criticality is [ln J]_av = [ln h]_av, which for equal families is J == h and in general is not. Distance from it is rtfim_delta.

QuantityBCCoverage
DynamicalExponentInfiniteexact off criticality; throws at δ = 0
ActivatedExponentInfinite1/2, at criticality only
UniversalityClassInfinite:IsingSDRG, at criticality only

Anything else is refused: a disordered chain does not inherit the clean one's answers.

source
AbstractQAtlas.fetchMethod
fetch(::RandomTFIM, ::SpatialDimension, ::Infinite) -> Int

1. The chain's own spatial dimension, which is what quenched disorder lives in and what every infinite-randomness relation reads.

Worth answering rather than leaving to the caller: this atlas also hands out d = 2 for the same chain, under CriticalExponents, where it means the 2D classical image whose exponent table that is. The two are different numbers for one system, so the one the relations take is stated here instead of guessed (see AbstractQAtlas's SpatialDimension).

source
AbstractQAtlas.fetchMethod
fetch(::RandomTFIM, ::ActivatedExponent, ::Infinite) -> Rational{Int}

ψ = 1/2 at the critical point, the exponent of ln t_r ∼ ξ^ψ ([2] Eq. (4.13), §4.1.3).

Refused away from criticality, where the chain is in a Griffiths phase with a finite DynamicalExponent instead. Returning 1/2 there would name the exponent of a fixed point the model is not at.

source
AbstractQAtlas.fetchMethod
fetch(m::RandomTFIM, ::DynamicalExponent, ::Infinite) -> Float64

The Griffiths-phase dynamical exponent, exactly: the positive root of [(J/h)^{1/z}]_av = 1 ([2] Eq. (4.15), §4.1.3). It varies continuously with the distance from criticality and diverges as δ → 0; near criticality it reduces to the 1/z = 2|δ| the review quotes with Eq. (4.51).

Throws at δ = 0: at the infinite-randomness fixed point the equation has no root rather than a large one. Ask for ActivatedExponent instead.

source
AbstractQAtlas.fetchMethod
fetch(::RandomTFIM, ::UniversalityClass, ::Infinite) -> Universality{:IsingSDRG}

At criticality the chain flows to the infinite-randomness fixed point, whose exact exponents are fetch(Universality(:IsingSDRG), CriticalExponents(); d=2). Refused off criticality, where the chain is not critical at all.

source
QAtlas.rtfim_deltaMethod
rtfim_delta(m::RandomTFIM) -> Float64

δ = ([ln h]_av − [ln J]_av) / (var[ln h] + var[ln J]). Zero exactly at the infinite-randomness critical point; positive in the disordered phase.

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::QuenchLocalMagnetization{:x}, ::Infinite;
      initial::TFIM, t::Real, kwargs...) -> Float64

Translationally-invariant ⟨σˣ⟩(t) for the infinite TFIM after a sudden quench from H(initial.h) to H(model_f.h) (initial.J == model_f.J required). Closed-form k-integral:

⟨σˣ⟩(t) = (1/π) ∫₀^π dk [ cos(2 θ_k^f) cos(2 Δθ_k)
                        + sin(2 θ_k^f) sin(2 Δθ_k) cos(2 Λ_k^f t) ]

with Δθk ≡ θk(hf) − θk(h_0), evaluated by adaptive Gauss–Kronrod quadrature.

References: Barouch–McCoy–Dresden, PRA 2 (1970); Calabrese–Essler– Fagotti, J. Stat. Mech. P07016 (2012).

source
AbstractQAtlas.fetchMethod
fetch(model_f::TFIM, ::QuenchLocalMagnetization{:x}, bc::OBC;
      initial::TFIM, i::Int, t::Real, kwargs...) -> Float64

Time-evolved local transverse magnetisation ⟨σˣ_i⟩(t) of the OBC TFIM after a sudden quench.

  • model_f is the post-quench model (sets h_f, J).
  • initial is the pre-quench TFIM whose ground state |ψ_0⟩ is the initial state. Both models must share the same J; mismatch raises an ArgumentError (the quench is not defined for a J → J' jump in the current implementation).
  • i ∈ 1:N, t ∈ ℝ, N from bc.N (or kwargs).

Implementation: Majorana covariance evolution Σ(t) = R(t) Σ0 R(t)^T with Σ0 = GS covariance under H(h0) and R(t) = exp(hf · t). Cost per call: one 2N × 2N eigendecomposition + one matrix exponential.

Sanity checks (covered by test/standalone/test_tfim_sigma_x_quench.jl):

  • t = 0 → equilibrium ⟨σˣ_i⟩ of GS(h_0).
  • h0 = hf → time-independent (= equilibrium GS at h_0).
  • Large-N central-site → matches the Infinite() closed form.

References: Barouch–McCoy–Dresden, Phys. Rev. A 2 (1970) 1075; Calabrese–Essler–Fagotti, J. Stat. Mech. P07016 (2012).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::FreeEnergy, ::Infinite; beta::Real, kwargs...)

Per-site free_energy of the TFIM in the thermodynamic limit at inverse temperature beta. Uses adaptive Gauss-Kronrod quadrature over the BdG dispersion Λ(k) = 2√(J² + h² − 2Jh cos k).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::FreeEnergy, bc::OBC; beta::Real, kwargs...)

Per-site free_energy of the OBC TFIM with N = bc.N sites at inverse temperature beta. Computed exactly via the BdG diagonalisation.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Magnetization{:x}, ::Infinite; beta::Real, kwargs...)

Per-site transverse_magnetization of the TFIM in the thermodynamic limit at inverse temperature beta. Uses adaptive Gauss-Kronrod quadrature over the BdG dispersion Λ(k) = 2√(J² + h² − 2Jh cos k).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Magnetization{:x}, bc::OBC; beta::Real, kwargs...)

Per-site transverse_magnetization of the OBC TFIM with N = bc.N sites at inverse temperature beta. Computed exactly via the BdG diagonalisation.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::NMRSpinRelaxationRate, ::Infinite; beta::Real, eta::Real=0.1, kwargs...)

Per-site NMR spin relaxation rate 1/T₁ of the TFIM in the thermodynamic limit, from the Lorentzian-broadened two-quasiparticle scattering integral.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::NMRSpinRelaxationRate, bc::OBC; beta::Real, eta::Real=0.1, kwargs...)

Per-site NMR spin relaxation rate 1/T₁ of the OBC TFIM with N = bc.N sites, summed over the exact BdG quasiparticle spectrum.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpecificHeat, ::Infinite; beta::Real, kwargs...)

Per-site specific_heat of the TFIM in the thermodynamic limit at inverse temperature beta. Uses adaptive Gauss-Kronrod quadrature over the BdG dispersion Λ(k) = 2√(J² + h² − 2Jh cos k).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpecificHeat, bc::OBC; beta::Real, kwargs...)

Per-site specific_heat of the OBC TFIM with N = bc.N sites at inverse temperature beta. Computed exactly via the BdG diagonalisation.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Susceptibility{(:x, :x)}, ::Infinite; beta::Real, kwargs...)

Per-site transverse_susceptibility of the TFIM in the thermodynamic limit at inverse temperature beta. Uses adaptive Gauss-Kronrod quadrature over the BdG dispersion Λ(k) = 2√(J² + h² − 2Jh cos k).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::Susceptibility{(:x, :x)}, bc::OBC; beta::Real, kwargs...)

Per-site transverse_susceptibility of the OBC TFIM with N = bc.N sites at inverse temperature beta. Computed exactly via the BdG diagonalisation.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ThermalEntropy, ::Infinite; beta::Real, kwargs...)

Per-site entropy of the TFIM in the thermodynamic limit at inverse temperature beta. Uses adaptive Gauss-Kronrod quadrature over the BdG dispersion Λ(k) = 2√(J² + h² − 2Jh cos k).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ThermalEntropy, bc::OBC; beta::Real, kwargs...)

Per-site entropy of the OBC TFIM with N = bc.N sites at inverse temperature beta. Computed exactly via the BdG diagonalisation.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ConnectedSpinCorrelation{:x,:x}, ::Infinite;
      beta::Real = Inf, i::Int, j::Int,
      N_proxy::Int = 80, kwargs...) -> Float64

Connected static ⟨σˣ_i σˣ_j⟩_β,c in the thermodynamic limit, via the same OBC large-N proxy as SpinCorrelation{:x,:x}, Infinite().

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ConnectedSpinCorrelation{:x,:x}, bc::OBC;
      beta::Real = Inf, i::Int, j::Int, kwargs...) -> Float64

Connected static thermal transverse correlator ⟨σˣ_i σˣ_j⟩_β − ⟨σˣ_i⟩_β ⟨σˣ_j⟩_β for the OBC TFIM.

Unlike ConnectedSpinCorrelation{:z,:z} (where ⟨σᶻ⟩ = 0 by Z₂ on OBC and the connected and bare correlators coincide), ⟨σˣ⟩_β ≠ 0 in general — σˣ is the field-coupled order parameter and acquires a non-zero expectation Σ[2i-1, 2i] from the BdG-thermal covariance.

For i = j the on-site σˣ variance simplifies to 1 − ⟨σˣ_i⟩² since (σˣ)² = I.

Internals: a single 2N × 2N BdG diagonalisation gives both the σˣ expectation values (read off the covariance Σ) and, with the identity evolution R = I at t = 0, the 4×4 Pfaffian for ⟨σˣ_i σˣ_j⟩_β.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpinCorrelation{:x,:x}, ::Infinite;
      beta::Real = Inf, i::Int, j::Int,
      N_proxy::Int = 80, kwargs...) -> Float64

Static ⟨σˣ_i σˣ_j⟩_β in the thermodynamic limit, delivered as the OBC value at proxy size N_proxy (default 80) — same compromise as SusceptibilityZZ/ZZStructureFactor at Infinite(), see TFIM_zaxis.jl for the rationale.

The caller is responsible for picking bulk-friendly indices, e.g. N_proxy / 4 ≤ i, j ≤ 3 N_proxy / 4. At those interior sites the boundary contamination decays exponentially with the distance to the nearest edge in the gapped phase, and as 1/distance at criticality.

Raise N_proxy if more accuracy is needed; the cost is the single 2 N_proxy × 2 N_proxy BdG diagonalisation.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpinCorrelation{:x,:x}, bc::OBC;
      beta::Real = Inf, i::Int, j::Int, kwargs...) -> Float64

Static (equal-time) thermal transverse correlator ⟨σˣ_i σˣ_j⟩_β for the OBC TFIM at inverse temperature beta. beta = Inf (the default) gives the ground-state value.

Implementation: re-uses _sx_sx_corr(N, J, h, i, j, 0.0; β=beta) from TFIM_dynamics.jl — a 4×4 Pfaffian over the four Majoranas (γ_{2i-1}, γ_{2i}, γ_{2j-1}, γ_{2j}). The result is real at equal time, so the imaginary residue (round-off) is dropped via real(...).

At i = j, ⟨(σˣ)²⟩ = ⟨I⟩ = 1 regardless of (β, J, h).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::XXStructureFactor, ::Infinite;
      beta::Real, q::Real, N_proxy::Int = 80, kwargs...) -> Float64

Static transverse structure factor S_xx(q, β) in the thermodynamic limit, computed as the OBC large-N proxy at N_proxy = 80 (default, ~3-digit accuracy at moderate β in the gapped phase; raise N_proxy to tighten). Same convention and proxy strategy as the existing SusceptibilityZZ / ZZStructureFactor Infinite methods in TFIM_zaxis.jl.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::XXStructureFactor, bc::OBC; beta::Real, q::Real, kwargs...)
    -> Float64

Static transverse structure factor S_xx(q, β) for the OBC TFIM with N sites. Defined as (1/N) Σ_{i,j} e^{-iq(i-j)} ⟨σˣ_i σˣ_j⟩_β with σˣ correlators from the t = 0 slice of the free-fermion Pfaffian formula.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::YYStructureFactor, ::Infinite;
      beta::Real, q::Real, N_proxy::Int = 80, kwargs...) -> Float64

Static σʸ structure factor in the thermodynamic limit; OBC large-N proxy at N_proxy.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::ConnectedSpinCorrelation{:y,:y}, bc::OBC;
      beta=Inf, i, j) -> Float64

Connected thermal correlator ⟨σʸ_i σʸ_j⟩_β − ⟨σʸ_i⟩ ⟨σʸ_j⟩. Since ⟨σʸ⟩ = 0 in any Gaussian state of the TFIM (odd-Majorana product), the connected and static values coincide off-diagonal; the diagonal returns 1 - 0² = 1.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::DynamicalCorrelation{(:y, :y)}, bc::OBC;
      beta=Inf, i, j, t) -> ComplexF64

Real-time correlator ⟨σʸ_i(t) σʸ_j(0)⟩_β. Returns ComplexF64; the imaginary part is non-zero in general (Re part is even in t, Im part is odd in t — see the time-domain identity tests in test/identities/test_TFIM_dynamic_symmetries.jl).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::MagnetizationY, bc::OBC; beta) -> Float64

Per-site bulk magnetisation ⟨Σᵢ σʸᵢ⟩_β / N of the OBC TFIM. Identically zero in any Gaussian state because σʸ_i reduces to an odd product of Majoranas. Returned as exact 0.0 so callers can use it as a deterministic baseline against random-sample estimators that fluctuate around zero.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpinCorrelation{:y,:y}, bc::OBC;
      beta=Inf, i, j) -> Float64

Static thermal correlator ⟨σʸ_i σʸ_j⟩_β on the OBC TFIM. Equivalent to the t = 0 slice of DynamicalCorrelation(:y, :y), returned as Float64 (the imaginary part is round-off only at t = 0).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SusceptibilityYY, bc::OBC; beta) -> Float64

Per-site equal-time fluctuation χ_yy(β) = (β / N) · Σ_{i,j} ⟨σʸ_i σʸ_j⟩_β of the OBC TFIM. ⟨σʸ⟩ = 0 in this Gaussian state, so the variance form simplifies to (β/N) · ⟨M_y²⟩.

Implementation: per pair (i, j) evaluate the Pfaffian of the static Majorana Wick matrix. Diagonal contribution ⟨(σʸᵢ)²⟩ = 1 (Pauli identity) is added directly, off-diagonal twice (symmetric). Cost is O(N² · M³) with M = 2 max(i, j) − 1; same scaling as SusceptibilityXX OBC and _xx_uniform_susceptibility in TFIM_thermal.jl.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::CorrelationLength, ::Infinite; kwargs...) -> Float64

T = 0 correlation length of the infinite TFIM in the relativistic continuum convention (inverse mass gap),

ξ = 1 / (2|h - J|)        (gapped phase)
ξ = Inf                   (critical point h = J)

set by the lattice mass gap Δ = 2|h - J| via the universal IR relation ξ = 1/Δ (with v_F = 1 implicit; lattice units). Tracks MassGap at Infinite.

Convention note

Three legitimate conventions exist for the TFIM correlation length on the lattice; QAtlas exposes the first by default for consistency with MassGap:

ConventionFormulaOrigin
Inverse mass gap (this fetch)`1 / (2h - J
Pfeuty 1970 longitudinal1 / log(max(J,h) / min(J,h))lattice JW-fermion <σᶻσᶻ> decay exact
Sachdev lattice relativistic`min(J,h) /h - J

The three agree to leading order near criticality (|h - J| << max). For exact lattice decay of the longitudinal correlator at any (J, h), use the Pfeuty form externally.

In QAtlas convention ξ is dimensionless (in units of the lattice spacing).

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::MagnetizationZ, ::Infinite; kwargs...) -> Float64

Spontaneous longitudinal magnetisation per site of the infinite TFIM at T = 0, m_z = (1 - (h/J)²)^{1/8} for h < J, else 0 (Pfeuty 1970). Returns the positive branch of the Z₂-broken doublet.

The result is the T = 0 order parameter; the function does not take a beta kwarg because m_z(T > 0) = 0 for any finite chain in the thermodynamic limit (Mermin-Wagner is irrelevant in 1D, but the broken phase requires explicit symmetry breaking; m_z(T,h) ≠ 0 only at T = 0). Pass beta = Inf if you want to be explicit; it is ignored.

source
AbstractQAtlas.fetchMethod
fetch(model::TFIM, ::SpontaneousMagnetization, ::Infinite; kwargs...) -> Float64

Same value as fetch(::TFIM, ::MagnetizationZ, ::Infinite), exposed under the order-parameter name commonly used in the Pfeuty / 2D-Ising universality literature. The struct SpontaneousMagnetization is shared with IsingSquare (defined in src/models/classical/IsingSquare/IsingSquare.jl); this method adds the TFIM-at-Infinite branch.

source

<!– ATLAS:DOCS:END –>