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.
| Quantity | OBC | PBC | Infinite |
|---|---|---|---|
Energy {:total} | ✅ BdG | conversion | — |
Energy {:per_site} | conversion | ✅ BdG (NS+R) | ✅ closed-form |
FreeEnergy | ✅ | ✅ NS+R | ✅ |
ThermalEntropy | ✅ | ✅ NS+R | ✅ |
SpecificHeat | ✅ | ✅ NS+R | ✅ |
MagnetizationX | ✅ | ✅ NS+R | ✅ |
MagnetizationZ | 0 by Z₂ | — | ✅ Pfeuty $m_z = (1-(h/J)^2)^{1/8}$ |
SusceptibilityXX | ✅ variance | ✅ NS+R | ✅ Kubo (Calabrese-Mussardo) |
SusceptibilityZZ | ✅ Wick | — | ✅ N_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 | ✅ | — | — |
MagnetizationXLocal {:equilibrium} | ✅ | — | — |
MagnetizationXLocal {:quench} | ✅ | — | ✅ closed-form k-integral (#145) |
MagnetizationZLocal | ✅ | — | — |
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:
| BC | fetch argument | BdG size | Physical setting |
|---|---|---|---|
| OBC | OBC(N) | $2N \times 2N$ (numerical) | Open chain, $N$ sites, $N-1$ bonds |
| PBC | PBC(N) | parity-projected NS+R | Ring of $N$ sites, $N$ bonds |
| Infinite | Infinite() | $k$-integral | Thermodynamic 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
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)
| Quantity | Formula |
|---|---|
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) |
SusceptibilityZZ | OBC large-$N$ proxy via N_proxy kwarg |
ZZStructureFactor | static $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.667Source: 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>0Source: 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)\]
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 file | Method | What is checked |
|---|---|---|
test_tfim_gap_closure.jl | Dense ED via build_tfim | $E_0^{\text{ED}} = E_0^{\text{BdG}}$ for $N = 4, 6, 8$ |
test_universality_cross_check.jl | BdG 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\}$:
| Quantity | Formula | Type |
|---|---|---|
| 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 occupation | MagnetizationX |
| Susc. (XX) | Variance of $\sum_i \sigma^x_i$ (OBC); Kubo at Infinite | SusceptibilityXX |
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 file | Method | What is checked |
|---|---|---|
test_TFIM_thermal.jl | Dense ED ($N \leq 10$) | Exact match of $F$, $S$, $C_v$, $M_x$ vs. ED |
test_TFIM_pbc_thermal.jl | NS+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 file | Method | What is checked |
|---|---|---|
test_tfim_gap_closure.jl | Dense ED ($N = 4$–$12$) | Gap shrinks with $N$ at $h = J$ |
test_tfim_gap_closure.jl | ED | Ordered-phase gap is Z₂ tunneling ($< 10^{-3}$ for $N=6$) |
test_universality_cross_check.jl | BdG ($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 file | Method | What is checked |
|---|---|---|
test_TFIM_entanglement.jl | Peschel vs. full ED SVD | Machine-precision agreement for every $\ell$ at $N = 10$, three $(J, h)$ points |
test_TFIM_entanglement.jl | Peschel ($N = 100$) | Extracted $c \approx 0.5$ within 5% at criticality |
test_TFIM_entanglement.jl | Peschel | Symmetric $S(\ell) = S(N-\ell)$, area law away from criticality |
test_TFIM_renyi.jl | Peschel α-trace | Rényi $\alpha = 2, 3$ matches small-$N$ ED |
test_TFIM_cft_entanglement.jl | CC at Infinite | Critical T=0/T>0 and gapped T=0 closed forms vs. analytic |
test_entanglement_central_charge.jl | ED ($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 61 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.
| Quantity | BC | Assurance | Cards |
|---|---|---|---|
CentralCharge | Infinite | 🟢 corroborated-at-p | 5 |
ConformalTower | OBC | 🟠 uncorroborated-but-feasible | 0 |
ConformalTower | PBC | 🟠 uncorroborated-but-feasible | 0 |
CorrelationLength | Infinite | 🟢 corroborated-at-p | 3 |
CriticalExponents | Infinite | 🟠 uncorroborated-but-feasible | 0 |
Energy | Infinite | 🟢 corroborated-at-p | 12 |
Energy | OBC | 🟢 corroborated-at-p | 58 |
Energy | PBC | 🟢 corroborated-at-p | 16 |
EnergyLocal | OBC | 🟠 uncorroborated-but-feasible | 0 |
FidelitySusceptibility | Infinite | 🟢 corroborated-at-p | 2 |
FidelitySusceptibility | OBC | 🟢 corroborated-at-p | 9 |
FreeEnergy | Infinite | 🟢 corroborated-at-p | 9 |
FreeEnergy | OBC | 🟢 corroborated-at-p | 45 |
FreeEnergy | PBC | 🟢 corroborated-at-p | 30 |
GGEValue | Infinite | 🔵 coherent | 1 |
LiebRobinsonBound | Infinite | 🟠 uncorroborated-but-feasible | 0 |
LiebRobinsonVelocity | Infinite | 🟠 uncorroborated-but-feasible | 0 |
LoschmidtEcho | Infinite | 🟢 corroborated-at-p | 6 |
LoschmidtEcho | OBC | 🟢 corroborated-at-p | 12 |
MagnetizationX | Infinite | 🟢 corroborated-at-p | 6 |
MagnetizationX | OBC | 🟢 corroborated-at-p | 18 |
MagnetizationX | PBC | 🟢 corroborated-at-p | 18 |
MagnetizationXLocal | Infinite | 🔵 coherent | 2 |
MagnetizationXLocal | OBC | 🟠 uncorroborated-but-feasible | 0 |
MagnetizationY | OBC | 🟢 corroborated-at-p | 3 |
MagnetizationZ | Infinite | 🟢 corroborated-at-p | 5 |
MagnetizationZLocal | OBC | 🟠 uncorroborated-but-feasible | 0 |
MassGap | Infinite | 🟢 corroborated-at-p | 25 |
MassGap | OBC | 🟢 corroborated-at-p | 1 |
MassGap | PBC | 🟠 uncorroborated-but-feasible | 0 |
NMRRelaxationExponent | Infinite | 🟠 uncorroborated-but-feasible | 0 |
NMRSpinRelaxationRate | Infinite | 🟠 uncorroborated-but-feasible | 0 |
NMRSpinRelaxationRate | OBC | 🟠 uncorroborated-but-feasible | 0 |
RenyiEntropy | Infinite | 🟠 uncorroborated-but-feasible | 0 |
RenyiEntropy | OBC | 🟢 corroborated-at-p | 74 |
SpecificHeat | Infinite | 🔵 coherent | 7 |
SpecificHeat | OBC | 🟢 corroborated-at-p | 40 |
SpecificHeat | PBC | 🟢 corroborated-at-p | 18 |
SpontaneousMagnetization | Infinite | 🟢 corroborated-at-p | 7 |
SusceptibilityXX | Infinite | 🟠 uncorroborated-but-feasible | 0 |
SusceptibilityXX | OBC | 🟢 corroborated-at-p | 18 |
SusceptibilityXX | PBC | 🟢 corroborated-at-p | 12 |
SusceptibilityYY | OBC | 🟢 corroborated-at-p | 18 |
SusceptibilityZZ | Infinite | 🟠 uncorroborated-but-feasible | 0 |
SusceptibilityZZ | OBC | 🟢 corroborated-at-p | 18 |
ThermalEntropy | Infinite | 🔵 coherent | 11 |
ThermalEntropy | OBC | 🟢 corroborated-at-p | 41 |
ThermalEntropy | PBC | 🟢 corroborated-at-p | 15 |
UniversalityClass | Infinite | 🟠 uncorroborated-but-feasible | 0 |
VonNeumannEntropy | Infinite | 🟠 uncorroborated-but-feasible | 0 |
VonNeumannEntropy | OBC | 🟢 corroborated-at-p | 42 |
XXCorrelation | Infinite | 🟢 corroborated-at-p | 21 |
XXCorrelation | OBC | 🟢 corroborated-at-p | 1 |
XXStructureFactor | Infinite | 🔵 coherent | 14 |
XXStructureFactor | OBC | 🟢 corroborated-at-p | 27 |
YYCorrelation | OBC | 🟢 corroborated-at-p | 1 |
YYStructureFactor | Infinite | 🔵 coherent | 14 |
YYStructureFactor | OBC | 🟢 corroborated-at-p | 27 |
ZZCorrelation | OBC | 🟢 corroborated-at-p | 3 |
ZZStructureFactor | Infinite | 🔵 coherent | 14 |
ZZStructureFactor | OBC | 🔵 coherent | 24 |
<!– 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.TFIM — Type
TFIM(; J = 1.0, h = 1.0) <: AbstractQAtlasModelThe 1D transverse field Ising model with Hamiltonian
H = -J Σ_i σᶻ_i σᶻ_{i+1} - h Σ_i σˣ_iJ > 0 is ferromagnetic, h is the transverse field. The critical point sits at h = J.
Currently registered fetches:
| Quantity | BC | Coverage |
|---|---|---|
Energy | OBC / Infinite | Exact energy computed via BdG transformation |
SpecificHeat | Infinite | Specific heat at finite temperature |
FreeEnergy | Infinite | Free energy density at finite temperature |
ThermalEntropy | Infinite | Thermal entropy density at finite temperature |
UniversalityClass | Infinite | :Ising universality class at the critical point h = J (flows to :IsingSDRG under strong disorder) |
QAtlas.fetch — Method
fetch(model::TFIM, ::CentralCharge, ::Infinite) -> Float64Central charge of the TFIM:
c = 1/2at the critical pointh = J(Ising CFT)c = 0in 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.5QAtlas.fetch — Method
fetch(::TFIM, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTupleOnsager 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.
QAtlas.fetch — Method
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).
QAtlas.fetch — Method
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).
Nis read frombc.N(OBC(N)/OBC(; N)) or fromkwargs[: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)
QAtlas.fetch — Method
fetch(model::TFIM, ::EntanglementGrowthSlope, ::Infinite;
beta_eff::Real, kwargs...) -> Float64Linear-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.
QAtlas.fetch — Method
fetch(model::TFIM, ::LiebRobinsonBound, ::Infinite) -> Float64Lieb-Robinson velocity of the infinite-chain TFIM,
v_LR = 2 min(|J|, |h|),the slope of the causal cone bounding commutator spread. For the free-fermion TFIM this tight bound is saturated by the maximum group velocity max_k |dΛ/dk| of the Bogoliubov dispersion Λ(k) = 2√(J² + h² − 2 J h cos k). Registered with status=:bound.
(Lieb & Robinson 1972; Hastings & Koma 2006.)
QAtlas.fetch — Method
fetch(model::TFIM, ::LiebRobinsonVelocity, ::Infinite;
J=m.J, h=m.h) -> Float64Lieb-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).
QAtlas.fetch — Method
fetch(model::TFIM, ::MassGap, ::Infinite) -> Float64Mass 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)
QAtlas.fetch — Method
fetch(model::TFIM, ::MassGap, bc::OBC) -> Float64Single-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).
QAtlas.fetch — Method
fetch(model::TFIM, ::NMRRelaxationExponent, ::Infinite; kwargs...) -> Float64NMR 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.
QAtlas.fetch — Method
fetch(m::TFIM, ::BoundaryEntropy, ::Infinite;
h = m.h, J = m.J, boundary_state::Symbol, kwargs...) -> Float64Affleck-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).
QAtlas.fetch — Method
fetch(m::TFIM, ::EntanglementSaturationDensity, ::Infinite;
beta_eff::Real, h = m.h, J = m.J, kwargs...) -> Float64Long-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).
QAtlas.fetch — Method
fetch(m::TFIM, ::LogarithmicNegativity, ::Infinite;
ℓ_A::Real, ℓ_B::Real, kwargs...) -> Float64Calabrese-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).
QAtlas.fetch — Method
fetch(m::TFIM, ::MutualInformation, ::Infinite;
ℓ_A::Real, ℓ_B::Real, beta::Real=Inf, kwargs...) -> Float64Calabrese-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.
QAtlas.fetch — Method
fetch(model::TFIM, q::RenyiEntropy, ::Infinite;
ℓ::Int, beta::Real = Inf, kwargs...) -> Float64Calabrese-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.
QAtlas.fetch — Method
fetch(model::TFIM, ::VonNeumannEntropy{:equilibrium}, ::Infinite;
ℓ::Int, beta::Real = Inf, kwargs...) -> Float64Calabrese-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).
QAtlas.fetch — Method
fetch(model::TFIM, ::SusceptibilityZZ, bc::OBC;
beta::Float64) -> Float64Static uniform longitudinal (q = 0) susceptibility per site,
χ_zz(β) = (β/N) Σ_{i,j} ⟨σᶻ_i σᶻ_j⟩_β.QAtlas.fetch — Method
fetch(model::TFIM, ::XXCorrelation{:dynamic}, bc::OBC;
i::Int, j::Int, t::Float64, beta::Float64 = Inf) -> ComplexF64Exact ⟨σˣ_i(t) σˣ_j(0)⟩_β for the OBC TFIM.
QAtlas.fetch — Method
fetch(model::TFIM, ::ZZCorrelation{:connected}, bc::OBC;
beta::Float64, [i::Int, j::Int]) -> Matrix{Float64} or Float64Connected 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 MagnetizationZLocal and subtracted off — see the comment in the source.
QAtlas.fetch — Method
fetch(model::TFIM, ::ZZCorrelation{:dynamic}, bc::OBC;
i::Int, j::Int, t::Float64, beta::Float64 = Inf) -> ComplexF64Exact ⟨σᶻ_i(t) σᶻ_j(0)⟩_β for the OBC TFIM. beta = Inf (the default) gives the ground-state result. N comes from bc.N.
QAtlas.fetch — Method
fetch(model::TFIM, ::ZZCorrelation{:lightcone}, 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::ZZCorrelation{:static}, bc::OBC;
beta::Float64, [i::Int, j::Int]) -> Matrix{Float64} or Float64Static (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.
QAtlas.fetch — Method
fetch(model::TFIM, ::ZZStructureFactor, bc::OBC;
beta::Float64, q::Real) -> Float64Static structure factor S_zz(q, β) for the OBC TFIM at wave vector q.
QAtlas.fetch — Method
fetch(model::TFIM, q::RenyiEntropy, bc::OBC;
ℓ::Int, beta::Float64 = Inf, kwargs...) -> Float64Ré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.
QAtlas.fetch — Method
fetch(model::TFIM, ::VonNeumannEntropy{:equilibrium}, bc::OBC;
ℓ::Int, beta::Float64 = Inf, kwargs...) -> Float64Von Neumann entanglement entropy of the first ℓ spins 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.
N = _bc_size(bc, kwargs)(read fromOBC(N)or legacykwargs[:N]).ℓmust satisfy1 ≤ ℓ ≤ N - 1.- Cost is
O(ℓ³); for typicalN = 200, ℓ = 100this runs in a few milliseconds, whereas the full-ED SVD baseline scales asO(4^N).
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.
QAtlas.fetch — Method
fetch(model::TFIM, ::FidelitySusceptibility, ::Infinite;
rtol::Float64=1e-10, kwargs...) -> Float64Per-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, Int. J. Mod. Phys. B 24, 4371 (2010); Damski, PRB 87, 165101 (2013).
QAtlas.fetch — Method
fetch(model::TFIM, ::FidelitySusceptibility, bc::OBC;
per_site::Bool=false, kwargs...) -> Float64Ground-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, Int. J. Mod. Phys. B 24, 4371 (2010); Damski, PRB 87, 165101 (2013).
QAtlas.fetch — Method
fetch(model_f::TFIM, ::GGEValue{Energy{:per_site}}, ::Infinite;
initial::TFIM, kwargs...) -> Float64Per-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 throwsDomainError.
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.
QAtlas.fetch — Method
fetch(model_f::TFIM, ::GGEValue{MagnetizationX}, ::Infinite;
initial::TFIM, kwargs...) -> Float64GGE 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 shareJ).
References
See [fetch(::TFIM, ::GGEValue{Energy{:per_site}}, ::Infinite; ...)].
QAtlas.fetch — Method
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...)
-> Float64Longitudinal 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_susceptibilitypreviously exposed inTFIM_zaxis.jl(defaultN_proxy = 80).qis 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 asZZStructureFactor's dynamic branch.qis required on this branch;ArgumentErroris raised if absent.Default
N_proxy = 64,t_max = 20.0,dt = 0.1mirror the dynamicZZStructureFactorproxy 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.
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.
QAtlas.fetch — Method
fetch(model::TFIM, ::ZZStructureFactor, ::Infinite;
beta::Real, q::Real, ω::Union{Real,Nothing} = nothing,
N_proxy::Int = 64, t_max::Real = 20.0, dt::Real = 0.1, kwargs...)
-> Float64Longitudinal structure factor S_zz(q, [ω,] β) of the infinite TFIM. This router dispatches on ω:
ω === nothing(default) → staticS_zz(q, β), computed by the large-N OBC proxy_zz_static_structure_factor(defaultN_proxy = 80; same path as defined inTFIM_zaxis.jl).ω::Real→ dynamicS_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 spacingdtand(i, j)restricted to the central bulk window[N/4, 3N/4]of anN_proxy-site OBC chain.Default
N_proxy = 64,t_max = 20.0,dt = 0.1is 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.
QAtlas.tfim_quasiparticle_dispersion — Method
tfim_quasiparticle_dispersion(model::TFIM, k::Real) -> Float64Single-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 gapMassGapatInfinite.
QAtlas.tfim_two_spinon_dos — Method
tfim_two_spinon_dos(model::TFIM, ω::Real; q_total::Real = 0.0) -> Float64Two-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.
QAtlas.fetch — Method
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).
QAtlas.fetch — Method
fetch(model::TFIM, ::MagnetizationXLocal{:equilibrium}, 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::MagnetizationZLocal, 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.
QAtlas.fetch — Method
fetch(model_f::TFIM, ::LoschmidtEcho{:amplitude}, bc::OBC;
initial::TFIM, t::Real, kwargs...) -> Float64Loschmidt 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, PRL 110, 135704 (2013); Heyl, Rep. Prog. Phys. 81, 054001 (2018).
QAtlas.fetch — Method
fetch(model_f::TFIM, ::LoschmidtEcho{:rate}, ::Infinite;
initial::TFIM, t::Real, atol::Real=1e-10, rtol::Real=1e-8, kwargs...)
-> Float64Loschmidt 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, PRL 110, 135704 (2013); Heyl, Rep. Prog. Phys. 81, 054001 (2018).
QAtlas.fetch — Method
fetch(model_f::TFIM, ::LoschmidtEcho{:rate}, bc::OBC;
initial::TFIM, t::Real, kwargs...) -> Float64Loschmidt rate function λ(t) = -log L(t) / N for the OBC TFIM quench h_0 → h_f. See LoschmidtEcho.
QAtlas.fetch — Method
fetch(model::TFIM, ::Energy{:per_site}, bc::PBC; beta::Real, kwargs...) -> Float64Per-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).
QAtlas.fetch — Method
fetch(model::TFIM, ::MassGap, bc::PBC; kwargs...) -> Float64Lowest excitation energy of the N-site PBC TFIM. See _tfim_pbc_mass_gap for sector handling.
QAtlas.fetch — Method
fetch(model_f::TFIM, ::VonNeumannEntropy{:quench}, bc::OBC;
initial::TFIM, ℓ::Int, t::Real, kwargs...) -> Float64Post-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{:equilibrium} 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).
QAtlas.fetch — Method
fetch(model_f::TFIM, ::MagnetizationXLocal{:quench}, ::Infinite;
initial::TFIM, t::Real, kwargs...) -> Float64Translationally-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).
QAtlas.fetch — Method
fetch(model_f::TFIM, ::MagnetizationXLocal{:quench}, bc::OBC;
initial::TFIM, i::Int, t::Real, kwargs...) -> Float64Time-evolved local transverse magnetisation ⟨σˣ_i⟩(t) of the OBC TFIM after a sudden quench.
model_fis the post-quench model (setsh_f,J).initialis the pre-quench TFIM whose ground state|ψ_0⟩is the initial state. Both models must share the sameJ; mismatch raises anArgumentError(the quench is not defined for aJ → J'jump in the current implementation).i ∈ 1:N,t ∈ ℝ,Nfrombc.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).
QAtlas.fetch — Method
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).
QAtlas.fetch — Method
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.
QAtlas.fetch — Method
fetch(model::TFIM, ::MagnetizationX, ::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).
QAtlas.fetch — Method
fetch(model::TFIM, ::MagnetizationX, 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::NMRSpinRelaxationRate, ::Infinite; beta::Real, kwargs...)Per-site nmr_relaxation 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).
QAtlas.fetch — Method
fetch(model::TFIM, ::NMRSpinRelaxationRate, bc::OBC; beta::Real, kwargs...)Per-site nmr_relaxation of the OBC TFIM with N = bc.N sites at inverse temperature beta. Computed exactly via the BdG diagonalisation.
QAtlas.fetch — Method
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).
QAtlas.fetch — Method
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.
QAtlas.fetch — Method
fetch(model::TFIM, ::SusceptibilityXX, ::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).
QAtlas.fetch — Method
fetch(model::TFIM, ::SusceptibilityXX, 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.
QAtlas.fetch — Method
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).
QAtlas.fetch — Method
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.
QAtlas.fetch — Method
fetch(model::TFIM, ::XXCorrelation{:connected}, ::Infinite;
beta::Real = Inf, i::Int, j::Int,
N_proxy::Int = 80, kwargs...) -> Float64Connected static ⟨σˣ_i σˣ_j⟩_β,c in the thermodynamic limit, via the same OBC large-N proxy as XXCorrelation{:static}, Infinite().
QAtlas.fetch — Method
fetch(model::TFIM, ::XXCorrelation{:connected}, bc::OBC;
beta::Real = Inf, i::Int, j::Int, kwargs...) -> Float64Connected static thermal transverse correlator ⟨σˣ_i σˣ_j⟩_β − ⟨σˣ_i⟩_β ⟨σˣ_j⟩_β for the OBC TFIM.
Unlike ZZCorrelation{:connected} (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⟩_β.
QAtlas.fetch — Method
fetch(model::TFIM, ::XXCorrelation{:static}, ::Infinite;
beta::Real = Inf, i::Int, j::Int,
N_proxy::Int = 80, kwargs...) -> Float64Static ⟨σˣ_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.
QAtlas.fetch — Method
fetch(model::TFIM, ::XXCorrelation{:static}, bc::OBC;
beta::Real = Inf, i::Int, j::Int, kwargs...) -> Float64Static (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).
QAtlas.fetch — Method
fetch(model::TFIM, ::XXStructureFactor, ::Infinite;
beta::Real, q::Real, N_proxy::Int = 80, kwargs...) -> Float64Static 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::XXStructureFactor, bc::OBC; beta::Real, q::Real, kwargs...)
-> Float64Static 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::YYStructureFactor, ::Infinite;
beta::Real, q::Real, N_proxy::Int = 80, kwargs...) -> Float64Static σʸ structure factor in the thermodynamic limit; OBC large-N proxy at N_proxy.
QAtlas.fetch — Method
fetch(model::TFIM, ::YYStructureFactor, bc::OBC; beta::Real, q::Real, kwargs...)
-> Float64Static σʸ structure factor for the OBC TFIM. Companion of XXStructureFactor.
QAtlas.fetch — Method
fetch(model::TFIM, ::MagnetizationY, bc::OBC; beta) -> Float64Per-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.
QAtlas.fetch — Method
fetch(model::TFIM, ::SusceptibilityYY, bc::OBC; beta) -> Float64Per-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.
QAtlas.fetch — Method
fetch(model::TFIM, ::YYCorrelation{:connected}, bc::OBC;
beta=Inf, i, j) -> Float64Connected 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::YYCorrelation{:dynamic}, bc::OBC;
beta=Inf, i, j, t) -> ComplexF64Real-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).
QAtlas.fetch — Method
fetch(model::TFIM, ::YYCorrelation{:static}, bc::OBC;
beta=Inf, i, j) -> Float64Static thermal correlator ⟨σʸ_i σʸ_j⟩_β on the OBC TFIM. Equivalent to the t = 0 slice of YYCorrelation with mode = :dynamic, returned as Float64 (the imaginary part is round-off only at t = 0).
QAtlas.fetch — Method
fetch(model::TFIM, ::CorrelationLength, ::Infinite; kwargs...) -> Float64T = 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:
| Convention | Formula | Origin |
|---|---|---|
| Inverse mass gap (this fetch) | `1 / (2 | h - J |
| Pfeuty 1970 longitudinal | 1 / 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).
QAtlas.fetch — Method
fetch(model::TFIM, ::MagnetizationZ, ::Infinite; kwargs...) -> Float64Spontaneous 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.
QAtlas.fetch — Method
fetch(model::TFIM, ::SpontaneousMagnetization, ::Infinite; kwargs...) -> Float64Same 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.
<!– ATLAS:DOCS:END –>