QAtlas.jl
QAtlas (QUAntum Reference Table for Exact Tests) is a curated dictionary of rigorous results in quantum and statistical physics. Every stored value is traced to a specific publication and cross-validated against independent calculations.
What Makes QAtlas Different
Unlike typical numerical libraries, QAtlas focuses on authoritative reference values — exact analytical results, high-precision conformal bootstrap bounds, and Bethe ansatz solutions. Each value is accompanied by:
- Precise citation: author, year, journal, equation number
- Derivation sketch: enough to independently verify
- Cross-validation: tested against independent computation
- Connections: linked to universality classes and other models
Quick Start
using QAtlas
# Onsager critical temperature
Tc = QAtlas.fetch(IsingSquare(), CriticalTemperature())
# TFIM ground-state energy
E₀ = QAtlas.fetch(:TFIM, :energy, OBC(); N=16, J=1.0, h=0.5)
# 2D Ising universality: exact exponents (Rational)
e = QAtlas.fetch(Universality(:Ising), CriticalExponents(); d=2)
# (β = 1//8, ν = 1//1, γ = 7//4, η = 1//4, ...)Contents
Models
Exact solutions for specific physical models.
| Model | Type | Key Results | Page |
|---|---|---|---|
| TFIM | Quantum | Energy, gap, thermal observables, entanglement | → |
| IsingSquare | Classical | $Z$, $T_c$, $M(T)$ | → |
| IsingTriangular | Classical | Frustrated AFM ($T_c = 0$) + Wannier residual entropy; FM Houtappel | → |
| Heisenberg1D | Quantum | Dimer, 4-site PBC, Bethe $e_0$ | → |
| MajumdarGhosh | Quantum | Exact dimer GS at $J_2/J_1=1/2$, $E_0/N=-3J/8$ | → |
| XXZ1D | Quantum | Exact $\Delta \in \{-1, 0, 1\}$ + Luttinger $K, u$ | → |
| Honeycomb TB | Quantum | Bloch spectrum (honeycomb / graphene) | → |
| Kagome TB | Quantum | Flat band at $+2t$ | → |
| Lieb TB | Quantum | Flat band at $E = 0$ | → |
| Triangular TB | Quantum | Frustrated band $[-6t, +3t]$ | → |
Universality Classes
Critical exponents and scaling relations via Universality{C}.
| Class | Dimensions | Type | Page |
|---|---|---|---|
| Ising | $d = 2, 3, \geq 4$ | Exact / Bootstrap / MF | → |
| Percolation | $d = 2, 3, \geq 6$ | Exact / MC / MF | → |
| Potts ($q = 3, 4$) | $d = 2$ | Exact | → |
| KPZ | $1+1$D | Exact | → |
| XY / Heisenberg | $d = 2, 3, \geq 4$ | BKT / Bootstrap / MF | → |
| E8 | — | Exact mass ratios | → |
Verification
How QAtlas ensures physical correctness.
- Philosophy — three-layer testing strategy
- Cross-Checks — universality ↔ model connections
- Entanglement — central charge from $S(l)$
- Disordered Systems — IRFP, random singlet
Methods
Computational techniques used by QAtlas, with physical justification.
- Transfer Matrix
- Bloch Hamiltonian
- Exact Diagonalization
- Automatic Differentiation
- Calabrese-Cardy Formula
API Reference
QAtlas.REGISTRY — Constant
REGISTRY :: Vector{Implementation}Module-level mutable vector populated at include-time by @register calls scattered across src/models/.../<Model>_registry.jl files. Public read API: implementation_status.
QAtlas._MAX_ED_SITES — Constant
_MAX_ED_SITES = 12Hard cap on chain length for dense-ED helpers. 2^12 = 4096 → 4096×4096 Hermitian eigendecomposition takes ~1 s on a laptop; 2^14 ~ 16384 is already several seconds and 64 GB+ of workspace, which is past the "cheap reference data" regime this helper targets.
QAtlas._MAX_ED_SITES_S1 — Constant
_MAX_ED_SITES_S1 = 8Hard cap on chain length for spin-1 dense-ED helpers. 3⁸ = 6561 → a 6561×6561 Hermitian eigendecomposition is ~1 s on a laptop; 3⁹ ≈ 20 k already pushes 5 GB of workspace, past the "cheap reference" regime.
QAtlas.AKLT1D — Type
AKLT1D(; J::Real = 1.0) <: AbstractQAtlasModelSpin-1 bilinear-biquadratic chain at the AKLT point,
H = J Σᵢ [ Sᵢ · Sᵢ₊₁ + (1/3) (Sᵢ · Sᵢ₊₁)² ],with J > 0 antiferromagnetic. Same local Hilbert space as S1Heisenberg1D but with the biquadratic coefficient tuned to the special AKLT value 1/3 where the ground state is an exact Valence Bond Solid (VBS). The infinite-system observables exposed through fetch are closed-form (energy density, correlation length, string order parameter); the Haldane gap is the García-Saez–Murg–Verstraete (2013) DMRG numerical-exact value.
QAtlas.AKLT2D — Type
AKLT2D(; J::Real = 1.0) <: AbstractQAtlasModel2D honeycomb-lattice Affleck-Kennedy-Lieb-Tasaki (AKLT) spin-3/2 valence-bond-solid model. Frustration-free Hamiltonian whose unique gapped VBS ground state has exact energy density e0/N = 0 (J-independent); the 2D AKLT phase is the prototypical 2D symmetry-protected topological (SPT) state. See file header for full references.
QAtlas.AbstractModel — Type
const AbstractModel = AbstractQAtlasModelBackward-compatible alias. Existing downstream code dispatches on ::AbstractModel; new code should use ::AbstractQAtlasModel directly or — preferably — a concrete model struct.
QAtlas.AbstractQAtlasModel — Type
AbstractQAtlasModelAbstract parent type for every QAtlas model. Concrete subtypes carry their physics parameters as typed fields (e.g. struct TFIM <: AbstractQAtlasModel; J::Float64; h::Float64; end).
The older Model{S}(params::Dict) phantom-typed wrapper is still an AbstractQAtlasModel (via the deprecated alias below) but new models must use concrete structs.
QAtlas.AbstractQuantity — Type
AbstractQuantityAbstract parent type for quantities. New code defines concrete structs (e.g. struct MagnetizationX <: AbstractQuantity end) so dispatch is static and naming is explicit (axis, entropy variant, …). The older Quantity{S} phantom-type wrapper is retained for legacy symbol-based dispatch; see the Quantity(::Symbol) shim below.
QAtlas.AnyonStatistics — Type
AnyonStatistics() <: AbstractQuantityTopological data of the anyon content of a 2D topologically ordered phase. The dispatched fetch method takes a type::Symbol kwarg selecting an anyon (or a mutual-braiding row) and returns a NamedTuple whose shape depends on the requested row — typically (label, statistics, self_phase, quantum_dim, fusion) for individual anyons, and (label, mutual_phase, anyons) for two-anyon braids.
For Abelian theories like the toric code's Z₂ order all quantum dimensions are 1; for non-Abelian theories the schema is unchanged but quantum_dim becomes irrational and additional fields (e.g. F, R matrices) may be added by the implementing method.
Has no boundary-condition argument: anyon statistics are purely topological invariants.
QAtlas.BCFT — Type
BCFT() <: AbstractQAtlasModelBoundary Conformal Field Theory with Cardy (1989) boundary states and Affleck-Ludwig (1991) g-functions.
Phase 1 ships only Ising-CFT Cardy boundary states; other CFTs (minimal models, free boson, WZW, …) are tracked as Phase 2.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
ResidualEntropy | Infinite | analytic log g for Ising Cardy states |
The Cardy state is selected via the state keyword to fetch:
state=:fixed,:fixed_plus,:fixed_minus⟹g = 1/√2,log g = -log(2)/2(physical fixed-spin boundaries, ≡ (|1⟩ ± |ε⟩)/√2)state=:free⟹g = 1,log g = 0(physical free boundary, ≡ the |σ⟩ Cardy state)state=:sigma⟹g = 1,log g = 0(|σ⟩ Cardy state — alias of:free)state=:identity,:vacuum⟹g = 1/√2,log g = -log(2)/2(|1⟩ Cardy state)state=:epsilon,:energy⟹g = 1/√2,log g = -log(2)/2(|ε⟩ Cardy state)
References
- J. L. Cardy, Nucl. Phys. B 324, 581 (1989).
- I. Affleck, A. W. W. Ludwig, Phys. Rev. Lett. 67, 161 (1991).
- D. Friedan, A. Konechny, Phys. Rev. Lett. 93, 030402 (2004).
QAtlas.BoundaryCondition — Type
BoundaryConditionAbstract parent type. The three concrete subtypes carry system-size information where applicable, so fetch can read it from the BC instead of kwargs.
Infinite— thermodynamic limit; no size.PBC(N::Int)— periodic boundary conditions at finiteN.OBC(N::Int)— open boundary conditions at finiteN.
For backward compatibility, the zero-argument constructors PBC() and OBC() exist and set N = 0, which signals "caller will pass N via kwargs" — legacy fetch methods still look at kwargs[:N]. New fetch methods read bc.N directly.
QAtlas.CasimirEnergyCorrection — Type
CasimirEnergyCorrection() <: AbstractQuantityUniversal 1/L finite-size correction to the ground-state energy of a 1+1D conformal field theory.
For a critical 1+1D system with central charge c and CFT velocity v on a system of size L:
- Periodic boundary (PBC): $E_0(L) = L\,\varepsilon_\infty - \dfrac{\pi c v}{6 L} + O(L^{-2})$
- Open boundary (OBC): $E_0(L) = L\,\varepsilon_\infty + \varepsilon_{\mathrm{surf}} - \dfrac{\pi c v}{24 L} + O(L^{-2})$
This quantity returns only the universal $1/L$ correction term ($-\pi c v/(6 L)$ at PBC, $-\pi c v/(24 L)$ at OBC), not the extensive $L \varepsilon_\infty$ piece nor the OBC surface term $\varepsilon_{\mathrm{surf}}$. The PBC-to-OBC ratio is exactly 4, independent of the universality class.
The CFT velocity v is model-dependent (e.g. $v = 2J$ for the TFIM at the critical point, $v = (\pi/2) J$ for the AFM Heisenberg chain, $v = v_F$ for the XXZ Luttinger liquid) and is supplied by the caller as a kwarg. The central charge c is read from the universality class via the same data the Universality{C} entry exposes for CriticalExponents.
References
- J. Cardy, Nucl. Phys. B 270, 186 (1986).
- H. W. J. Blöte, J. L. Cardy, M. P. Nightingale, Phys. Rev. Lett. 56, 742 (1986).
- I. Affleck, Phys. Rev. Lett. 56, 746 (1986).
QAtlas.CentralCharge — Type
CentralCharge() <: AbstractQuantityCentral charge c of the emergent CFT. For 1D critical systems extracted from the Calabrese–Cardy entanglement formula; universality pages return literature values.
QAtlas.ChargeGap — Type
ChargeGap() <: AbstractQuantityCharge (Mott) gap of an electron system,
Δ_c = E₀(N+1) + E₀(N-1) - 2 E₀(N),i.e. the energy cost of adding a particle plus the cost of removing one, equivalent to the gap between the half-filled ground state and the lowest charged excitation. Strictly positive in a Mott insulator and exactly zero in a metal / superconductor.
Implemented analytically for Hubbard1D at half filling via the Lieb–Wu (1968) closed-form integral.
QAtlas.ChernSimons3D — Type
ChernSimons3D(; N::Integer = 2, k::Integer = 1) <: AbstractQAtlasModel3-D SU(N)k Chern-Simons TQFT (Witten 1989). N ≥ 2 is the gauge- group rank-plus-one and `k ∈ ℤ{>0}` is the (integer) Chern-Simons level.
Phase 1 exposed the boundary WZW central charge via the Sugawara construction. Phase 2 adds the closed-form S³ partition function Z(S³; SU(N)_k) = S_{0,0} (Witten 1989 / Verlinde formula). Wilson-loop knot invariants and modular S / T matrices remain tracked for later phases.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | analytic (Sugawara k(N²-1)/(k+N)) |
PartitionFunction | Infinite | analytic (Witten Z(S³) = modular S_{0,0}) |
References
- E. Witten, Comm. Math. Phys. 121, 351 (1989).
- V. G. Knizhnik, A. B. Zamolodchikov, Nucl. Phys. B 247, 83 (1984).
QAtlas.ChiralCondensate — Type
ChiralCondensate() <: AbstractQuantityVacuum expectation value ⟨ψ̄ψ⟩ of a fermion bilinear, signalling spontaneous (anomalous) chiral-symmetry breaking. The massless Schwinger model is the canonical 1+1-D example: even though the classical Lagrangian is chirally symmetric, the anomaly forces a non-zero condensate
⟨ψ̄ψ⟩ = − exp(γ_E) · e / (2π^{3/2}), m_γ = e/√π.(Schwinger 1962; Coleman-Jackiw-Susskind 1975.)
QAtlas.Cluster1D — Type
Cluster1D(; J::Real = 1.0) <: AbstractQAtlasModel1D Z₂×Z₂ symmetry-protected topological cluster Hamiltonian H = -J Σ_i σ^z_{i-1} σ^x_i σ^z_{i+1}. Ground state is the cluster state (Briegel-Raussendorf 2001).
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
Energy (:per_site) | Infinite | analytic (stabiliser ground state) |
MassGap | Infinite | analytic (single-stabiliser flip) |
References
- H. J. Briegel, R. Raussendorf, Phys. Rev. Lett. 86, 910 (2001).
- D. V. Else, S. D. Bartlett, A. C. Doherty, New J. Phys. 14, 113016 (2012).
- R. Verresen, R. Moessner, F. Pollmann, Phys. Rev. B 96, 165124 (2017).
QAtlas.Compass1D — Type
Compass1D(; J_x::Real = 1.0, J_y::Real = 1.0) <: AbstractQAtlasModel1D alternating-bond compass chain
H = -J_x Σ_{i odd} σ^x_i σ^x_{i+1}
-J_y Σ_{i even} σ^y_i σ^y_{i+1},with J_x, J_y > 0. Dual to a dimerised Kitaev / p-wave wire via Jordan–Wigner; exactly solvable.
Phase 1 scope (this release)
Phase 1 exposes the closed-form bulk gap only:
MassGapatInfinite()→Δ = 2 |J_x − J_y|.
The gap closes at the symmetric point J_x = J_y, which is a first-order quantum phase transition between the X-bond-dimerised and Y-bond-dimerised ground states (Brzezicki–Dziarmaga–Oleś 2007).
References
- Brzezicki–Dziarmaga–Oleś, PRB 75, 134415 (2007).
- Kugel–Khomskii, Sov. Phys. Usp. 25, 231 (1982).
- Kitaev, Annals of Physics 321, 2 (2006).
QAtlas.ConformalBootstrap — Type
ConformalBootstrap() <: AbstractQAtlasModelThe 3D Ising critical point with high-precision conformal-bootstrap scaling dimensions. Methodology: Kos-Poland-Simmons-Duffin 2014 (mixed-correlator bootstrap). Precise values: KPSD-Vichi 2016 "Precision Islands" (arXiv:1603.04436). Parameterless: the 3D Ising universality class is unique.
Phase 1 ships only the 3D Ising universality class; other bootstrap-pinned CFTs (O(N) vector models, stress-tensor and higher-spin multiplets, fermionic CFTs) are deferred to Phase 2.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
ConformalWeights | Infinite | bootstrap reference (KPSD 2016 islands) |
Available kwargs for ConformalWeights:
field = :σ— lowest scalar primary,Δ_σ = 0.51814894.field = :ε— lowest energy primary,Δ_ε = 1.41262528.
References
- F. Kos, D. Poland, D. Simmons-Duffin, JHEP 06 (2014) 091 — methodology (mixed-correlator bootstrap).
- F. Kos, D. Poland, D. Simmons-Duffin, A. Vichi, JHEP 08 (2016) 036; arXiv:1603.04436 — "Precision Islands", precise Δσ, Δε.
- D. Simmons-Duffin, JHEP 03 (2017) 086 — lightcone-bootstrap cross-check.
- M. Reehorst, S. Rychkov, D. Simmons-Duffin, B. Sirois, N. Su, B. van Rees, SciPost Phys. 11 (2021) 072.
QAtlas.ConformalWeights — Type
ConformalWeights() <: AbstractQuantityPrimary scaling dimension h of a 2D rational CFT. For Virasoro MinimalModel this is the Kac-table entry h_{r,s}; for WZWSU2 it is the SU(2)-spin label h_j = j(j+1)/(k+2).
Concrete model fetch methods take additional keyword arguments identifying the primary (r, s for MinimalModel; j for WZWSU2) and return an exact Rational{Int}.
QAtlas.CorrelationLength — Type
CorrelationLength() <: AbstractQuantityTwo-point correlation length ξ controlling the exponential decay of connected equal-time correlators in a gapped phase,
⟨σ_α(0) σ_α(r)⟩_c ~ e^{-r/ξ} (r → ∞).For a critical system ξ = ∞; implementations return Inf in that case. At T = 0 and 1D free-fermion models like TFIM, ξ is set by the inverse mass gap (ξ = 1/(2|h - J|)).
QAtlas.CriticalExponents — Type
CriticalExponents() <: AbstractQuantityStandard set of equilibrium critical exponents {α, β, γ, δ, ν, η} of a universality class. Returns a NamedTuple.
For exact values: fields are Rational{Int}. For numerical estimates: fields are Float64 with corresponding _err fields (e.g., β_err) giving the uncertainty.
QAtlas.CriticalTemperature — Type
CriticalTemperature() <: AbstractQuantityExact critical temperature of a classical model.
QAtlas.CurieWeissIsing — Type
CurieWeissIsing(; J::Real = 1.0, h::Real = 0.0) <: AbstractQAtlasModelClassical Ising model on the complete graph (mean field) with saddle-point Hamiltonian
H = -(J/N) Σ_{i<j} σ_i σ_j - h Σ_i σ_i.The 1/N normalisation makes the energy extensive and the thermodynamic limit well-defined. At h = 0 and J > 0 the model has zero-field critical temperature T_c = J and mean-field critical exponents (β, γ, δ, ν) = (1/2, 1, 3, 1/2) exposed by Universality(:MeanField).
For h ≠ 0 there is no sharp transition; the equilibrium magnetisation m*(β, J, h) is the unique stable root of the self-consistency equation m = tanh(β(Jm + h)) (same sign as h).
Quantities registered:
| Quantity | BC | Notes |
|---|---|---|
CriticalTemperature | Infinite | J (h = 0 reference) |
SpontaneousMagnetization | Infinite | h → 0⁺ limit (independent of model.h) |
CriticalExponents | Infinite | MeanField universality |
Energy{:per_site} | Infinite | -Jm²/2 - hm |
FreeEnergy | Infinite | Jm²/2 - β⁻¹ log[2 cosh(β(Jm+h))] |
ThermalEntropy | Infinite | log[2cosh(β(Jm+h))] - β(Jm+h)m |
SpecificHeat | Infinite | β²(Jm+h)²(1-m²)/(1-βJ(1-m²)) |
SusceptibilityZZ | Infinite | β(1-m²)/(1-βJ(1-m²)) |
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.DMIHeisenberg1D — Type
DMIHeisenberg1D(; J::Real = 1.0, D::Real = 0.0) <: AbstractQAtlasModelSpin-½ Heisenberg chain with Dzyaloshinskii-Moriya interaction along ẑ:
H = J Σ_i Sᵢ · Sᵢ₊₁ + D Σ_i (Sᵢˣ Sᵢ₊₁ʸ − Sᵢʸ Sᵢ₊₁ˣ), J > 0, D ∈ ℝ.Phase 1 implements only the closed-form D = 0 point (pure Heisenberg), delegating to Heisenberg1D. Generic D ≠ 0 introduces a spiral ground state via a gauge mapping to a twisted XXZ chain (Affleck- Oshikawa 1999); closed-form energy is technically Bethe-ansatz-tractable on the gauged model but is deferred to Phase 2, raising DomainError from fetch(..., Energy{:per_site}(), Infinite()).
The default constructor DMIHeisenberg1D() lands on J = 1, D = 0 — the Bethe-Hulthén point, the only Phase-1 closed-form case.
Fields
J::Float64— Heisenberg exchange (J > 0 antiferromagnetic).D::Float64— DM coupling along ẑ (any real).
References
- H. Bethe, Z. Physik 71, 205 (1931).
- L. Hulthén, Ark. Mat. Astron. Fys. 26A, No. 11 (1938).
- I. E. Dzyaloshinskii, J. Phys. Chem. Solids 4, 241 (1958).
- T. Moriya, Phys. Rev. 120, 91 (1960).
- I. Affleck, M. Oshikawa, Phys. Rev. B 60, 1038 (1999).
QAtlas.E8 — Type
E8() <: AbstractQAtlasModelThe E8 integrable field theory — the low-energy continuum theory of the 2D Ising model perturbed by a small longitudinal magnetic field at T = T_c (Zamolodchikov 1989). The only physics parameter is the underlying magnetic field perturbation strength, but QAtlas currently only exposes the universal mass-ratio spectrum, so this struct carries no fields.
QAtlas.E8Spectrum — Type
E8Spectrum() <: AbstractQuantityZamolodchikov E8 mass spectrum (8 stable particles). Concrete implementation lives in src/universalities/E8.jl; the type is defined here so src/core/alias.jl can reference it without circular loads.
QAtlas.EdgeModeEnergy — Type
EdgeModeEnergy() <: AbstractQuantityEnergy of the lowest-lying boundary mode on an open chain. In a topological 1D superconductor (Kitaev 2001) the OBC chain hosts two Majorana zero modes at the chain ends; their hybridization energy decays exponentially with chain length,
\[E_\text{edge}(N) \sim e^{-N/\xi},\]
where ξ is the bulk correlation length. In the trivial phase the OBC lowest single-particle excitation is set by the bulk gap.
EdgeModeEnergy is the smallest positive BdG eigenvalue of the OBC chain — the same quantity as MassGap at OBC, exposed under a name that makes the boundary-mode interpretation explicit at the call site.
Currently used by Kitaev1D.
QAtlas.Energy — Type
Energy{G}() <: AbstractQuantity
Energy() # G = :natural — model-and-BC-natural granularity
Energy(:total) # explicit ⟨H⟩
Energy(:per_site) # explicit ⟨H⟩ / NGround-state / thermal energy expectation. The type parameter G makes the granularity (total vs per-site) a dispatch axis instead of a hidden docstring contract.
Energy() resolves to the model's native granularity via the native_energy_granularity trait — keeping every existing fetch(model, Energy(), bc; ...) call site working unchanged. Use the explicit constructors when the caller needs a specific granularity (e.g. the thermodynamic-identity harness comparing f + T·s against per-site ε).
The non-native granularity is provided automatically by a generic conversion fallback for 1D BCs (OBC / PBC) that uses _bc_size. Models on lattices whose size is not captured by bc.N (e.g. 2D Kitaev with Lx, Ly kwargs) currently support only their declared native granularity.
QAtlas.EnergyLocal — Type
EnergyLocal() <: AbstractQuantityBond-resolved energy density vector, length N_bulk − 1 for a bond Hamiltonian Σ_b h_b.
QAtlas.ExactSpectrum — Type
ExactSpectrumDispatch tag for the full sorted eigenvalue spectrum of a finite model.
QAtlas.ExtendedHubbard1D — Type
ExtendedHubbard1D(; t::Real = 1.0, U::Real = 4.0, V::Real = 0.0)
<: AbstractQAtlasModel1D t-U-V Hubbard chain (nearest-neighbour-density extension of the standard Hubbard model):
H = -t Σ_{i, σ} (c†_{i,σ} c_{i+1,σ} + h.c.)
+ U Σ_i n_{i,↑} n_{i,↓}
+ V Σ_i n_i n_{i+1}.Convention: t > 0 hopping, U on-site, V nearest-neighbour density-density.
Phase 1 scope (this release)
Phase 1 exposes only the V = 0 limit, at which the model reduces to the standard 1D Hubbard chain. The ChargeGap at Infinite() is delegated to Hubbard1D at half filling (μ = U/2), i.e. the Lieb–Wu (1968) integral
Δ_c = (16 t² / U) ∫_1^∞ dω √(ω² - 1) / sinh(2π t ω / U).Any V ≠ 0 raises DomainError. The V ≠ 0 phase diagram (CDW / SDW / BOW / phase separation, Voit 1995; Nakamura 2000) is deferred to Phase 2.
References
- Lieb, Wu, Phys. Rev. Lett. 20, 1445 (1968).
- Voit, Rep. Prog. Phys. 58, 977 (1995).
- Nakamura, Phys. Rev. B 61, 16377 (2000).
QAtlas.FermiVelocity — Type
FermiVelocity() <: AbstractQuantityFermi velocity v_F = ∂ε/∂k |_{k_F}. Meaningful for non-interacting / mean-field fermionic band structures (tight-binding lattices, Bogoliubov-de Gennes diagonalisations). In QAtlas this is the type returned by models like Honeycomb (at the Dirac cones), the other tight-binding lattices, and the TFIM Majorana mode at the critical field.
QAtlas.FibonacciAnyons — Type
FibonacciAnyons <: AbstractQAtlasModelNon-Abelian Fibonacci anyon model.
The anyon spectrum has two charges {1, τ} with the fusion rule
τ × τ = 1 + τand quantum dimensions
d_1 = 1, d_τ = φ = (1 + √5)/2 (golden ratio).Total quantum dimension
𝒟 = √(d_1² + d_τ²) = √(1 + φ²) = √(φ + 2)(using φ² = φ + 1).
Fibonacci anyons are universal for topological quantum computation (Freedman-Kitaev-Larsen-Wang 2003) and arise as edge excitations of the Read-Rezayi Z_3 parafermion state (Read-Rezayi 1999).
This model has no continuous parameters — the spectrum and quantum dimensions are fixed by the fusion rules.
References
- M. Freedman, A. Kitaev, M. Larsen, Z. Wang, Bull. Amer. Math. Soc. 40, 31 (2003).
- N. Read, E. Rezayi, Phys. Rev. B 59, 8084 (1999).
- A. Kitaev, J. Preskill, Phys. Rev. Lett. 96, 110404 (2006).
- M. Levin, X.-G. Wen, Phys. Rev. Lett. 96, 110405 (2006).
QAtlas.FidelitySusceptibility — Type
FidelitySusceptibility() <: AbstractQuantityFidelity susceptibility χ_F(λ) = −∂²⟨ψ(λ)|ψ(λ + δλ)⟩/∂δλ².
QAtlas.FractalDimension — Type
FractalDimension() <: AbstractQuantityHausdorff dimension d_H of the random geometric set associated with a model — e.g. the SLEκ curve's `dH(κ) = min(2, 1 + κ/8)` (Beffara 2008). Real-valued, dimensionless, capped at the ambient space dimension.
QAtlas.FreeEnergy — Type
FreeEnergy() <: AbstractQuantityHelmholtz free energy per site, f = -β⁻¹ log Z / N.
QAtlas.GGEValue — Type
GGEValue{Q<:AbstractQuantity}(inner) <: AbstractQuantityWrapper quantity carrying an underlying observable inner::Q whose generalised Gibbs ensemble (GGE) stationary value is to be computed — i.e. the t → ∞ long-time average that an integrable (free-fermion) quench reaches.
For an integrable system the ordinary (canonical) Gibbs ensemble does not describe the long-time relaxed state: every mode-occupation n_k = ⟨c_k† c_k⟩ is a separate conserved quantity, so the diagonal ensemble is a generalised Gibbs ensemble fixed by the full distribution {n_k}. See Rigol et al. PRL 98, 050405 (2007) for the foundational argument and Calabrese, Essler, Fagotti J. Stat. Mech. (2012) P07016 / P07022 for the TFIM-specific closed-form expressions.
fetch(model_f, ::GGEValue{Q}, bc; initial::ModelType, kwargs...) returns the GGE expectation of the Q observable in the post-quench Hamiltonian model_f, with the conserved mode occupations frozen by the initial-state (initial) Bogoliubov rotation.
Construction
GGEValue(Energy()) # ⟨H_f⟩ stationary value
GGEValue(MagnetizationX()) # ⟨σˣ⟩ stationary valueFetch signature (TFIM)
fetch(TFIM(h = h_f), GGEValue(Energy()), Infinite();
initial = TFIM(h = h_0)) -> Float64A no-quench limit h_0 = h_f reduces to the static ground-state value of the inner observable.
QAtlas.Graphene — Type
const Graphene = HoneycombBackward-compatible alias for Honeycomb. New code should prefer the lattice-named model.
QAtlas.GrossNeveu — Type
GrossNeveu(; N::Integer = 1, g::Real = 0.0) <: AbstractQAtlasModel1+1-D Gross-Neveu model (Gross-Neveu 1974) with N Dirac flavours (equivalently O(2N) Majorana symmetry) and four-fermion coupling g ∈ ℝ. Asymptotically free for N ≥ 1.
Phase 1 registered the UV free-fermion central charge at g = 0. Phase 2 (#247) adds the large-N dynamical mass m_F = Λ exp(-π/(N g²)) via MassGap. Andrei-Lowenstein exact S-matrix and the chiral condensate remain tracked as Phase 3.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | analytic (c = N at the free point) |
MassGap | Infinite | analytic (Λ exp(-π/(N g²)), large-N) |
References
- D. J. Gross, A. Neveu, Phys. Rev. D 10, 3235 (1974).
- N. Andrei, J. H. Lowenstein, Phys. Rev. Lett. 43, 1698 (1979).
QAtlas.GroundStateDegeneracy — Type
GroundStateDegeneracy() <: AbstractQuantityDimension of the ground-state subspace as an Int. In topologically ordered phases this is a robust, lattice-independent invariant determined by the ambient surface (e.g. 4^g on a closed orientable genus-g surface for the toric code) and is set by the kwarg genus on the fetch call. Trivially 1 for any gapped, symmetry-unbroken phase.
QAtlas.GroundStateEnergyDensity — Type
GroundStateEnergyDensityDispatch tag for the ground-state energy per site in the thermodynamic limit (N → ∞).
QAtlas.GrowthExponents — Type
GrowthExponents() <: AbstractQuantityKPZ-type growth / roughness / dynamic exponents. Returns (β_growth, α_rough, z) instead of the equilibrium set.
QAtlas.Heisenberg1D — Type
Heisenberg1DDispatch tag for the spin-1/2 antiferromagnetic Heisenberg model on a 1D chain (or more generally any finite spin-1/2 cluster). Hamiltonian:
H = J Σ_{⟨i,j⟩} S_i · S_j, spin-1/2, J > 0 antiferromagneticQAtlas.HeisenbergXYZ — Type
HeisenbergXYZ(; Jx::Real = 1.0, Jy::Real = 1.0, Jz::Real = 1.0)
<: AbstractQAtlasModelSpin-½ XYZ chain with three independent exchange couplings
H = Σ_i [ Jx Sˣᵢ Sˣᵢ₊₁ + Jy Sʸᵢ Sʸᵢ₊₁ + Jz Sᶻᵢ Sᶻᵢ₊₁ ].Most-general 1-D nearest-neighbour spin-½ integrable model (Baxter 1972). This release exposes only the axis-aligned reductions Jx = Jy by delegating to the existing XXZ1D machinery:
HeisenbergXYZ(Jx = J, Jy = J, Jz) ≡ XXZ1D(J = J, Δ = Jz / J).General XYZ ground-state energy (Baxter elliptic Bethe ansatz) is tracked as a follow-up phase and raises DomainError here.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
Energy (:per_site) | Infinite | delegated to XXZ1D |
References
- R. J. Baxter, Annals Phys. 70, 193 (1972).
- L. D. Faddeev, L. A. Takhtajan, J. Soviet Math. 24, 241 (1984).
QAtlas.Honeycomb — Type
Honeycomb(; t::Real = 1.0, Lx::Int = 0, Ly::Int = 0) <: AbstractQAtlasModelNearest-neighbor tight-binding model on the honeycomb lattice (spinless, single-orbital) — historically known as graphene.
Hamiltonian: H = -t Σ_{⟨i,j⟩} (c†_i c_j + h.c.).
Fields:
t— nearest-neighbor hopping amplitude (default1.0).Lx,Ly— unit-cell counts in the two lattice directions.0is a sentinel meaning "caller passes via kwargs at fetch time".
For backward compatibility with the pre-v0.13 call form fetch(Graphene(), TightBindingSpectrum(); Lx, Ly, t=…), the fetch method still accepts Lx, Ly, t as kwargs (they override the struct fields when supplied). The legacy name Graphene is retained as a type alias in src/deprecate/legacy_honeycomb.jl.
QAtlas.Hubbard1D — Type
Hubbard1D(; t::Real = 1.0, U::Real = 4.0, μ::Real = 2.0) <: AbstractQAtlasModel1D Hubbard model
H = -t Σ_{i, σ} (c†_{i,σ} c_{i+1,σ} + h.c.)
+ U Σ_i n_{i,↑} n_{i,↓}
- μ Σ_i n_iConvention: t > 0 hopping, U > 0 on-site repulsion. Half filling corresponds to μ = U/2 (particle-hole-symmetric point).
Phase 1 scope (this release)
Phase 1 implements the Lieb–Wu (1968) closed-form integrals at half filling only (μ = U/2). The supported Infinite() quantities are
GroundStateEnergyDensity—E₀/Nvia the Lieb–Wu integral,ChargeGap— Mott gapΔ_cvia the Lieb–Wu second integral,SpinGap—0exactly (rigorous gapless-spinon result).
Off half filling raises a DomainError — the general-filling (coupled-integral-equation) and finite-temperature (QTM) surfaces are deferred to Phase 2.
QAtlas.Implementation — Type
ImplementationA single (model, quantity, bc) row of the QAtlas implementation registry. See @register for how rows are added and implementation_status for how to query them.
QAtlas.Infinite — Type
Infinite()Thermodynamic-limit boundary condition — no finite size.
QAtlas.Ising2D — Type
Ising2D <: AbstractQAtlasModelDispatch tag for the two-dimensional Ising universality class. Acts as a convenience wrapper over Universality(:Ising) with the dimension pinned to d = 2, so call sites do not have to repeat d = 2 on every fetch:
QAtlas.fetch(Ising2D(), CriticalExponents())
# ≡ QAtlas.fetch(Universality(:Ising), CriticalExponents(); d = 2)The struct is kept as a distinct nominal type (rather than const Ising2D = Universality{:Ising}) because the d kwarg is fixed at 2 here — a type-level const alias would defeat that fix. Subtyped to AbstractQAtlasModel so it composes with the canonical fetch(::AbstractQAtlasModel, ::AbstractQuantity, ::BoundaryCondition) signature.
See also: Universality, CriticalExponents.
QAtlas.IsingChain1D — Type
IsingChain1D(; J::Real = 1.0, h::Real = 0.0) <: AbstractQAtlasModelClassical 1-D Ising chain with nearest-neighbour exchange J and uniform longitudinal field h:
H = -J Σ_i σ_i σ_{i+1} - h Σ_i σ_i, σ_i ∈ {-1, +1}.Solved exactly by the 2×2 transfer matrix (Ising 1925) with eigenvalues
λ_± = e^{β J} cosh(β h) ± √( e^{2 β J} sinh²(β h) + e^{-2 β J} ).There is no finite-temperature phase transition.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
CriticalTemperature | Infinite | analytic |
FreeEnergy | Infinite | analytic |
CorrelationLength | Infinite | analytic |
References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.IsingSquare — Type
IsingSquare(; J::Real = 1.0, Lx::Int = 0, Ly::Int = 0) <: AbstractQAtlasModelClassical 2D Ising model on a square lattice with periodic boundary conditions (PBC) in both directions.
Hamiltonian: H = -J Σ_{⟨i,j⟩} σᵢ σⱼ, σᵢ ∈ {-1, +1}.
Physics parameters are carried as typed struct fields:
J— Ising coupling (default1.0,J > 0ferromagnetic).Lx,Ly— lattice extents.0is a legacy sentinel meaning "thermodynamic limit / unspecified"; finite-size quantities likePartitionFunctionrequire both to be positive.
For backward compatibility the fetch methods accept Lx, Ly, J, β as kwargs too — kwargs override the struct fields when both are supplied.
See also: PartitionFunction, CriticalTemperature, SpontaneousMagnetization.
QAtlas.IsingTriangular — Type
IsingTriangular(; J::Real = 1.0) <: AbstractQAtlasModelClassical 2D Ising model on the triangular lattice with the Wannier 1950 sign convention
H = +J Σ_{⟨i,j⟩} σ_i σ_j, σ_i ∈ {-1, +1}.The coupling sign determines the physics:
J > 0— antiferromagnetic, frustrated. The triangular plaquette cannot satisfy all three antiferromagnetic bonds simultaneously, so the ground-state manifold is macroscopically degenerate and there is no long-range order at any $T > 0$ (Wannier 1950).J < 0— ferromagnetic. The lattice supports a standard order-disorder transition at $T_c = 4|J| / \ln 3$ (Houtappel 1950).J = 0— non-interacting; degenerate value preserved for symmetry.
Quantities currently registered for this model:
| Quantity | BC | Method |
|---|---|---|
CriticalTemperature | Infinite | analytic |
ResidualEntropy | Infinite | analytic (QuadGK) |
IsingTriangular uses the Wannier 1950 convention H = +J Σ σσ, so J > 0 means antiferromagnetic (frustrated). By contrast, IsingSquare uses the modern H = -J Σ σσ convention where J > 0 means ferromagnetic. Passing the same numerical value of J to the two models therefore selects opposite physics. To keep the user-facing critical-temperature comparison meaningful: IsingSquare(J=1.0) (FM) ↔ IsingTriangular(J=-1.0) (FM).
See also: IsingSquare for the square-lattice (non-frustrated) counterpart with the Onsager / Yang closed forms.
QAtlas.J1J2Heisenberg1D — Type
J1J2Heisenberg1D(; J1::Real = 1.0, J2::Real = 0.5) <: AbstractQAtlasModelSpin-½ J₁-J₂ Heisenberg chain:
H = J₁ Σ_i Sᵢ · Sᵢ₊₁ + J₂ Σ_i Sᵢ · Sᵢ₊₂, J₁ > 0, J₂ ≥ 0.Define the frustration ratio j = J₂ / J₁. Phase 1 implements only the two closed-form points:
j = 0→ Bethe-HulthénE/N = J₁ (1/4 − ln 2),j = 1/2→ Majumdar-GhoshE/N = −3 J₁ / 8.
Generic j (0 < j < ∞, j ∉ {0, 1/2}) requires DMRG; deferred to Phase 2, raises DomainError from fetch(..., Energy{:per_site}(), Infinite()).
The default constructor J1J2Heisenberg1D() lands on J₁ = 1, J₂ = 1/2 — the Majumdar-Ghosh point, the most physically interesting closed-form case.
Fields
J1::Float64— nearest-neighbour antiferromagnetic exchange (J₁ > 0).J2::Float64— next-nearest-neighbour exchange (J₂ ≥ 0).
References
- H. Bethe, Z. Physik 71, 205 (1931).
- L. Hulthén, Ark. Mat. Astron. Fys. 26A, No. 11 (1938).
- C. K. Majumdar, D. K. Ghosh, J. Math. Phys. 10, 1388 (1969).
- S. R. White, I. Affleck, Phys. Rev. B 54, 9862 (1996).
QAtlas.KPZ1D — Type
KPZ1D <: AbstractQAtlasModelDispatch tag for the 1+1-dimensional KPZ (Kardar–Parisi–Zhang) universality class. Acts as a convenience wrapper over Universality(:KPZ) with the dimension pinned to d = 1:
QAtlas.fetch(KPZ1D(), CriticalExponents())
# ≡ QAtlas.fetch(Universality(:KPZ), GrowthExponents(); d = 1)The struct is kept as a distinct nominal type (rather than const KPZ1D = Universality{:KPZ}) because the dimension is fixed here — a type-level alias would defeat that fix. Subtyped to AbstractQAtlasModel so dispatch composes with the canonical fetch(::AbstractQAtlasModel, ::AbstractQuantity, ::BoundaryCondition) signature.
See also: Universality, GrowthExponents.
QAtlas.Kagome — Type
KagomeDispatch tag for the nearest-neighbor tight-binding model on the kagome lattice (spinless, single-orbital, three sublattices).
Hamiltonian: H = -t Σ{⟨i,j⟩} (c†i c_j + h.c.)
The spectrum exhibits a dispersionless flat band at E = +2t touching the lower dispersive bands at the Γ-point.
QAtlas.KagomeHeisenbergAFM — Type
KagomeHeisenbergAFM(; J::Real = 1.0) <: AbstractQAtlasModelSpin-½ Heisenberg antiferromagnet on the Kagome lattice (highly frustrated, quantum spin liquid candidate).
Quantities registered (Phase 1, DMRG reference values):
| Quantity | BC | Method |
|---|---|---|
Energy (:per_site) | Infinite | DMRG (Yan-Huse-White 2011) |
MassGap | Infinite | DMRG (gapped Z₂ spin liquid) |
Both registered with reliability :medium (different methods — DMRG vs variational Monte Carlo — give slightly different gap estimates; the precise spin-liquid character is an open question).
References
- S. Yan, D. A. Huse, S. R. White, Science 332, 1173 (2011).
- S. Depenbrock, I. P. McCulloch, U. Schollwöck, Phys. Rev. Lett. 109, 067201 (2012).
- Y. Iqbal, F. Becca, S. Sorella, D. Poilblanc, Phys. Rev. B 87, 060405(R) (2013).
QAtlas.Kitaev1D — Type
Kitaev1D(; μ = 0.0, t = 1.0, Δ = 1.0) <: AbstractQAtlasModelKitaev (2001) one-dimensional p-wave superconducting wire,
\[H = -\mu \sum_i c_i^{\dagger} c_i - t \sum_i (c_i^{\dagger} c_{i+1} + \text{h.c.}) + \Delta \sum_i (c_i c_{i+1} + \text{h.c.}).\]
μ is the chemical potential, t the hopping, Δ the p-wave pairing. |μ| < 2|t| is the topological phase (Majorana edge modes); |μ| > 2|t| is the trivial phase; |μ| = 2|t| is the gapless critical line.
This is the 1D Majorana wire and is distinct from the 2D KitaevHoneycomb spin model.
The TFIM is a special case (μ = -2h, t = J, Δ = J); the BdG spectrum of Kitaev1D(μ=-2h, t=J, Δ=J) agrees exactly with that of TFIM(J=J, h=h) at OBC.
QAtlas.KitaevHeisenberg — Type
KitaevHeisenberg(; K::Real = 1.0, J::Real = 0.0, Γ::Real = 0.0)
<: AbstractQAtlasModelK-J-Γ honeycomb model (α-RuCl₃ family). Three independent exchanges on the three honeycomb bond directions:
H = Σ_{⟨ij⟩_γ} [ K Sᵢ^γ Sⱼ^γ + J Sᵢ · Sⱼ + Γ (Sᵢ^α Sⱼ^β + Sᵢ^β Sⱼ^α) ].Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | delegated to KitaevHoneycomb (K=K) |
Phase 1 exposes only the K-only limit J = Γ = 0, delegated to the existing exactly-solvable KitaevHoneycomb entry. Any non-zero J or Γ raises DomainError pointing to the DMRG / ED phase-2 follow-up.
References
- A. Kitaev, Annals Phys. 321, 2 (2006).
- G. Jackeli, G. Khaliullin, Phys. Rev. Lett. 102, 017205 (2009).
- J. G. Rau, E. K.-H. Lee, H.-Y. Kee, Phys. Rev. Lett. 112, 077204 (2014).
QAtlas.KitaevHoneycomb — Type
KitaevHoneycomb(; Kx=1.0, Ky=1.0, Kz=1.0) <: AbstractQAtlasModelKitaev honeycomb model with coupling amplitudes on the three bond types. Kx = Ky = Kz is the isotropic gapless point. See module header for the full Hamiltonian and solution outline.
QAtlas.Lieb — Type
LiebDispatch tag for the nearest-neighbor tight-binding model on the Lieb (line-centred square) lattice (spinless, single-orbital, three sublattices). Hamiltonian:
H = -t Σ_{⟨i,j⟩} (c†_i c_j + h.c.)The spectrum contains a dispersionless flat band at E = 0 for every momentum, with an additional three-fold band touching at the M-point.
QAtlas.LiouvilleCFT — Type
LiouvilleCFT(; b::Real = 1.0) <: AbstractQAtlasModelNon-compact Liouville CFT (Polyakov 1981) at coupling b > 0. The canonical self-dual point b = 1 (background charge Q = 2, c = 25) is used as the default. The b ↔ 1/b self-duality leaves both Q and c invariant.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | analytic (c = 1 + 6Q²) |
ConformalWeights | Infinite | analytic (Δ_α = α(Q − α)) |
References
- A. M. Polyakov, Phys. Lett. B 103, 207 (1981).
- H. Dorn, H.-J. Otto, Nucl. Phys. B 429, 375 (1994).
- A. B. Zamolodchikov, A. B. Zamolodchikov, Nucl. Phys. B 477, 577 (1996).
QAtlas.LogarithmicCFT — Type
LogarithmicCFT <: AbstractQAtlasModelThe c = 0 logarithmic conformal field theory describing the universality class of self-avoiding polymers (Saleur 1992), critical percolation (Cardy 2001), and dilute / dense polymer phases.
The theory is logarithmic because the dilatation operator L_0 admits indecomposable (non-diagonalisable) Jordan blocks — pairs of primary fields share scaling dimensions but mix under conformal transformations, producing logarithms in correlation functions. The total central charge identically vanishes, yet the theory is non-trivial (Pearce-Rasmussen-Zuber 2006; Vasseur-Jacobsen-Saleur 2011).
Phase 1 exposes only CentralCharge = 0. Logarithmic-operator structure, indecomposable representations, and specific β-coupling parametrisations are deferred to Phase 2.
QAtlas.LongRangeIsing1D — Type
LongRangeIsing1D(; J::Real = 1.0, h::Real = 1.0, α::Real = Inf)
<: AbstractQAtlasModel1D transverse-field Ising chain with power-law-decaying couplings:
H = -J Σ_{i<j} σᶻᵢ σᶻⱼ / |i-j|^α - h Σᵢ σˣᵢ.J > 0 (ferromagnetic), h > 0 (transverse field), α > 0 (decay exponent). The default α = Inf sits at the nearest-neighbour TFIM point, for which the gap is known in closed form.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | delegated to TFIM at α = Inf |
Any finite α raises DomainError — Phase 2 will add DMRG / VMC support for the long-range phase diagram (Koffel-Lewenstein-Tagliacozzo 2012, Gong-Foss-Feig-Michalakis-Gorshkov 2014).
References
- P. Pfeuty, Annals Phys. 57, 79 (1970).
- L. Koffel, M. Lewenstein, L. Tagliacozzo, Phys. Rev. Lett. 109, 267203 (2012).
- Z.-X. Gong, M. Foss-Feig, S. Michalakis, A. V. Gorshkov, Phys. Rev. Lett. 113, 030601 (2014).
QAtlas.LongRangeXY1D — Type
LongRangeXY1D(; J::Real = 1.0, h::Real = 0.0, α::Real = Inf)
<: AbstractQAtlasModel1D XY chain with power-law-decaying interactions in a transverse field:
H = -J Σ_{i<j} (σᵢˣ σⱼˣ + σᵢʸ σⱼʸ) / |i-j|^α - h Σᵢ σᵢᶻ.Constraints: J > 0, α > 0, h ∈ ℝ.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | analytic, α = Inf NN XX limit (LSM) |
Phase 1 exposes only the α = Inf nearest-neighbour XX-in-transverse-field limit, whose mass gap is the closed form Δ = 2·max(0, |h| - 2J) (Lieb-Schultz-Mattis 1961, isotropic XX limit of the XY chain; Pfeuty 1970 for the TFIM-context derivation). Finite α raises DomainError pending the Phase 2 DMRG follow-up (Maghrebi-Gong-Gorshkov 2017 for the XY chain power-law family).
References
- E. Lieb, T. Schultz, D. Mattis, Annals Phys. 16, 407 (1961).
- P. Pfeuty, Annals Phys. 57, 79 (1970).
- M. F. Maghrebi, Z.-X. Gong, A. V. Gorshkov, Phys. Rev. Lett. 119, 023001 (2017).
QAtlas.LoschmidtEcho — Type
LoschmidtEcho{M}() <: AbstractQuantity
LoschmidtEcho(:amplitude)
LoschmidtEcho(:rate)
LoschmidtRateFunction() # alias for LoschmidtEcho{:rate}Loschmidt-echo family for sudden-quench dynamics. After preparing |ψ_0⟩ as the ground state of an "initial" model H_0 and quenching to the "final" model H_f (passed as the first positional argument to fetch), the Loschmidt amplitude is
G(t) = ⟨ψ_0 | e^{-i H_f t} | ψ_0⟩,with the Loschmidt echo L(t) = |G(t)|² ∈ [0, 1] and the rate function
λ(t) = -log L(t) / N (finite N)
λ(t) = -lim_{N→∞} log L(t)/N (thermodynamic limit / Infinite)Non-analytic cusps in λ(t) are dynamical quantum phase transitions (DQPT). See Heyl, Polkovnikov, Kehrein, PRL 110, 135704 (2013) and the review Heyl, Rep. Prog. Phys. 81, 054001 (2018).
The mode M::Symbol ∈ (:amplitude, :rate) is a phantom type parameter so that :amplitude (returns L(t)) and :rate (returns λ(t)) dispatch separately. The convenience alias LoschmidtRateFunction is the only flavour defined for Infinite, since the :amplitude itself is identically zero in the thermodynamic limit (extensive cumulants).
The pre-quench Hamiltonian is passed via the initial keyword on fetch, e.g.
fetch(TFIM(J=1.0, h=0.5), LoschmidtRateFunction(), Infinite();
initial=TFIM(J=1.0, h=2.0), t=1.0)QAtlas.LoschmidtRateFunction — Type
const LoschmidtRateFunction = LoschmidtEcho{:rate}Convenience alias for the rate-function flavour λ(t) = -log L(t)/N. See LoschmidtEcho.
QAtlas.LuttingerParameter — Type
LuttingerParameter() <: AbstractQuantityLuttinger liquid parameter K. Meaningful for critical 1D models with U(1) symmetry (e.g. XXZ in the critical regime |Δ| < 1).
QAtlas.LuttingerVelocity — Type
LuttingerVelocity() <: AbstractQuantityLuttinger-liquid / bosonisation velocity u (a.k.a. v_{LL}) of the low-energy linear-dispersion mode in a 1D critical interacting system. Used by models like XXZ1D in the Luttinger regime |Δ| < 1, the Heisenberg chain at the SU(2) point, and any other bosonised 1D critical theory.
For a free-fermion model this coincides with FermiVelocity; for interacting systems u includes the Luttinger renormalisation.
QAtlas.MagnetizationX — Type
MagnetizationX() <: AbstractQuantityBulk-averaged ⟨σˣ⟩ in Pauli convention (= 2 ⟨Sˣ⟩ in spin-1/2 units). For a spin-1/2 chain H = -J ΣSᶻSᶻ - h ΣSˣ this is the transverse magnetization; the axis-explicit name avoids the "transverse" / "longitudinal" ambiguity that depends on the model's Hamiltonian choice.
QAtlas.MagnetizationXLocal — Type
MagnetizationXLocal{M}() <: AbstractQuantity
MagnetizationXLocal() # M = :equilibrium (default)
MagnetizationXLocal(:equilibrium) # explicit equilibrium ⟨σˣ_i⟩_β
MagnetizationXLocal(:quench) # post-quench ⟨σˣ_i⟩(t)Site-resolved ⟨σˣ_i⟩ quantity. The mode parameter M::Symbol is a phantom type that splits the dispatch into:
:equilibrium— site-resolved thermal expectation[⟨σˣ_i⟩_β for i = 1:N](Vector{Float64}). This is the original meaning; the no-argument constructorMagnetizationXLocal()keeps back-compatibility by routing here.:quench— time-evolved local transverse magnetisation⟨σˣ_i⟩(t) = ⟨ψ_0|e^{iH_f t} σˣ_i e^{-iH_f t}|ψ_0⟩after a sudden quench from the ground state of aninitial::AbstractQAtlasModel(H_0) to the post-quench Hamiltonian (themodelargument tofetch). Returns a singleFloat64for one(i, t)pair.
See docs/src/calc/tfim-sigma-x-quench.md for the closed-form derivation in the TFIM (Calabrese–Essler–Fagotti, J. Stat. Mech. P07016 (2012); Barouch–McCoy–Dresden, PRA 2 (1970)).
QAtlas.MagnetizationY — Type
MagnetizationY() <: AbstractQuantityBulk-averaged ⟨σʸ⟩.
QAtlas.MagnetizationYLocal — Type
MagnetizationYLocal() <: AbstractQuantitySite-resolved ⟨σʸ_i⟩ vector of length N_bulk. Identically zero for any real Hermitian Hamiltonian (parity / time-reversal); a model that returns it explicitly does so as an exact baseline against random-sample estimators that fluctuate around zero.
QAtlas.MagnetizationZ — Type
MagnetizationZ() <: AbstractQuantityBulk-averaged ⟨σᶻ⟩. For Z₂-symmetric phases on an infinite system this is the order parameter at low temperature; finite-system fetch methods may return the absolute value / the ordered-phase limit as documented.
QAtlas.MagnetizationZLocal — Type
MagnetizationZLocal() <: AbstractQuantitySite-resolved ⟨σᶻ_i⟩ vector of length N_bulk.
QAtlas.MajumdarGhosh — Type
MajumdarGhosh(; J::Real = 1.0) <: AbstractQAtlasModelSpin-½ Majumdar–Ghosh chain — the J₁–J₂ Heisenberg chain locked to the special ratio J₂/J₁ = 1/2:
H = J Σ_i Sᵢ · Sᵢ₊₁ + (J/2) Σ_i Sᵢ · Sᵢ₊₂, S = 1/2.At this point the ground state is exactly the product of nearest- neighbour singlets (two-fold degenerate), with size-independent ground- state energy density E₀/N = −3J/8. An analytical lower bound on the gap Δ ≈ 0.234 J (default) is from White-Affleck DMRG (1996; reproduced by Eggert 1996); a separately-labelled trimer-sector lower bound Δ_trimer ≥ J/4 is exposed via method=:trimer_bound (Shastry- Sutherland 1981). Note: the SS bound exceeds the actual DMRG gap, so it is best read as a sector-specific bound (see MassGap docstring).
Fields
J::Float64— antiferromagnetic exchange coupling (J > 0). The next-nearest-neighbour coupling is locked to J/2 by the model definition.
References
- C. K. Majumdar, D. K. Ghosh, J. Math. Phys. 10, 1388 (1969).
- B. S. Shastry, B. Sutherland, J. Phys. C 14, L765 (1981).
- S. R. White, I. Affleck, Phys. Rev. B 54, 9862 (1996).
QAtlas.MassGap — Type
MassGap() <: AbstractQuantityEnergy gap between the ground state and the first excited state.
QAtlas.MeanField — Type
MeanField() <: AbstractQAtlasModelMean-field (Landau) universality class. Exact for d ≥ d_c (upper critical dimension). Kept as a top-level alias so that existing fetch(MeanField(), ...) callers keep working after the v0.13 API redesign; the canonical form is Universality(:MeanField).
QAtlas.MeanRatio — Type
MeanRatio() <: AbstractQuantityMean of the consecutive level-spacing ratio r_n = min(s_n, s_{n+1}) / max(s_n, s_{n+1}), introduced by Oganesyan-Huse (2007) and tabulated for the Wigner-Dyson and Poisson ensembles by Atas-Bogomolny-Giraud-Roux, Phys. Rev. Lett. 110, 084101 (2013):
| Ensemble | ⟨r⟩ |
|---|---|
| Poisson | 2 log 2 − 1 ≈ 0.3863 |
| GOE (β=1) | 0.5307 |
| GUE (β=2) | 0.5996 |
| GSE (β=4) | 0.6744 |
QAtlas.MinimalModel — Type
MinimalModel(p::Int, p_prime::Int) <: AbstractQAtlasModelVirasoro minimal model M(p, pprime). p and `pprimemust be coprime integers withp > p_prime ≥ 2. Construction validates those conditions and throwsDomainError` otherwise.
Special cases (cross-check):
| Model | (p, p_prime) | c |
|---|---|---|
| Yang–Lee (non-unitary) | (5, 2) | -22/5 |
| Ising | (4, 3) | 1/2 |
| Tricritical Ising | (5, 4) | 7/10 |
| 3-state Potts (chiral) | (6, 5) | 4/5 |
The Ising special case MinimalModel(4, 3) reproduces the central charge stored in Universality(:Ising)'s CriticalExponents table (c = 1//2).
Use fetch with CentralCharge or ConformalWeights:
fetch(MinimalModel(4, 3), CentralCharge()) # 1//2
fetch(MinimalModel(4, 3), ConformalWeights(); r=1, s=2) # 1//16See also: WZWSU2, Universality, CentralCharge, ConformalWeights, PrimaryFields.
QAtlas.MixedFieldIsing1D — Type
MixedFieldIsing1D(; J = 1.0, h_x = 1.0, h_z = 0.0) <: AbstractQAtlasModelThe 1D mixed-field Ising chain
H = -J Σ_i σᶻ_i σᶻ_{i+1} - h_x Σ_i σˣ_i - h_z Σ_i σᶻ_i, J > 0.The default h_z = 0.0 sits on the Phase-1 closed-form point where the model coincides with the standard TFIM (Δ_∞ = 2|h_x − J|, gap closing at the quantum critical point h_x = J).
At h_z ≠ 0 the model is non-integrable — fetch methods will throw DomainError in Phase 1 and route to numerical solvers in Phase 2.
QAtlas.Model — Type
Model{M} <: AbstractQAtlasModel (deprecated)Phantom-typed Dict wrapper kept for backward compatibility. The Model(:TFIM; J=1.0, h=1.0) constructor below still works but is routed through the Symbol-dispatch deprecation shim in src/deprecate/legacy_fetch.jl. Prefer concrete model structs for new code.
QAtlas.OBC — Type
OBC(N::Int)
OBC(; N::Int = 0)Open boundary condition. N is the chain length. N = 0 is a legacy sentinel meaning "size unspecified — caller passes it via kwargs"; fetch methods that accept OBC(0) must look up kwargs[:N].
QAtlas.PBC — Type
PBC(N::Int)
PBC(; N::Int = 0)Periodic boundary condition. See OBC for the N = 0 sentinel.
QAtlas.PXP1D — Type
PXP1D(; Ω::Real = 1.0) <: AbstractQAtlasModelRydberg-blockade chain (PXP model):
H = Ω Σ_i P_{i-1} σ^x_i P_{i+1}, P_i = (1 - σ^z_i)/2, Ω > 0.Acts within the constrained Hilbert space forbidding adjacent excitations. Paradigmatic host of many-body quantum scars (Turner et al. 2018).
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
Energy (:per_site) | Infinite | DMRG/ED reference (PXP-scar lit.) |
Reliability :medium (numerical DMRG/ED thermodynamic-limit reference; not analytically closed). Scar-tower observables — revival frequency, OTOC, Z₂-state survival — are deferred to Phase 2.
References
- P. Fendley, K. Sengupta, S. Sachdev, Phys. Rev. B 69, 075106 (2004).
- H. Bernien et al., Nature 551, 579 (2017).
- C. J. Turner et al., Nat. Phys. 14, 745 (2018).
- C. J. Lin, O. I. Motrunich, Phys. Rev. Lett. 122, 173401 (2019).
- T. Iadecola, M. Schecter, S. Xu, Phys. Rev. B 100, 184312 (2019).
- F. M. Surace et al., Phys. Rev. X 10, 021041 (2020).
QAtlas.PartitionFunction — Type
PartitionFunction() <: AbstractQuantityCanonical partition function Z = Σ_σ exp(-β H(σ)).
QAtlas.PpIp2DSC — Type
PpIp2DSC(; Δ₀::Real = 1.0, μ::Real = 1.0) <: AbstractQAtlasModel2-D px + i py chiral superconductor (Read–Green 2000) for spinless fermions, with BCS pairing amplitude Δ₀ > 0 and chemical potential μ > 0 (weak-pairing topological phase).
Phase 1 exposes the parameter-independent bulk topological data of the weak-pairing phase:
| Quantity | BC | Value |
|---|---|---|
CentralCharge | Infinite | 1/2 |
TopologicalInvariant | Infinite | 1 |
The strong-pairing trivial phase (μ ≤ 0) is excluded by the constructor: only the topological branch is exposed in Phase 1.
References
- N. Read, D. Green, Phys. Rev. B 61, 10267 (2000).
- A. Y. Kitaev, Ann. Phys. 321, 2 (2006).
QAtlas.PrimaryFields — Type
PrimaryFields() <: AbstractQuantityFull list of primary fields of a 2D rational CFT. For MinimalModel the result is a Vector{NamedTuple{(:r, :s, :h)}} of length (p - 1)(p_prime - 1) / 2, with one entry per Kac-symmetry orbit.
Future CFT classes may return different NamedTuple schemas (e.g. (j, h) for WZW). The return type is therefore a Vector{<:NamedTuple} whose schema depends on the model.
QAtlas.Quantity — Type
Quantity{Q} <: AbstractQuantity (deprecated)Phantom-typed wrapper kept for the legacy symbol API. New code should use concrete quantity structs such as Energy(), MagnetizationX(), ZZCorrelation(; mode=:static).
QAtlas.RFIM — Type
RFIM(; J::Real = 1.0, Δ::Real = 1.0) <: AbstractQAtlasModelRandom-Field Ising Model: H = -J Σ σσ - Σ h_i σ_i with quenched i.i.d. random fields of variance Δ² (Gaussian or bimodal ±√Δ²). The Imry-Ma (1975) argument gives the lower critical dimension d_l = 2: for d ≤ 2, Δ > 0 there is no long-range ferromagnetic order at any positive temperature.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
CriticalTemperature | Infinite | analytic (Imry-Ma, d ≤ 2 ⇒ T_c = 0) |
References
- Y. Imry, S. Ma, Phys. Rev. Lett. 35, 1399 (1975).
- J. Imbrie, Comm. Math. Phys. 98, 145 (1985).
QAtlas.RandomBondIsing2D — Type
RandomBondIsing2D(; J::Real = 1.0, p::Real = 1.0) <: AbstractQAtlasModel2D square-lattice ±J random-bond Ising model (Edwards-Anderson 1975):
H = -Σ_{⟨i,j⟩} J_{ij} σ^z_i σ^z_j,
J_{ij} = +J (prob. p) or -J (prob. 1-p).The default p = 1 is the pure ferromagnet — Onsager's 2D Ising critical point with central charge c = 1/2.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | delegation → MinimalModel(4, 3) (Ising) at p = 1 |
Nishimori-line and multicritical Nishimori-point universality (logarithmic CFT, Honecker-Picco-Pujol 2001) are Phase 2.
References
- S. F. Edwards, P. W. Anderson, J. Phys. F 5, 965 (1975).
- H. Nishimori, Prog. Theor. Phys. 66, 1169 (1981).
- A. Honecker, M. Picco, P. Pujol, Phys. Rev. Lett. 87, 047201 (2001).
QAtlas.RenyiEntropy — Type
RenyiEntropy(α) <: AbstractQuantityRényi entropy of order α, S_α = (1 − α)⁻¹ log Tr ρ_A^α.
α = 1recoversVonNeumannEntropy(implementations may dispatch accordingly).α = 2is the second Rényi entropy, frequently measured experimentally.α > 0,α ≠ 1are the supported generic cases.
The inner constructor rejects α ≤ 0 and α = 1 (use VonNeumannEntropy() explicitly) — this is intentional, to force the call site to be explicit about which entropy it wants.
QAtlas.ResidualEntropy — Type
ResidualEntropy() <: AbstractQuantityZero-temperature configurational (residual) entropy density. Real- valued, non-negative; non-zero in the presence of macroscopic ground-state degeneracy (e.g. ice rule, frustrated Ising AFM, Pauling-1935-style models). Distinct from ThermalEntropy: ThermalEntropy is a finite-temperature thermodynamic quantity, while ResidualEntropy is the lim_{T -> 0} S(T) / N residual term. Zero-temperature ground-state entropy per site,
S_residual / (N k_B) = lim_{T → 0⁺} S(T) / N,i.e. the entropy density of the (possibly degenerate) ground-state manifold. Non-zero for frustrated classical models with extensive ground-state degeneracy — e.g. the antiferromagnetic Ising model on the triangular lattice (Wannier 1950, ≈ 0.3230659669) and on the kagome lattice (Houtappel 1950). Defined as a separate quantity from ThermalEntropy to keep the zero-temperature limit explicit at the dispatch level (avoiding β → ∞ extrapolations of a finite-T fetch).
QAtlas.S1AnisotropicD1D — Type
S1AnisotropicD1D(; J::Real = 1.0, D::Real = 0.0) <: AbstractQAtlasModelSpin-1 Heisenberg chain with uniaxial single-ion anisotropy,
H = J Σᵢ Sᵢ · Sᵢ₊₁ + D Σᵢ (Sᵢ^z)²,with J > 0 (antiferromagnetic) and D ∈ ℝ arbitrary single-ion anisotropy strength. Same 3-dimensional local Hilbert space as S1Heisenberg1D but with the on-site easy-axis (D < 0) or easy-plane (D > 0) term added.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | delegated to S1Heisenberg1D at D = 0 |
Phase 1 exposes only the D = 0 Haldane-chain reference point, delegated to the existing S1Heisenberg1D. Any D ≠ 0 raises DomainError — finite-D crosses Gaussian (large-D) and Ising (Néel) transitions whose closed forms are unknown and are deferred to the DMRG-based Phase 2 (Chen-Roncaglia 2008; Tzeng-Yang-Hsu 2017).
References
- F. D. M. Haldane, Phys. Lett. A 93, 464 (1983).
- S. R. White, D. A. Huse, Phys. Rev. B 48, 3844 (1993).
- Y.-C. Chen, R. Roncaglia, J. Stat. Mech. P10024 (2008).
- Y.-D. Tzeng, H.-H. Hung, Y.-C. Chen, M.-F. Yang, Phys. Rev. B 96, 205104 (2017).
QAtlas.S1Heisenberg1D — Type
S1Heisenberg1D(; J::Real = 1.0) <: AbstractQAtlasModelSpin-1 antiferromagnetic Heisenberg chain (Haldane chain),
H = J Σᵢ Sᵢ · Sᵢ₊₁, spin = 1, J > 0 antiferromagnetic.Distinct from Heisenberg1D (spin-1/2) because the spin representation differs: spin-1 has local dimension 3 and a gapped, topologically non-trivial Haldane phase, while spin-1/2 is gapless and critical (Bethe ansatz).
QAtlas.S1XXZ1D — Type
S1XXZ1D(; J::Real = 1.0, Δ::Real = 1.0) <: AbstractQAtlasModelSpin-1 antiferromagnetic XXZ chain,
H = J Σᵢ [Sˣᵢ Sˣᵢ₊₁ + Sʸᵢ Sʸᵢ₊₁ + Δ Sᶻᵢ Sᶻᵢ₊₁], S = 1, J > 0.The default Δ = 1.0 places the model at the SU(2)-symmetric Haldane point, where Phase-1 closed-form MassGap is available by delegation to S1Heisenberg1D.
QAtlas.SLEkappa — Type
SLEkappa(; κ::Real = 6.0) <: AbstractQAtlasModelSchramm-Loewner Evolution SLE_κ (random planar conformally-invariant curve) at parameter κ > 0. Default κ = 6 is the percolation cluster-boundary fixed point — the original Schramm prediction that launched the field.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | analytic (SLE-CFT correspondence) |
FractalDimension | Infinite | analytic (Beffara 2008) |
References
- O. Schramm, Israel J. Math. 118, 221 (2000).
- V. Beffara, Annals Probab. 36, 1421 (2008).
- M. Bauer, D. Bernard, Phys. Rep. 432, 115 (2006).
QAtlas.SYK — Type
SYK(; q::Integer = 4) <: AbstractQAtlasModelSachdev-Ye-Kitaev model: N Majorana fermions with all-to-all random q-body coupling. The defining structural parameter for the universal large-N IR is q (which must be even — Majorana antisymmetry — and ≥ 2). The fermion number N and the coupling scale J set the UV / finite-N data but do not enter the leading large-N IR conformal dimension exposed here.
Default q = 4 is the most-studied case: 4-body Majorana coupling, exactly soluble Schwarzian-dressed two-point function, and a maximal Lyapunov exponent saturating the Maldacena- Shenker-Stanford bound.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
ConformalWeights | Infinite | analytic large-N IR (Δ_ψ = 1/q) |
Phase 2 will add composite-operator dimensions (bilinear tower), the Schwarzian zero-T entropy, maximal Lyapunov saturation, and the JT-gravity bulk dual.
References
- S. Sachdev, J. Ye, Phys. Rev. Lett. 70, 3339 (1993).
- A. Kitaev, KITP talks (2015) — "A simple model of quantum holography".
- J. Maldacena, D. Stanford, Phys. Rev. D 94, 106002 (2016).
QAtlas.SchwingerModel — Type
SchwingerModel(; e::Real = 1.0, m::Real = 0.0) <: AbstractQAtlasModel1+1-D quantum electrodynamics (Schwinger 1962) with gauge coupling e > 0 and fermion mass m ≥ 0. At the massless point (m = 0) the spectrum is exactly a free massive scalar with the Schwinger mass m_γ = e/√π.
Quantities registered (Phases 1+2):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | analytic (e/√π, massless only) |
ChiralCondensate | Infinite | analytic (-exp(γ_E)·e/(2π^{3/2}), massless) |
Massive m > 0 Schwinger maps to massive sine-Gordon (Coleman-Jackiw-Susskind 1975) and is tracked as Phase 2.
References
- J. Schwinger, Phys. Rev. 128, 2425 (1962).
- S. Coleman, R. Jackiw, L. Susskind, Annals Phys. 93, 267 (1975).
QAtlas.ShastrySutherland — Type
ShastrySutherland(; J::Real = 0.0, Jp::Real = 1.0) <: AbstractQAtlasModelSpin-½ Shastry–Sutherland model on the Shastry–Sutherland lattice (corner-sharing-orthogonal-dimer geometry; realised in SrCu₂(BO₃)₂):
H = J Σ_{⟨i,j⟩} Sᵢ · Sⱼ + J' Σ_{⟨⟨i,j⟩⟩_d} Sᵢ · Sⱼ.The model has two named couplings: J for the square-lattice nearest-neighbour bonds and Jp (J') for the alternating-plaquette diagonal "dimer" bonds. The default J = 0, Jp = 1 is the trivial isolated-dimer limit and lies safely inside the exact-dimer phase.
In the parameter window α = J / Jp ≤ α_c ≈ 0.675 (Koga–Kawakami
- the ground state is the exact product of nearest-neighbour
singlets on the diagonal (Jp) bonds — the 2-D analog of the Majumdar–Ghosh dimer state.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
Energy (:per_site) | Infinite | exact dimer GS |
The triplon excitation spectrum, magnetisation plateaux (1/8, 1/4, 1/3) and large-α intermediate / plaquette phases require quantities beyond a scalar ground-state energy and are tracked as a follow-up phase.
References
- B. S. Shastry, B. Sutherland, Physica B+C 108, 1069 (1981).
- S. Miyahara, K. Ueda, Phys. Rev. Lett. 82, 3701 (1999).
- A. Koga, N. Kawakami, Phys. Rev. Lett. 84, 4461 (2000).
QAtlas.SherringtonKirkpatrick — Type
SherringtonKirkpatrick(; J::Real = 1.0) <: AbstractQAtlasModelSherrington-Kirkpatrick mean-field Ising spin glass (Sherrington- Kirkpatrick 1975). The Hamiltonian is the canonical 1/√N random-Gaussian-coupling sum
H = -(1/√N) Σ_{i<j} J_ij σ_i σ_j, J_ij ~ N(0, J²),whose spin-glass transition lies at T_c = J.
Quantities registered (Phases 1 and 2):
| Quantity | BC | Method |
|---|---|---|
CriticalTemperature | Infinite | analytic |
Energy (:per_site) | Infinite | variational reference |
The Phase-2 Energy{:per_site} entry is the Parisi T=0 ground-state energy density e_0/J ≈ -0.7631667 (Crisanti-Rizzo 2002 high-precision evaluation of Parisi's full-RSB solution; Talagrand 2006 rigorous proof). The finite-temperature Parisi free energy f(β, h), the de Almeida-Thouless line h_AT(T) and the overlap distribution P(q) remain tracked for later phases.
References
- D. Sherrington, S. Kirkpatrick, Phys. Rev. Lett. 35, 1792 (1975).
- G. Parisi, J. Phys. A 13, L115 (1980).
- M. Talagrand, Annals Math. 163, 221 (2006).
QAtlas.SixVertex — Type
SixVertex(; a::Real = 1.0, b::Real = 1.0, c::Real = 1.0) <: AbstractQAtlasModelClassical six-vertex model on the infinite square lattice in the standard (a, b, c) parameterisation (Lieb 1967, Baxter 1982 ch. 8):
ω₁ = ω₂ = a, ω₃ = ω₄ = b, ω₅ = ω₆ = cwith the ice rule (each vertex has two incoming and two outgoing arrows). The single dimensionless invariant
Δ = (a² + b² − c²) / (2 a b)selects the phase: Δ > 1 ferroelectric (FE, frozen), |Δ| < 1 disordered (Lieb / Sutherland 1967), Δ < −1 antiferroelectric (AFE / F-model, Lieb 1967b).
Convenience constructors for the three classical sub-models (square_ice, f_model, kdp_model) are also provided.
Currently registered fetches:
| Quantity | BC | Coverage |
|---|---|---|
ResidualEntropy | Infinite | Square ice (Δ = 1/2) + FE (Δ > 1) |
FreeEnergy | Infinite | FE phase + square-ice point |
The full disordered-phase free energy (Lieb / Sutherland 1967 trigonometric integral) and the AFE elliptic-function free energy (Lieb 1967b) are out of scope for the present commit (Phase 2 / Phase 3 of issue #163) and will throw an informative ArgumentError if requested.
See also: IsingSquare for the closest classical analog.
QAtlas.SpecificHeat — Type
SpecificHeat() <: AbstractQuantitySpecific heat per site, c_v(β) = β² (⟨H²⟩ − ⟨H⟩²) / N.
QAtlas.SpectralFormFactor — Type
SpectralFormFactor() <: AbstractQuantityDisorder-averaged spectral form factor K(t) = ⟨|Σ_n e^{−iE_n t}|²⟩ / Z² — the canonical late-time quantum-chaology diagnostic (Mehta 2004 §16; Cotler et al. 2017).
For GUE random-matrix-theory eigenvalues in the large-N thermodynamic limit, with rescaled time τ = t / N, the disorder-averaged SFF has the universal closed form
K(τ) = (τ/(2π)) − (τ/(4π)) log|1 − τ/(2π)|forτ ≤ 2πK(τ) = 1forτ ≥ 2π
so that K exhibits a linear ramp K(τ) ≈ τ/π for small τ and saturates to the universal plateau K(τ→∞) = 1 for τ beyond the Heisenberg time τ_H = 2π.
QAtlas Phase 1 (issue #243) exposes only the late-time plateau τ ≥ τ_H for the GUE ensemble; the ramp regime and the GOE/GSE sigma-model closed forms (Mehta 2004 §16) are deferred to Phase 2.
References
- M. L. Mehta, Random Matrices, 3rd ed., Elsevier (2004), §16.
- E. Brézin, S. Hikami, Phys. Rev. E 55, 4067 (1997).
- J. S. Cotler, G. Gur-Ari, M. Hanada, J. Polchinski, P. Saad, S. H. Shenker, D. Stanford, A. Streicher, M. Tezuka, JHEP 05, 118 (2017), arXiv:1611.04650 — ramp-plateau picture.
QAtlas.SpinGap — Type
SpinGap() <: AbstractQuantitySpin gap of an electron system,
Δ_s = E₀(S^z = 1) - E₀(S^z = 0),i.e. the lowest excitation energy at fixed total particle number that flips one spin. Zero whenever the spinon branch is gapless (e.g. the half-filled 1D Hubbard chain — rigorous Lieb–Wu result), positive in a spin-gapped phase (Haldane chain, BCS superconductor, …).
QAtlas.SpinIce — Type
SpinIce() <: AbstractQAtlasModelClassical spin ice on the pyrochlore lattice of corner-sharing tetrahedra. Ising-like local moments obey the "2-in-2-out" ice rule in the ground-state manifold; the residual entropy follows the Pauling 1935 closed form.
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
ResidualEntropy | Infinite | analytic (Pauling) |
The Coulomb-phase dipolar spin correlations and the Castelnovo-Moessner-Sondhi (2008) emergent-monopole picture are tracked as a follow-up phase (#257 phase 2) and not exposed here.
References
- L. Pauling, J. Am. Chem. Soc. 57, 2680 (1935).
- S. T. Bramwell, M. J. P. Gingras, Science 294, 1495 (2001).
QAtlas.SpinWaveVelocity — Type
const SpinWaveVelocity = LuttingerVelocitySpin-chain community alias for LuttingerVelocity. The "spin wave velocity" (e.g. in the Haldane / Affleck literature on the AFM Heisenberg chain) is the same quantity as the Luttinger velocity once bosonised; both dispatch through the same fetch method via the type identity.
QAtlas.SpontaneousMagnetization — Type
SpontaneousMagnetization() <: AbstractQuantitySpontaneous magnetization of a classical model as a function of temperature. Retained under this name for backward compatibility with the classical-Ising literature; new code may prefer the axis-explicit MagnetizationZ together with a T < T_c context.
QAtlas.SteadyStateCurrent — Type
SteadyStateCurrent() <: AbstractQuantitySteady-state mass / particle current j in a 1D non-equilibrium lattice gas (e.g. ASEP / TASEP, Derrida-Lebowitz 1998). For TASEP at hopping rate p and density ρ,
j(ρ) = p ρ (1 − ρ) (TASEP mean-field steady state)— the canonical KPZ-class non-equilibrium observable.
QAtlas.StringOrderParameter — Type
StringOrderParameter() <: AbstractQuantityKennedy-Tasaki non-local (string) order parameter
O_str = lim_{|i-j| -> infty} -<S^z_i exp[i pi sum_{i<k<j} S^z_k] S^z_j>for S=1 chains. Detects the hidden Z2 x Z2 symmetry breaking that defines the Haldane phase (T. Kennedy and H. Tasaki, Phys. Rev. B 45, 304 (1992)). At the AKLT point the closed-form value is O_str = 4/9 (AKLT 1988), making it the canonical analytic test bed for any implementation that aims to detect topologically non-trivial gapped phases of integer-spin chains.
QAtlas.SusceptibilityXX — Type
SusceptibilityXX() <: AbstractQuantityStatic transverse susceptibility, χ_xx(β) = β · (⟨M_x²⟩ − ⟨M_x⟩²) / N.
QAtlas.SusceptibilityYY — Type
SusceptibilityYY() <: AbstractQuantityAnalogue for the y-axis.
QAtlas.SusceptibilityZZ — Type
SusceptibilityZZ() <: AbstractQuantityUniform longitudinal susceptibility, χ_zz(β) = β · (⟨M_z²⟩ − ⟨M_z⟩²) / N.
QAtlas.TASEP — Type
TASEP(; p::Real = 1.0, ρ::Real = 0.5) <: AbstractQAtlasModelTotally Asymmetric Simple Exclusion Process — 1-D KPZ-class non-equilibrium lattice gas with rightward hopping rate p > 0 at particle density 0 ≤ ρ ≤ 1. The default (p, ρ) = (1, 1/2) is the maximal-current half-filling point with j_max = 1/4.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
SteadyStateCurrent | Infinite | analytic (j = p ρ (1 − ρ)) |
References
- M. Kardar, G. Parisi, Y.-C. Zhang, Phys. Rev. Lett. 56, 889 (1986) — KPZ universality class.
- B. Derrida, M. R. Evans, V. Hakim, V. Pasquier, J. Phys. A 26, 1493 (1993).
- B. Derrida, J. L. Lebowitz, Phys. Rev. Lett. 80, 209 (1998).
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.
QAtlas.TTbar — Type
TTbar(; c::Real = 1.0, λ::Real = 0.0) <: AbstractQAtlasModelUniversal irrelevant TT̄ deformation of a 2-D QFT whose UV completion is a CFT of central charge c > 0, with deformation coupling λ of dimension (length)². Default c = 1 (free boson seed), λ = 0 (undeformed CFT). Any real λ is admissible: λ > 0 is the Hagedorn-like branch, λ < 0 is the "good-sign" branch.
Because the TT̄ deformation is irrelevant in the RG sense, the UV central charge c is preserved at all λ:
c(λ) = c.Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | analytic (c(λ) = c) |
References
- A. B. Zamolodchikov, hep-th/0401146 (2004).
- F. A. Smirnov, A. B. Zamolodchikov, Nucl. Phys. B 915, 363 (2017).
- A. Cavaglià, S. Negro, I. M. Szécsényi, R. Tateo, JHEP 10, 112 (2016).
- L. McGough, M. Mezei, H. Verlinde, JHEP 04, 010 (2018).
QAtlas.ThermalEntropy — Type
ThermalEntropy() <: AbstractQuantityThermal / thermodynamic entropy per site, s(β) = −∂f/∂T where f is the free energy per site. Real-valued, non-negative, monotone in T.
QAtlas.TightBinding1D — Type
TightBinding1D(; t::Real = 1.0, μ::Real = 0.0) <: AbstractQAtlasModel1D non-interacting spinless-fermion chain.
H = -t Σᵢ (c†ᵢ c_{i+1} + h.c.) - μ Σᵢ c†ᵢ cᵢwith t > 0 (strict) and arbitrary real μ.
Quantities registered (Phase 1, all closed-form):
| Quantity | BC | Formula |
|---|---|---|
Energy{:per_site} | Infinite | partial-filling integral / band edges |
MassGap | Infinite | `max(0, |
FermiVelocity | Infinite | 2t √(1 - μ²/(4t²)) for ` |
Examples
julia> using QAtlas
julia> fetch(TightBinding1D(), Energy{:per_site}(), Infinite()) # half-filling
-0.6366197723675814
julia> fetch(TightBinding1D(; μ = 3.0), MassGap(), Infinite()) # band insulator
1.0
julia> fetch(TightBinding1D(; μ = 1.0), FermiVelocity(), Infinite())
1.7320508075688772References
- N. W. Ashcroft, N. D. Mermin, Solid State Physics (1976), chapter 9.
QAtlas.TightBindingChecksum — Type
TightBindingChecksum() <: AbstractQuantitySum of squared single-particle eigenvalues Σ λᵢ² of the tight-binding Bloch Hamiltonian, i.e. tr(H²). For a chiral (bipartite) lattice this equals 2 t² · n_NN_bonds, an analytical identity independent of Lx, Ly, or k-grid details — a strong sanity invariant on top of the spectrum closed form.
QAtlas.TightBindingMaxEnergy — Type
TightBindingMaxEnergy() <: AbstractQuantityLargest single-particle eigenvalue of the tight-binding Bloch Hamiltonian, i.e. max(λᵢ). For the chiral honeycomb this equals |t| · max_k |f(k)| = 3|t| (saturated at the Γ point where the three nearest-neighbor phases add coherently), independent of Lx and Ly as long as the Γ point is on the discrete momentum grid (always true for PBC with Lx, Ly ≥ 1).
Sister scalar to TightBindingChecksum (which captures Σλᵢ² = tr(H²) and is invariant under chiral pair sign-flips). The two together discriminate any single-eigenvalue perturbation: a sign error on a hopping displacement that flips a chiral pair changes neither the checksum nor the bandwidth at Γ only if it doesn't reach the Γ point — making them jointly sensitive to a broader class of typos.
QAtlas.TightBindingSpectrum — Type
TightBindingSpectrum() <: AbstractQuantitySingle-particle Bloch spectrum of a tight-binding model. Returned as a sorted Vector{Float64} of length n_orbitals · Lx · Ly.
QAtlas.TightBindingV1D — Type
TightBindingV1D(t::Real, V::Real, μ::Real)
TightBindingV1D(; t=1.0, V=0.0, μ=0.0)1D spinless-fermion t-V chain (NN hopping t > 0, NN density-density interaction V, chemical potential μ). At V = 0 the model is the free-fermion tight-binding chain; at V ≠ 0 it is Jordan-Wigner equivalent to the spin-1/2 XXZ chain (Phase 2).
The default keyword constructor lands at the closed-form free-fermion point (t, V, μ) = (1, 0, 0).
QAtlas.TodaLattice — Type
TodaLattice(; a::Real = 1.0, b::Real = 1.0) <: AbstractQAtlasModelClassical 1-D Toda lattice (Toda 1967) with standard nearest-neighbour exponential potential V(r) = (a/b) e^{-b r} + a r - a/b. The defaults a = b = 1 give the canonical textbook form V(r) = e^{-r} + r - 1.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | linear-phonon (gapless) |
Soliton energy-momentum relations and the Gutzwiller (1981) quantum- Toda Bethe-ansatz spectrum are tracked as Phase 2: they need momentum-parameter / quantum-number-indexed quantity types not yet in QAtlas core.
References
- M. Toda, J. Phys. Soc. Jpn. 22, 431 (1967).
- H. Flaschka, Phys. Rev. B 9, 1924 (1974).
- M. C. Gutzwiller, Annals Phys. 133, 304 (1981).
QAtlas.TopologicalEntanglementEntropy — Type
TopologicalEntanglementEntropy() <: AbstractQuantityConstant subleading correction γ in the area-law bipartite entanglement entropy of a 2D topologically ordered ground state on a simply-connected disk region:
S(ρ_A) = α |∂A| − γ + O(|∂A|⁻¹).Kitaev–Preskill (2006) and Levin–Wen (2006) showed γ = log 𝒟, where 𝒟 = √(Σ_a d_a²) is the total quantum dimension of the topological order. Returns a Float64. For the toric code (Z₂ topological order, four Abelian anyons) γ = log 2.
QAtlas.TopologicalInvariant — Type
TopologicalInvariant() <: AbstractQuantityTopological Z_2 invariant of a 1D BdG superconductor (Kitaev 2001). Defined as the Pfaffian sign at the time-reversal-invariant momenta k = 0 and k = π,
\[\nu = \operatorname{sgn}\bigl[\operatorname{Pf}(H_{\mathrm{BdG}}(k=0)) \cdot \operatorname{Pf}(H_{\mathrm{BdG}}(k=\pi))\bigr] \in \{+1, -1\},\]
with ν = -1 in the topological phase and ν = +1 in the trivial phase. For a gapless bulk (Pfaffian zero at k = 0 or k = π) the invariant is ill-defined and implementations should signal an error.
Currently used by Kitaev1D.
QAtlas.ToricCode — Type
ToricCode(; J_e::Real = 1.0, J_m::Real = 1.0) <: AbstractQAtlasModelKitaev (2003) toric code: the square-lattice Z₂ surface code with vertex ("electric") coupling J_e and plaquette ("magnetic") coupling J_m,
H = − J_e Σ_v A_v − J_m Σ_p B_p,where A_v = ∏_{i ∈ star(v)} σˣ_i and B_p = ∏_{i ∈ ∂p} σᶻ_i. All stabilizers commute, so the model is exactly solvable. See module header for the full closed-form result list and the distinction from KitaevHoneycomb.
QAtlas.TracyWidom — Type
TracyWidom() <: AbstractQuantityTracy-Widom largest-eigenvalue cumulative distribution F_β(x) for the three Wigner-Dyson ensembles (β ∈ {1, 2, 4}). Returns the value F_β(x) = P[ξ_β ≤ x] at the requested x.
QAtlas Phase 1 evaluates F_β from a precomputed table compiled from Bornemann, On the numerical evaluation of Fredholm determinants, Math. Comp. 79, 871 (2010), Table 1, with monotone linear interpolation on the table support and Tracy-Widom 1994/1996 tail asymptotics outside it. A direct Painlevé-II integrator is deferred to Phase 2.
QAtlas.Triangular — Type
TriangularDispatch tag for the nearest-neighbor tight-binding model on the triangular lattice (spinless, single-orbital, one sublattice).
Hamiltonian: H = -t Σ{⟨i,j⟩} (c†i c_j + h.c.)
The single band ranges from -6t (at the Γ-point) to +3t (at the K-points), reflecting geometric frustration: the absence of particle-hole (chiral) symmetry on a non-bipartite lattice.
QAtlas.TricriticalIsing — Type
TricriticalIsing() <: AbstractQAtlasModelTricritical Ising CFT — the unitary Virasoro minimal model M(5, 4), next-to-simplest unitary 2D CFT after Ising (M(4, 3)). Lattice realisations include the Blume-Capel model at its tricritical point and the Andrews-Baxter-Forrester (1984) RSOS models at (p+1, p) = (5, 4).
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | delegated to MinimalModel(5,4) |
ConformalWeights | Infinite | delegated to MinimalModel(5,4) |
PrimaryFields | Infinite | delegated to MinimalModel(5,4) |
References
- A. A. Belavin, A. M. Polyakov, A. B. Zamolodchikov, Nucl. Phys. B 241, 333 (1984).
- D. Friedan, Z. Qiu, S. Shenker, Phys. Rev. Lett. 52, 1575 (1984).
QAtlas.TricriticalPotts3 — Type
TricriticalPotts3() <: AbstractQAtlasModelTricritical 3-state Potts CFT — the unitary Virasoro minimal model M(6, 7), realised on the lattice by Andrews-Baxter-Forrester (1984) RSOS models and by the q = 3 Potts model with dilution (Huse 1984).
Quantities registered:
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | delegated to MinimalModel(7, 6) |
ConformalWeights | Infinite | delegated to MinimalModel(7, 6) |
PrimaryFields | Infinite | delegated to MinimalModel(7, 6) |
References
- G. E. Andrews, R. J. Baxter, P. J. Forrester, J. Stat. Phys. 35, 193 (1984).
- D. A. Huse, Phys. Rev. B 30, 3908 (1984).
QAtlas.Universality — Type
Universality{C}Parametric dispatch tag for universality classes. C is a Symbol identifying the class (:Ising, :XY, :Heisenberg, :Potts3, :Potts4, :Percolation, :KPZ, etc.).
Use with CriticalExponents (equilibrium) or GrowthExponents (KPZ-type) and a d keyword to select the spatial dimension:
QAtlas.fetch(Universality(:Ising), CriticalExponents(); d=2) # exact Rational
QAtlas.fetch(Universality(:Ising), CriticalExponents(); d=3) # numerical + _err
QAtlas.fetch(Universality(:Ising), CriticalExponents(); d=4) # mean-fieldQAtlas.VonNeumannEntropy — Type
VonNeumannEntropy{M}() <: AbstractQuantity
VonNeumannEntropy() # M = :equilibrium (default)
VonNeumannEntropy(:equilibrium) # explicit equilibrium S(ℓ)
VonNeumannEntropy(:quench) # post-quench S(ℓ, t)Von Neumann entanglement entropy of a reduced density matrix, S_vN = −Tr ρ_A log ρ_A. The mode parameter M::Symbol is a phantom type that splits the dispatch into:
:equilibrium— equilibrium / thermal valueS_vN = -Tr ρ_A log ρ_Aof the GS or thermal reduced density matrix on the firstℓsites (kwargℓ). This is the original meaning; the no-argument constructorVonNeumannEntropy()keeps back-compatibility by routing here.:quench— time-evolved entanglement entropyS_vN(ℓ, t) = -Tr ρ_A(t) log ρ_A(t)after a sudden quench from the ground state of aninitial::AbstractQAtlasModel(H_0) to the post-quench Hamiltonian (themodelargument tofetch). Calabrese–Cardy quasi-particle picture (J. Stat. Mech. P04010 (2005)): linear growthS(ℓ, t) ≈ (c/3) v_E tfort ≪ ℓ/(2 v_E), saturating at(c/3) log ℓ + constfort ≫ ℓ/(2 v_E).
See docs/src/calc/tfim-quench-entanglement.md for the free-fermion derivation in the TFIM.
QAtlas.WZWSU2 — Type
WZWSU2(k::Int) <: AbstractQAtlasModelWess–Zumino–Witten model with affine Lie algebra SU(2) at level k ≥ 1. Construction throws DomainError for k ≤ 0.
Special cases:
k = 1:c = 1(free boson at the SU(2)-symmetric radius; low-energy theory of the spin-1/2 Heisenberg antiferromagnet, Affleck 1989).k = 2:c = 3/2— equivalent to 3 free Majorana fermions (each contributingc = 1/2), or equivalently the smallest N=1 super-Virasoro minimal model. Note that "Ising × free Majorana" with one Majorana would only givec = 1/2 + 1/2 = 1 ≠ 3/2; the correct decomposition needs three Majorana fermions.k = 3:c = 9/5.
fetch(WZWSU2(1), CentralCharge()) # 1//1
fetch(WZWSU2(1), ConformalWeights(); j=1//2) # 1//4See also: MinimalModel, Universality, CentralCharge, ConformalWeights.
QAtlas.WignerSurmise — Type
WignerSurmise() <: AbstractQuantityWigner surmise nearest-neighbour level-spacing distribution P_β(s) for the three Wigner-Dyson ensembles (β ∈ {1, 2, 4}: GOE, GUE, GSE). The surmise is the exact N = 2 Gaussian-ensemble spacing distribution; it is also a celebrated, accurate approximation to the bulk N → ∞ spacing distribution. Returns the value P_β(s) at the requested s (the universality fetch carries β).
QAtlas.XCube — Type
XCube() <: AbstractQAtlasModelFracton X-cube model on the 3-D cubic lattice (Vijay-Haah-Fu 2016) — prototype of Type-I fracton topological order with subextensive ground-state degeneracy that scales linearly with each lattice direction.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
GroundStateDegeneracy | PBC | analytic (Vijay-Haah-Fu 2016 / Slagle-Kim 2017) |
References
- J. Haah, Phys. Rev. A 83, 042330 (2011).
- S. Vijay, J. Haah, L. Fu, Phys. Rev. B 94, 235157 (2016).
- K. Slagle, Y. B. Kim, Phys. Rev. B 96, 195139 (2017).
QAtlas.XXCorrelation — Type
XXCorrelation{M}() <: AbstractQuantity
XXCorrelation(; mode::Symbol = :static)Real-space 2-point ⟨σˣ_i σˣ_j⟩ correlator. See ZZCorrelation for the mode semantics.
QAtlas.XXStructureFactor — Type
XXStructureFactor() <: AbstractQuantityFourier-space equivalent of XXCorrelation.
QAtlas.XXZ1D — Type
XXZ1D(; J::Real = 1.0, Δ::Real = 0.0) <: AbstractQAtlasModelSpin-1/2 XXZ chain
H = J Σ_i [ S^x_i S^x_{i+1} + S^y_i S^y_{i+1} + Δ S^z_i S^z_{i+1} ]Convention: J > 0 is antiferromagnetic. Δ = 1 is the isotropic Heisenberg AF point, Δ = 0 is the XX (free-fermion) point, Δ = -1 is the isotropic ferromagnet. For |Δ| < 1 the chain is critical (Luttinger liquid, central charge c = 1).
QAtlas.XYh1D — Type
XYh1D(; Jx::Real = 1.0, Jy::Real = 1.0, h::Real = 0.0) <: AbstractQAtlasModelAnisotropic XY chain in a transverse field (Lieb-Schultz-Mattis 1961):
H = -Σ_i ( Jx σ^x_i σ^x_{i+1} + Jy σ^y_i σ^y_{i+1} ) - h Σ_i σ^z_i.Requires Jx > 0 and Jy > 0.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
MassGap | Infinite | closed-form XX limit `2·max(0, |
Phase 1 only exposes the isotropic XX limit Jx = Jy = J; any anisotropic Jx ≠ Jy raises DomainError (Phase 2: general-k minimisation of the LSM/Pfeuty dispersion).
References
- E. Lieb, T. Schultz, D. Mattis, Annals Phys. 16, 407 (1961).
- P. Pfeuty, Annals Phys. 57, 79 (1970).
- S. Sachdev, Quantum Phase Transitions (2nd ed., CUP 2011), §2.
QAtlas.YYCorrelation — Type
YYCorrelation{M}() <: AbstractQuantity
YYCorrelation(; mode::Symbol = :static)Real-space 2-point ⟨σʸ_i σʸ_j⟩ correlator.
QAtlas.YYStructureFactor — Type
YYStructureFactor() <: AbstractQuantityFourier-space equivalent of YYCorrelation.
QAtlas.YangLee — Type
YangLee() <: AbstractQAtlasModelYang-Lee CFT — the non-unitary Virasoro minimal model M(5, 2) describing the universality class of the Lee-Yang edge singularity (Yang-Lee 1952; Cardy 1985).
The model has no continuous parameters: M(5, 2) is fixed.
Quantities registered (Phase 1):
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | delegated to MinimalModel(5,2) |
ConformalWeights | Infinite | delegated to MinimalModel(5,2) |
The famous negative-dimension primary h_{1,2} = -1/5 is the edge exponent and is what makes the theory non-unitary (c = -22/5 < 0).
References
- C. N. Yang and T. D. Lee, Phys. Rev. 87, 404 (1952).
- J. L. Cardy, Phys. Rev. Lett. 54, 1354 (1985).
QAtlas.ZZCorrelation — Type
ZZCorrelation{M}() <: AbstractQuantity
ZZCorrelation(; mode::Symbol = :static)Real-space 2-point correlator ⟨σᶻ_i σᶻ_j⟩. The mode M::Symbol is a phantom type parameter so dispatch can specialise on it.
Supported mode values (by convention; individual models need only implement the ones they support):
:static— equal-time, thermal or zero-temperature value:connected—⟨σᶻ_i σᶻ_j⟩ − ⟨σᶻ_i⟩⟨σᶻ_j⟩:dynamic— retarded real-time correlator⟨σᶻ_i(t) σᶻ_j(0)⟩:lightcone— space-time spreading⟨σᶻ_i(t) σᶻ_j(0)⟩as a matrix over (site, time)
The companion type for Fourier-space structure factors is ZZStructureFactor, kept separate because it carries (q, ω) arguments instead of (i, j, t).
QAtlas.ZZStructureFactor — Type
ZZStructureFactor() <: AbstractQuantityFourier-space structure factor S_zz(q, ω) = ∫ dt e^{iωt} (1/N) Σ_{ij} e^{iq·(i-j)} ⟨σᶻ_i(t)σᶻ_j(0)⟩ (or its static limit, depending on the model's fetch signature).
Kept as a separate type from ZZCorrelation because the argument domain is (q, ω) instead of (i, j, t) and because existing users already expect a dedicated StructureFactor quantity.
QAtlas.ZnClock — Type
ZnClock(n::Integer) <: AbstractQAtlasModel
ZnClock(; n::Integer=2)2-D Z_n clock model with n clock states.
Phase-1 quantities:
| Quantity | BC | Method |
|---|---|---|
CentralCharge | Infinite | delegated to MinimalModel (n = 2, 3) |
For n ≥ 4 the critical theory is a continuous family of c = 1 CFTs (Ashkin-Teller for n = 4; intermediate BKT phase for n ≥ 5) whose selection requires a coupling parameter; these branches throw a DomainError and are deferred to Phase 2.
References
- J. V. José, L. P. Kadanoff, S. Kirkpatrick, D. R. Nelson, Phys. Rev. B 16, 1217 (1977).
- S. Elitzur, R. B. Pearson, J. Shigemitsu, Phys. Rev. D 19, 3698 (1979).
QAtlas.ZnParafermion — Type
ZnParafermion(; n::Integer=3) <: AbstractQAtlasModelZn parafermion CFT (Fateev-Zamolodchikov 1985), the SU(2)n / U(1) coset conformal field theory with central charge c = 2(n-1)/(n+2).
The default n = 3 selects the Z_3 parafermion = 3-state Potts critical CFT with c = 4/5.
Arguments
n::Integer = 3— parafermion level; must satisfyn ≥ 2.
Examples
QAtlas.fetch(ZnParafermion(; n=2), CentralCharge(), Infinite()) # 1//2 (Ising)
QAtlas.fetch(ZnParafermion(; n=3), CentralCharge(), Infinite()) # 4//5 (3-state Potts)
QAtlas.fetch(ZnParafermion(; n=4), CentralCharge(), Infinite()) # 1//1 (free boson)
QAtlas.fetch(ZnParafermion(; n=5), CentralCharge(), Infinite()) # 8//7References
- V. A. Fateev, A. B. Zamolodchikov, Sov. Phys. JETP 62, 215 (1985).
QAtlas._aklt_hamiltonian_matrix — Method
_aklt_hamiltonian_matrix(model::AKLT1D, N::Int, ::OBC) -> Matrix{ComplexF64}Assemble the dense 3^N × 3^N OBC Hamiltonian
H = J Σᵢ [ Sᵢ · Sᵢ₊₁ + (1/3) (Sᵢ · Sᵢ₊₁)² ]via explicit tensor products built from the spin-1 primitives in HeisenbergS1.jl. Capped by _MAX_ED_SITES_S1.
QAtlas._bc_size — Function
_bc_size(bc::BoundaryCondition, kwargs) -> IntReturn the effective system size for bc. Prefers bc.N when it is positive; otherwise looks up kwargs[:N]; otherwise throws. Legacy fetch methods can use this helper to accept both OBC(N=24) and OBC(); N=24 call forms.
QAtlas._bc_with_legacy_N — Method
_bc_with_legacy_N(bc::OBC, m::Model{:TFIM}) -> OBCIf bc.N == 0 (zero-arg OBC() call) but the legacy Model Dict has an :N entry, promote it to a sized OBC(N) so the concrete fetch can read bc.N uniformly.
QAtlas._build_wick_matrix — Method
_build_wick_matrix(idx_t, idx_0, Σ, R, RΣ) -> Matrix{ComplexF64}Assemble the Wick contraction matrix F for a product
γ_{idx_t[1]}(t) γ_{idx_t[2]}(t) … γ_{idx_0[1]}(0) γ_{idx_0[2]}(0) …from the ground-state Majorana covariance Σ, the time evolution matrix R = exp(h t), and the precomputed product RΣ = R * Σ. F is complex antisymmetric; its Pfaffian gives ⟨…⟩_GS.
QAtlas._cardy_central_charge — Method
_cardy_central_charge(model::Universality{C}; kwargs...) -> Float64Internal helper: fetch the central charge c of the universality class model and return it as a Float64. Re-throws as an ErrorException with a Calabrese–Cardy-specific message if the class has no CentralCharge defined.
QAtlas._cardy_renyi_c — Method
_cardy_renyi_c(c::Real, α::Real) -> Float64Calabrese–Cardy Rényi-α coefficient substitution
c -> c · (1 + 1/α) / 2.Reduces to c at α = 1. Used to produce the Rényi entropy from the same closed form as the von Neumann case.
QAtlas._check_quench_couplings — Method
_check_quench_couplings(model_f::TFIM, initial::TFIM)Validate that a TFIM quench preserves the Ising coupling J. The GGE closed forms in TFIM_gge.jl only treat h-quenches; a J quench is not in the standard Calabrese–Essler–Fagotti framework and the n_k formula derived above does not apply.
QAtlas._ed_log_partition — Method
_ed_log_partition(evals::AbstractVector, β::Real) -> Float64log Z(β) = log Σ exp(-β eₙ) with an emin shift to avoid overflow at large β:
log Z = -β eₘᵢₙ + log Σ exp(-β (eₙ - eₘᵢₙ))QAtlas._ed_thermal_energy — Method
_ed_thermal_energy(H::AbstractMatrix, β::Real) -> Float64⟨H⟩_β = Tr(H exp(-βH)) / Tr(exp(-βH)). H must be Hermitian.
QAtlas._ed_thermal_entropy — Method
_ed_thermal_entropy(H::AbstractMatrix, β::Real) -> Float64Total Gibbs entropy S(β) = β·(⟨H⟩ - F) = -Σ wₙ log wₙ, with wₙ = exp(-β(eₙ - eₘᵢₙ)) / Z̃. The first form is what we evaluate because both pieces share the eigendecomposition.
QAtlas._ed_thermal_expectation — Method
_ed_thermal_expectation(evals, evecs, O_diag, β) -> Float64Return ⟨O⟩_β = Σ_n O_nn exp(-β eₙ) / Σ_n exp(-β eₙ) given a pre-computed eigendecomposition (evals, evecs) of H and the diagonal of O in the H-eigenbasis, O_diag[n] = ⟨n|O|n⟩.
Uses a log-sum-exp shift (eₘᵢₙ) so β up to ~10^2 / bandwidth is numerically stable.
QAtlas._ed_thermal_free_energy — Method
_ed_thermal_free_energy(H::AbstractMatrix, β::Real) -> Float64Total Helmholtz free energy F(β) = -log Z / β from the eigenspectrum of a Hermitian H. Per-site values: divide by N at the call site.
QAtlas._ed_thermal_specific_heat — Method
_ed_thermal_specific_heat(H::AbstractMatrix, β::Real) -> Float64Total heat capacity from the energy variance,
C(β) = β² · (⟨H²⟩ - ⟨H⟩²).Equivalent to -β² · ∂⟨H⟩/∂β; computed exactly from the eigenspectrum without numerical differentiation.
QAtlas._extended_hubbard1d_check_v_zero — Method
_extended_hubbard1d_check_v_zero(model::ExtendedHubbard1D)Throw DomainError if model.V is not zero. Phase 1 only exposes the V = 0 limit (delegated Lieb–Wu) — the V ≠ 0 phase diagram is deferred to Phase 2.
QAtlas._free_energy_fe — Method
_free_energy_fe(a, b, c) -> Float64Closed-form free-energy density of the six-vertex model in the ferroelectric phase Δ > 1 (Lieb 1967c, Baxter 1982 §8.10):
f = −log max(a, b)The ground state is the unique frozen configuration with all arrows parallel along the favoured axis, so the partition function is dominated by (max(a,b))^N and the free energy density is −log of the larger weight. At the KDP point (a > 2, b = c = 1) this reduces to −log a.
QAtlas._heisenberg_szz_muller — Method
_heisenberg_szz_muller(J, q, ω) -> Float64Müller-ansatz approximation to the longitudinal dynamic structure factor S^{zz}(q, ω) of the spin-½ XXX AFM chain. The closed-form expression, valid inside the two-spinon continuum, is
S^{zz}(q, ω) ≈ Θ[ω - ε_L(q)] · Θ[ε_U(q) - ω]
----------------------------------
2 √(ω² - ε_L(q)²)with ε_L(q) = (π J / 2) |sin q| and ε_U(q) = π J |sin(q/2)|. Outside the closed continuum (i.e. ω ≤ ε_L or ω ≥ ε_U) the expression returns exactly 0.0.
The square-root singularity at the lower edge is integrable, so we return the raw analytical value (no regulator); callers performing ω-integrals are expected to use a routine that handles the integrable singularity (e.g. Gauss–Chebyshev or substitution ω² = ε_L² + s).
This is Phase 1 — the Müller ansatz captures the lower-edge behaviour and the support correctly but mis-estimates the spectral weight near the upper edge. The Phase 2 exact result is given by the Caux–Hagemans (2006) algebraic Bethe ansatz form factor sum; implementing it is tracked as a TODO in docs/src/calc/heisenberg-spinons.md.
Despite the SU(2) symmetry of the spin-½ XXX AFM chain, the individual transverse and longitudinal dynamic structure factors S^{xx}(q, ω) = S^{yy}(q, ω) and S^{zz}(q, ω) differ at any q ≠ 0 — only their sum (the rotation-invariant trace Σ_α S^{αα}) is equal across spin axes. The transverse Müller- style ansatz (Schulz 1986; Bougourzi-Karbach-Müller 1998) shares the two-spinon support [ε_L(q), ε_U(q)] but has a different singularity structure at the lower edge. This method returns only the longitudinal S^{zz}; do not use it as a drop-in for S^{xx} at finite q.
QAtlas._hubbard1d_charge_gap — Method
_hubbard1d_charge_gap(t, U) -> Float64Lieb–Wu (1968) Mott (charge) gap at half filling:
Δ_c = (16 t² / U) ∫_1^∞ dω √(ω² - 1) / sinh(2π t ω / U).The integrand vanishes at ω = 1 like √(ω-1) and decays exponentially at large ω; quadgk resolves both endpoints with the default Gauss–Kronrod adaptive subdivision.
QAtlas._hubbard1d_check_half_filling — Method
_hubbard1d_check_half_filling(model::Hubbard1D)Throw a DomainError if model.μ is not the half-filling chemical potential U/2. Phase 1 only exposes the Lieb–Wu closed forms at the particle-hole-symmetric point; general filling requires the coupled integral equations and is tracked as Phase 2 follow-up.
QAtlas._hubbard1d_e0 — Method
_hubbard1d_e0(t, U) -> Float64Lieb–Wu (1968) ground-state energy per site at half filling:
E₀/N = -4 t ∫_0^∞ dω J₀(ω) J₁(ω) / [ ω (1 + exp(ω U / 2t)) ].QAtlas._hubbard1d_e0_integrand — Method
_hubbard1d_e0_integrand(ω, t, U)Integrand of the Lieb–Wu ground-state-energy integral at half filling,
f(ω) = J₀(ω) J₁(ω) / [ ω (1 + exp(ω U / 2t)) ].The integrand is regular at ω = 0 (J₁(ω)/ω → 1/2 as ω → 0); we evaluate the limit explicitly to avoid 0/0 at the lower endpoint that some quadgk adaptive subdivisions produce.
QAtlas._ising_sq_log_z — Method
_ising_sq_log_z(m, Lx, Ly, β, J) -> Reallog tr(T^Lx) for the Lx × Ly torus — the finite-N partition function in log form, generic in β and J so ForwardDiff Duals propagate through the transfer matrix.
QAtlas._ising_sq_transfer_matrix — Method
_ising_sq_transfer_matrix(Ly, β, J) -> MatrixReturn the 2^Ly × 2^Ly symmetric transfer matrix for a row of Ly Ising spins with PBC along the row direction.
The symmetric (Hermitian) form is defined by:
T_{σ,σ'} = exp(βJ/2 · Eₕ(σ)) · exp(βJ · Eᵥ(σ,σ')) · exp(βJ/2 · Eₕ(σ'))where Eₕ(σ) = Σⱼ₌₁^Ly σⱼ σ_{(j mod Ly)+1} (horizontal bonds within row, PBC) Eᵥ(σ,σ') = Σⱼ₌₁^Ly σⱼ σ'ⱼ (vertical bonds between rows)
Note: for Ly = 2, each horizontal bond is counted twice by the PBC sum (σ₁σ₂ + σ₂σ₁ = 2σ₁σ₂). The same applies along the transfer direction: tr(T^Lx) double-counts the vertical bonds when Lx = 2, because the cyclic product T[σ,σ'] T[σ',σ] weights the single pair of rows with the vertical Boltzmann factor twice. This doubling is an intrinsic property of the PBC transfer-matrix formula at L = 2 and is used consistently by the brute-force cross-check in test/util/classical_partition.jl (its bond list is constructed to match this convention by enumerating (i, j) ↔ (i, (j mod Ly) + 1) and (i, j) ↔ ((i mod Lx) + 1, j) for every site).
The function is generic in β and J so that automatic-differentiation dual numbers (e.g. ForwardDiff.Dual) propagate through the matrix elements. The element type of the returned matrix is inferred from typeof(exp(β * J)).
QAtlas._kitaev1d_bdg_spectrum — Method
_kitaev1d_bdg_spectrum(N, μ, t, Δ) -> Vector{Float64}Return the N non-negative BdG quasiparticle energies of the OBC Kitaev1D chain with N sites and parameters (μ, t, Δ).
The BdG matrix in Nambu basis is H_BdG = [[A, B]; [-B, -A]] (the same real, antisymmetric 2N × 2N convention used by _tfim_bdg_spectrum), with
A_{ii} = -μ
A_{i,i+1} = A_{i+1,i} = -t
B_{i,i+1} = +Δ, B_{i+1,i} = -Δ.Eigenvalues come in ± pairs; the function returns the non-negative half, sorted ascending. The BdG zero modes of the topological phase (lifted by exponentially small N⁻¹ corrections) appear as the smallest entry.
This is a strict generalisation of _tfim_bdg_spectrum: at (μ, t, Δ) = (-2h, J, J) the matrix coincides with the TFIM BdG matrix and the returned spectrum matches _tfim_bdg_spectrum(N, J, h).
QAtlas._kitaev1d_majorana_bloch — Method
_kitaev1d_majorana_bloch(μ, t, k::Symbol) -> Matrix{Float64}Return the 2 × 2 real antisymmetric Majorana Bloch matrix A(k) of the infinite Kitaev1D chain at the time-reversal-invariant momenta k ∈ {:zero, :pi}. At those momenta the pairing amplitude 2Δ sin k vanishes, so the matrix depends only on μ and t:
A(k=0) = [ 0 μ + 2t; -(μ + 2t) 0 ] ⇒ Pf A(k=0) = μ + 2t
A(k=π) = [ 0 μ - 2t; -(μ - 2t) 0 ] ⇒ Pf A(k=π) = μ - 2t(Convention: the diagonal Majorana Bloch matrix at TR-invariant momenta has off-diagonal entry equal to the on-site mass term μ + 2t cos k.) This is the matrix on which the Kitaev (2001) Z₂ Pfaffian invariant is evaluated.
QAtlas._kitaev_bz_integral — Method
_kitaev_bz_integral(integrand, model; rtol) -> Float64Adaptive nested Gauss-Kronrod quadrature of integrand(θ₁, θ₂) over the 2D Brillouin zone (θ₁, θ₂) ∈ [0, 2π)². Mirrors the inner / outer tolerance choice already used by the T = 0 Energy integration in KitaevHoneycomb.jl. Returns the integral value (the contribution of the prefactor 1/((2π)²) is left to the caller).
QAtlas._kitaev_energy_per_site_infinite_thermal — Method
fetch(model::KitaevHoneycomb, ::Energy{:per_site}, ::Infinite;
beta=nothing, rtol=1e-8, kwargs...) -> Float64Per-site matter-sector energy of the infinite Kitaev honeycomb.
beta = nothing(default) routes to the existing T = 0 ground-state formulaε_gs = -(1/(8π²)) ∫ |f| d²θ— preserved bit-for-bit (the method dispatched is the original one inKitaevHoneycomb.jl).beta::Realreturns the finite-temperature valueε(β) = -(1/(2·(2π)²)) ∫ (λ/2) tanh(βλ/2) d²θin the matter-sector free-fermion approximation.
Approximation regime: valid for T ≪ Δ_v (flux gap; Δ_v ≈ 0.07|K| at the isotropic gapless point). Above the flux gap the full finite-temperature thermodynamics needs flux-sector Monte Carlo (Nasu et al. 2014).
QAtlas._kitaev_energy_per_site_obc_thermal — Method
fetch(model::KitaevHoneycomb, ::Energy{:per_site}, ::OBC;
Lx, Ly, beta=nothing) -> Float64Per-site matter-sector energy on a Lx × Ly OBC honeycomb strip.
beta = nothing(default) returns the T = 0 ground-state energy-Σ σ_k / (2·Lx·Ly)already provided byKitaevHoneycomb.jl— the original method is preserved unchanged.beta::Realreturns the matter-sector thermal valueε(β) = -(1/(2·Lx·Ly)) Σ_k (σ_k/2) tanh(βσ_k/2).
Same matter-sector approximation regime as the Infinite variant.
QAtlas._kitaev_fk_abs² — Method
_kitaev_fk_abs²(m, θ₁, θ₂) -> Float64|f(k)|² = Kₓ² + Kᵧ² + K_z² + 2Kₓ Kᵧ cos θ₁ + 2Kᵧ K_z cos θ₂ + 2K_z Kₓ cos(θ₁ − θ₂).
QAtlas._kitaev_logcosh2 — Method
_kitaev_logcosh2(x) -> typeof(x)Numerically stable evaluation of log(2 cosh(x)) = |x| + log1p(exp(-2|x|)). The naive log(2 cosh(x)) overflows for |x| ≳ 700; this rewriting is exact and stays bounded (→ |x|) at large arguments.
Named with a _kitaev_ prefix to avoid shadowing the analogous helper in TFIM_thermal.jl once both files are included in the same module.
QAtlas._kitaev_pbc_sector_energy — Method
_kitaev_pbc_sector_energy(m, Lx, Ly, νx, νy) -> Float64Per-site ground state energy on the Lx × Ly torus within a fixed topological flux sector (νx, νy) ∈ {0, 1/2}². νx = 1/2 flips every bond that crosses the m1 = Lx → m1 = 1 seam (anti-periodic fermion boundary condition along the x-direction); νy = 1/2 does the same in the y-direction. The four sectors correspond to the four inequivalent choices (W_x, W_y) ∈ {±1}² of the two non-contractible Wilson-loop operators.
Built as a singular-value decomposition of the Majorana hopping matrix M with entries ±K_γ, where the sign flips whenever a bond of type γ crosses one of the selected seams. Per-site energy = −Σ σ_k / (2·Lx·Ly).
QAtlas._kitaev_thermo_infinite — Method
_kitaev_thermo_infinite(quantity, model, β; rtol) -> Float64Per-site matter-sector thermodynamic potential of the infinite Kitaev honeycomb at inverse temperature β. quantity is one of (:free_energy, :entropy, :specific_heat, :energy).
The integrals are evaluated via adaptive Gauss-Kronrod quadrature over the BZ (see _kitaev_bz_integral). The leading factor 1/(2·(2π)²) accounts for the per-site (two sublattice atoms) and the 2D BZ volume.
QAtlas._kitaev_thermo_obc — Method
_kitaev_thermo_obc(quantity, model, Lx, Ly, β) -> Float64Per-site matter-sector thermodynamic potential of the Lx × Ly OBC honeycomb strip at inverse temperature β, computed by summing each BdG positive Majorana mode's contribution.
The bipartite hopping matrix M = _obc_hopping_matrix(model, Lx, Ly) has Lx·Ly positive singular values σ_k; the lattice carries N_sites = 2·Lx·Ly sites, so per-site potentials scale as (1/(2·Lx·Ly)) Σ_k g(σ_k) with g the free-fermion-mode kernel.
QAtlas._majorana_covariance_gs — Method
_majorana_covariance_gs(h::AbstractMatrix) -> Matrix{Float64}Ground-state Majorana covariance Σ of a quadratic Hamiltonian whose Majorana matrix is h. Σ is real antisymmetric, with ⟨γ_a γ_b⟩_GS = δ_{ab} + i Σ_{ab}. The formula Σ = -i · sign(i h) is used, evaluated through an eigendecomposition of the Hermitian matrix i h.
QAtlas._majorana_evolution — Method
_majorana_evolution(h::AbstractMatrix, t::Real) -> Matrix{Float64}exp(h * t) for a real antisymmetric h, returned as a real orthogonal matrix. Tiny imaginary noise from the matrix exponential is projected away.
QAtlas._majorana_ham — Method
_majorana_ham(N, J, h) -> Matrix{Float64}Return the 2N × 2N real antisymmetric Majorana Hamiltonian matrix h of the OBC TFIM such that H = (i/4) Σ h_{ab} γ_a γ_b.
QAtlas._majorana_thermal_covariance — Method
_majorana_thermal_covariance(h::AbstractMatrix, β::Real) -> Matrix{Float64}Thermal-equilibrium Majorana covariance at inverse temperature β. The T = 0 ground-state formula Σ_GS = -i sign(i h) generalises to
Σ(β) = -i tanh((β/2) · i h)so that ⟨γ_a γ_b⟩_β = δ_{ab} + i Σ(β)_{ab}. In the canonical 2×2 BdG block this gives the off-diagonal entry tanh(βΛ/2), recovering the Fermi–Dirac population of each quasiparticle and reducing to ±1 as β → ∞.
β = Inf falls back to _majorana_covariance_gs.
QAtlas._obc_hopping_matrix — Method
_obc_hopping_matrix(model, Lx, Ly) -> Matrix{Float64}Lx·Ly × Lx·Ly bipartite hopping matrix for the flux-free-sector Majorana problem with open boundary conditions in both lattice directions. M[a, b] = K_γ whenever the A-sublattice site of unit cell a connects to the B-sublattice site of unit cell b via a bond of type γ (matching Lattice2D's Honeycomb topology conventions: type1 ↔ Kz within the same cell, type2 ↔ Kx crossing (+a₁, −a₂), type3 ↔ Ky crossing (−a₂)). Bonds that would leave the Lx × Ly strip are dropped.
Row indexing: a = (m1 − 1) Ly + m2 for (m1, m2) ∈ 1..Lx × 1..Ly.
QAtlas._onsager_log_z_per_site — Method
_onsager_log_z_per_site(K) -> Float64Onsager (1944) thermodynamic-limit log Z / N = -βf per site of the classical 2D Ising model on the square lattice, parameterised by the reduced coupling K = βJ. The bond-counting convention matches _ising_sq_transfer_matrix(Lx, Ly, β, J) (each bond enumerated once for Lx, Ly ≥ 3):
-β f(K) = log(2) + (1/(2π)) ∫₀^π dφ · log[(A(φ) + √(A(φ)² − B²))/2]
A(φ) = cosh²(2K) − sinh(2K) · cos(φ),
B = sinh(2K).The integrand is finite for all K ≥ 0 (A ≥ B strictly except at the critical point K_c = ln(1+√2)/2, where A − B → 0 at φ = 0). QuadGK's adaptive quadrature handles the integrable square-root edge without intervention.
Reference: L. Onsager, Phys. Rev. 65, 117 (1944), Eq. (105).
QAtlas._pauli_string — Method
_pauli_string(N::Int, site_ops::Pair{Int,Matrix{ComplexF64}}...) -> Matrix{ComplexF64}Return the 2^N × 2^N tensor product that places each σ_k at its listed site and the identity elsewhere. site_ops is an arbitrary sequence of (site => matrix) pairs; missing sites get _σ0.
# σˣ at site 3 in an N=5 chain:
_pauli_string(5, 3 => _σx)
# σˣᵢ σᶻⱼ for (i,j) = (2,4):
_pauli_string(5, 2 => _σx, 4 => _σz)QAtlas._peschel_mode_entropy — Method
_peschel_mode_entropy(ν::Float64) -> Float64Per-mode von Neumann entropy
s(ν) = -[(1-ν)/2 · ln((1-ν)/2) + (1+ν)/2 · ln((1+ν)/2)]as a function of the Majorana covariance singular value ν ∈ [0, 1]. Numerically stable at ν → 0 (s → ln 2) and ν → 1 (s → 0).
QAtlas._peschel_mode_renyi — Method
_peschel_mode_renyi(ν::Real, α::Real) -> Float64Per-mode Rényi entropy of order α (α ≠ 1) for a Gaussian fermionic mode with covariance singular value ν ∈ [0, 1]:
s_α(ν) = (1 / (1 - α)) · log[ ((1+ν)/2)^α + ((1-ν)/2)^α ].Numerically stable at the corner cases:
ν → 1(pure mode): the vanishing branch is dropped rather than clamped toeps(Float64)— clamping injects anα · log(eps)error that becomes visible at smallα < 1(the dominant branch isα log 1 ≈ 0, so a clamped contribution ofexp(α log eps)no longer underflows). Seetest/models/test_TFIM_renyi.jl"Compare against full ED".ν → 0(maximally mixed): both branches are(1/2)^α, givings_α = log(2^{1-α}) / (1 − α) = log 2.α → ∞:s_α → -log p_max = -log((1+ν)/2)(min-entropy limit).α → 0⁺:s_α → log 2(Hartley entropy for a 2-level Bernoulli).
QAtlas._s1_heisenberg_hamiltonian_matrix — Method
_s1_heisenberg_hamiltonian_matrix(model::S1Heisenberg1D, N::Int) -> Matrix{ComplexF64}Assemble the 3^N × 3^N OBC Hamiltonian
H = J Σᵢ [Sˣᵢ Sˣᵢ₊₁ + Sʸᵢ Sʸᵢ₊₁ + Sᶻᵢ Sᶻᵢ₊₁]via explicit tensor products built from the spin-1 primitives. Capped by _MAX_ED_SITES_S1.
QAtlas._s1_partial_trace_A — Method
_s1_partial_trace_A(ρ::AbstractMatrix, ℓ::Int, N::Int) -> Matrix{ComplexF64}Trace out sites ℓ+1 .. N of the 3^N × 3^N density matrix ρ and return the 3^ℓ × 3^ℓ reduced density matrix on sites 1 .. ℓ (local dimension d = 3 for spin-1).
The convention matches _spin1_string: site 1 is the leftmost (slowest- running) tensor factor, so the row/column index decomposes as (i_A, i_B) with i_A = 0:dA-1, i_B = 0:dB-1 where dA = d^ℓ, dB = d^(N-ℓ). Reshaping ρ as (dA, dB, dA, dB) and contracting the B indices then gives ρ_A.
QAtlas._s1_thermal_expectation — Method
_s1_thermal_expectation(kernel, O) -> Float64Trace Tr(O ρ) from a precomputed _s1_thermal_kernel and a dense operator O of matching size. Returns the real part (Hermitian operators give real expectation values; small imaginary residue is numerical noise).
QAtlas._s1_thermal_kernel — Method
_s1_thermal_kernel(model, N, beta) -> NamedTupleCompute the eigendecomposition of the OBC spin-1 Heisenberg Hamiltonian on N sites and return everything downstream observables need to evaluate thermal expectation values:
H— the dense3^N × 3^NHermitian Hamiltonian matrixevals— sorted real eigenvalues (F.values)evecs— eigenvector matrix (F.vectors)weights— Boltzmann weightswₙ = exp(-β(eₙ - emin))/Z̃, normalised sosum(weights) == 1ρ—evecs · diagm(weights) · evecs', the thermal density matrix in the computational (product) basis
For beta = Inf we collapse onto the (possibly degenerate) ground-state manifold by zeroing all weights above evals[1] + 1e-12.
Constructed once per fetch call (so a routine that needs both an energy and a magnetisation does not pay for two eigen calls). No caching across calls — that would require a per-model mutable cache and hasn't been profiled to matter yet.
QAtlas._six_vertex_delta — Method
_six_vertex_delta(a, b, c) -> Float64Lieb / Baxter phase parameter Δ = (a² + b² − c²) / (2 a b). All exact six-vertex thermodynamics is a function of Δ together with the overall energy scale.
QAtlas._six_vertex_phase — Method
_six_vertex_phase(a, b, c) -> SymbolReturn one of :ferroelectric, :disordered, :antiferroelectric according to whether Δ > 1, |Δ| ≤ 1, or Δ < −1. Phase boundaries |Δ| = 1 are treated as members of the disordered phase (KDP / F-model critical points).
QAtlas._spin1_string — Method
_spin1_string(N::Int, site_ops::Pair{Int,Matrix{ComplexF64}}...) -> Matrix{ComplexF64}Tensor-product analogue of _pauli_string for spin-1 chains. Returns the 3^N × 3^N operator that places each Sᵅ at its listed site and the 3×3 identity elsewhere.
QAtlas._sx_expect — Method
_sx_expect(Σ, i) -> Float64⟨σˣ_i⟩_GS = Σ[2i-1, 2i], since σˣ_i = -i γ_{2i-1} γ_{2i}.
QAtlas._sx_sx_corr — Method
_sx_sx_corr(N, J, h, i, j, t; β = Inf) -> ComplexF64⟨σˣ_i(t) σˣ_j(0)⟩_β for the OBC TFIM. Reduces to a 4×4 Pfaffian since σˣ_k = -i γ_{2k-1} γ_{2k}. β = Inf ⇒ ground state.
QAtlas._sx_sx_static_thermal — Method
_sx_sx_static_thermal(N, J, h, β) -> Matrix{Float64}C[i, j] = ⟨σˣ_i σˣ_j⟩_β at OBC, evaluated as the t = 0 slice of the free-fermion Pfaffian / Wick formula. Symmetric, diagonal = 1 exactly (σˣ² = I). One Majorana diagonalisation amortised over N(N-1)/2 small (4×4) Pfaffians.
QAtlas._sy_sy_corr — Method
_sy_sy_corr(N, J, h, i, j, t; β = Inf) -> ComplexF64⟨σʸ_i(t) σʸ_j(0)⟩_β for the OBC TFIM at inverse temperature β. Wraps _sy_sy_corr_from_cached with a fresh Majorana diagonalisation and time-evolution matrix.
QAtlas._sy_sy_corr_from_cached — Method
_sy_sy_corr_from_cached(Σ, R, i, j) -> ComplexF64⟨σʸ_i(t) σʸ_j(0)⟩_β from a precomputed thermal Majorana covariance Σ and time-evolution matrix R = exp(h·t). Same structure as _sz_sz_corr_from_cached (in TFIM_dynamics.jl) — only the index lists differ.
The overall phase is (-i)^{i+j-2}: each σʸ_k contributes -(-i)^{k-1}; the two minus signs cancel, leaving (-i)^{i+j-2}.
QAtlas._sy_sy_static_thermal — Method
_sy_sy_static_thermal(N, J, h, β) -> Matrix{Float64}C[i, j] = ⟨σʸ_i σʸ_j⟩_β at OBC. Same structure as _sx_sx_static_thermal but uses the σʸ Majorana index list defined in TFIM_yy.jl.
QAtlas._sz_sz_corr — Method
_sz_sz_corr(N, J, h, i, j, t; β = Inf) -> ComplexF64⟨σᶻ_i(t) σᶻ_j(0)⟩_β for the OBC TFIM at inverse temperature β (default Inf ⇒ ground state).
Implementation: Wick / Pfaffian over the (2i-1) + (2j-1) = 2(i+j)-2 Majorana operators constituting the product. The overall phase is (-i)^{i+j-2}. The thermal generalisation enters only through the Majorana 2-point function
⟨γ_a γ_b⟩_β = δ_{ab} + i Σ(β)_{ab}, Σ(β) = -i tanh((β/2) i h),so the body of the Pfaffian assembly is unchanged.
QAtlas._sz_sz_spreading — Method
_sz_sz_spreading(N, J, h, center, times) -> Matrix{ComplexF64}Return C[it, ix] = ⟨σᶻ_ix(t_it) σᶻ_center(0)⟩_GS for ix ∈ 1:N, t_it ∈ 1:length(times). Reuses the Majorana Hamiltonian, covariance, and (per time-step) evolution matrix, so the cost is O(length(times) · N · M³) with M = 2(center + N) - 2.
QAtlas._sz_sz_static_thermal — Method
_sz_sz_static_thermal(N, J, h, β; i = nothing, j = nothing) -> Matrix{Float64}Static ⟨σᶻ_i σᶻ_j⟩_β for the OBC TFIM at inverse temperature β. If both i and j are given, returns a single value (wrapped in a 1×1 matrix); otherwise returns the full N×N matrix of equal-time correlators.
QAtlas._tfim_bdg_diagonalise — Method
_tfim_bdg_diagonalise(N, J, h) -> (Λ::Vector{Float64}, ϕ::Matrix{Float64}, ψ::Matrix{Float64})Diagonalise the OBC BdG matrix of the TFIM with N sites, returning the N positive quasiparticle energies Λn and the corresponding particle / hole amplitudes (ϕn, ψ_n) ∈ ℝ^N (Lieb-Schultz-Mattis convention).
The Bogoliubov quasiparticles are
η_n = Σ_i [ (ϕ_n,i + ψ_n,i)/2 c_i + (ϕ_n,i − ψ_n,i)/2 c_i^† ]so the orthogonal (N + N) × (2N) Bogoliubov transformation has rows (g_n; h_n) = ((ϕ_n + ψ_n)/2, (ϕ_n − ψ_n)/2).
QAtlas._tfim_bdg_full — Method
_tfim_bdg_full(N, J, h) -> (Λ::Vector{Float64}, U::Matrix{Float64}, V::Matrix{Float64})Full diagonalisation of the 2N × 2N TFIM OBC BdG Hamiltonian. Returns the N positive quasiparticle energies Λ[n] and the Bogoliubov amplitudes U[i, n], V[i, n] (site-index i, mode-index n) defining
η_n = Σᵢ U[i, n] cᵢ + V[i, n] cᵢ†,normalised by Σᵢ (U[i, n]² + V[i, n]²) = 1.
The 2N × 2N BdG matrix is H_BdG = [A B; -B -A] with A symmetric (transverse field + hopping) and B antisymmetric (pairing); its spectrum is symmetric about zero by particle-hole symmetry. We pick the N eigenvectors with positive eigenvalues; for each such eigenvector (x, y) ∈ ℝ²ᴺ, we identify U[:, n] = x, V[:, n] = y.
Diagonalising the full 2N × 2N matrix (rather than the squared N × N system (A−B)(A+B) φ = Λ² φ) is robust to the near-zero edge mode in the ordered phase (h < J), which becomes Λ ≈ 10⁻¹⁵ and renders the ψ = (A+B)φ / Λ reconstruction ill-conditioned at certain N.
QAtlas._tfim_bdg_spectrum — Method
_tfim_bdg_spectrum(N, J, h) -> Vector{Float64}Return the N positive BdG quasiparticle energies Λₙ > 0 for the OBC TFIM with N sites, Ising coupling J, and transverse field h.
The 2N×2N BdG matrix is: H_BdG = [[A, B]; [-B, -A]] where A (tridiagonal, symmetric) encodes hopping + onsite energy, and B (antisymmetric) encodes the pairing terms from JW transformation.
A_{ii} = 2h
A_{i,i±1} = -J
B_{i,i+1} = +J, B_{i+1,i} = -JQAtlas._tfim_cc_entanglement — Method
_tfim_cc_entanglement(J, h, ℓ, β; α=1.0) -> Float64Calabrese-Cardy closed form for the Rényi-α entanglement entropy of a contiguous block of length ℓ in the infinite TFIM at inverse temperature β (use β = Inf for the ground state).
The Ising central charge c = 1/2 is hard-coded; the prefactor
P_α = (c / 6) · (1 + 1/α)reduces to c/3 at α = 1 (von Neumann) and to (c/6)(1 + 1/α) otherwise. At criticality (h ≈ J) the gapped form is replaced by its ξ → ∞ limit log(2 ℓ) (T = 0) or log[(β/π) sinh(π ℓ / β)] (T > 0).
Returns the leading-log term only — the non-universal additive constant S_0 is dropped, so downstream fits should include an offset.
Off-critical at finite β requires composing the gapped CC mass with the thermal CFT scaling and is not implemented here.
QAtlas._tfim_chi_F_infinite — Method
_tfim_chi_F_infinite(J, h; rtol=1e-10) -> Float64Per-site fidelity susceptibility χ_F / L for the infinite TFIM with respect to the transverse field h, computed by Gauss–Kronrod quadrature of the closed-form Bogoliubov-vacuum overlap integral
χ_F / L = (1 / 8π) ∫₀^π (J sin k)² / ε_k(h)⁴ dk,
ε_k(h) = √(J² + h² − 2 J h cos k) = Λ_k(h) / 2.Equivalent to (2/π) ∫₀^π (J sin k)² / Λ_k(h)⁴ dk if expressed in terms of the doubled BdG dispersion Λ_k = 2 ε_k.
The closed form χ_F / L = J² / (8 (J² - h²)²) (h ≠ J) follows by residue integration; the routine still does numerical quadrature so that small numerical errors propagate consistently with the OBC counterpart and so that the implementation is robust to future generalisations (e.g. χ_F with respect to J).
Throws DomainError at the critical point h = J (logarithmic divergence of the integrand at k = 0).
QAtlas._tfim_chi_F_obc — Method
_tfim_chi_F_obc(N, J, h) -> Float64Total fidelity susceptibility (NOT per site) of the OBC TFIM with N sites, with respect to the transverse field h.
Formula (2nd-order perturbation theory on the BdG diagonalisation):
χ_F = Σ_{p < q} 4 X_{pq}² / (Λ_p + Λ_q)²,
X_{pq} = Σⱼ [U_{q,j} V_{p,j} − U_{p,j} V_{q,j}],where U[j, n], V[j, n] are the Bogoliubov particle/hole amplitudes returned by _tfim_bdg_full.
Cost: O(N³) eigendecomposition + O(N³) for the X matrix + O(N²) summation.
QAtlas._tfim_chi_imag_zz_dynamic_proxy — Method
_tfim_chi_imag_zz_dynamic_proxy(J, h, β, q, ω, N_proxy, t_max, dt) -> Float64OBC large-N proxy implementation of the imaginary part of the dynamic longitudinal susceptibility χ''_zz(q, ω; β). Used by the Infinite() fetch router; the heavy lifting lives here so the public method stays a thin wrapper.
The Kubo formula (Kubo 1957; Mahan, Many-Particle Physics, ch. 3) gives the spectral function as the time-Fourier transform of the expectation value of the commutator,
χ''_zz(q, ω; β) = (1/2) ∫dt e^{iωt} · (1/N_b) Σ_{i,j ∈ bulk}
e^{-iq(i-j)} ⟨[σᶻ_i(t), σᶻ_j(0)]⟩_β.For Hermitian operators in a thermal state Hermiticity gives
⟨[σᶻ_i(t), σᶻ_j(0)]⟩_β = 2i Im ⟨σᶻ_i(t) σᶻ_j(0)⟩_β,so each (i, j, t) point reuses the cached Pfaffian correlator _sz_sz_corr_from_cached and only the imaginary part participates. The result is real (the explicit i from the commutator combines with the (1/2) and the imaginary part to give a real spectral function); we return real(...) defensively against round-off.
Discretisation: t ∈ [-t_max, t_max] with spacing dt, (i, j) restricted to the central bulk window [N/4, 3N/4] of an N_proxy-site OBC chain. The Majorana Hamiltonian and thermal covariance are computed once; the evolution matrix R(t) is recomputed at every time step (single 2N × 2N expm) — same machinery as _tfim_zz_structure_factor_dynamic_proxy.
QAtlas._tfim_dispersion — Method
_tfim_dispersion(k, J, h) -> Float64Single-particle BdG quasiparticle energy at momentum k for the TFIM with couplings J (Z-Z coupling) and h (transverse field):
Λ(k) = 2 √(J² + h² - 2 J h cos k).QAtlas._tfim_from_legacy_model — Method
_tfim_from_legacy_model(m::Model{:TFIM}) -> TFIMExtract J, h from the legacy Model{:TFIM}(params) Dict and build the concrete struct.
QAtlas._tfim_gge_energy_density — Method
_tfim_gge_energy_density(J, h0, hf) -> Float64Per-site GGE energy density of the post-quench TFIM (J, hf) starting from the ground state of (J, h0):
ε_GGE = -(1/π) ∫₀^π dk · (Λ_k(hf) / 2) · (1 − 2 n_k(h0, hf))with Λ_k(h) = 2 √(J² + h² − 2 J h cos k) and n_k = sin²(θ_k(h0) − θ_k(hf)).
Sanity:
h0 == hf⇒n_k ≡ 0⇒ε_GGE = -(1/π) ∫ Λ/2 dk = ε_GS(hf).
The integral is evaluated via adaptive Gauss-Kronrod quadrature with rtol = 1e-10.
QAtlas._tfim_gge_magnetization_x — Method
_tfim_gge_magnetization_x(J, h0, hf) -> Float64Per-site GGE transverse magnetisation ⟨σˣ⟩_GGE of the post-quench TFIM (J, hf) starting from the ground state of (J, h0):
⟨σˣ⟩_GGE = (2/π) ∫₀^π dk · (hf − J cos k)/Λ_k(hf) · (1 − 2 n_k)The factor (hf − J cos k)/Λ_k(hf) equals cos(2 θ_k(hf)) / 2, so equivalently
⟨σˣ⟩_GGE = (1/π) ∫₀^π dk · cos(2 θ_k(hf)) · (1 − 2 n_k).We use the explicit (hf - J cos k)/Λ_k form to share the integrand structure with the equilibrium MagnetizationX routine in TFIM_thermal.jl.
Sanity:
h0 == hf⇒n_k ≡ 0⇒ recovers the T = 0 / β = ∞ equilibrium value(2/π) ∫ (h − J cos k)/Λ_k dk.
QAtlas._tfim_gge_occupation — Method
_tfim_gge_occupation(k, J, h0, hf) -> Float64Conserved mode occupation n_k = sin²((θ_k(h0) − θ_k(hf))) generated by a sudden quench from initial transverse field h0 to final transverse field hf at momentum k.
Numerical detail: Δ(2θ) = 2θ_k(h0) − 2θ_k(hf) is computed via the two-argument atan (atan2) for branch safety; we then divide by 2 inside sin to get θ_k(h0) − θ_k(hf).
QAtlas._tfim_gge_two_theta — Method
_tfim_gge_two_theta(k, J, h) -> Float64The Bogoliubov double-angle 2 θ_k(h) of the TFIM at momentum k,
2 θ_k(h) = atan2(J sin k, h − J cos k) ∈ (-π, π].The atan2 form keeps the angle on the principal branch through the critical point h = J and through k = 0, π, which a naive atan(J sin k / (h - J cos k)) misses (the denominator changes sign).
QAtlas._tfim_loschmidt_obc_log_echo — Method
_tfim_loschmidt_obc_log_echo(N, J, h0, hf, t) -> Float64Compute log L(t) for the OBC TFIM quench h0 → hf at finite N.
Implementation: diagonalise BdG of H0 and Hf, build the rotation matrix between their Bogoliubov bases, and evaluate the per-mode Loschmidt product.
Concretely, the Bogoliubov transformations relate fermion operators to quasiparticles as
η_n = Σ_i ( g_n,i c_i + h_n,i c_i^† ),with the two row matrices G = (ϕ + ψ)/2, H = (ϕ − ψ)/2. The vacuum overlap of H0 and Hf Bogoliubov vacua decomposes into a per-mode product whose factors are
cos² θ_n + sin² θ_n e^{-2 i Λ_n^{(f)} t}with cos² θn = Σm |P^{(+)}{n,m}|², sin² θn = Σm |P^{(-)}{n,m}|², where
P^{(+)} = G^{(f)} G^{(0)†} + H^{(f)} H^{(0)†}
P^{(-)} = G^{(f)} H^{(0)†} + H^{(f)} G^{(0)†}.In the diagonal-pair limit (translationally invariant), this reduces to the issue's (cos²Δθ_k + sin²Δθ_k e^{-2iΛ_k t}) factor; for OBC the row-norm form folds residual mode mixing into per-mode angles consistent with unitarity (cos² + sin² = 1 is enforced by row normalisation).
The exact OBC Bogoliubov-vacuum overlap is a Pfaffian (or determinant) of the full (N + N) × (N + N) BdG mode-mixing matrix between the H0 and Hf bases — equivalent to the Onishi-Yoshida formula or Robledo's Pfaffian sign-resolved form for HFB vacua. The implementation here uses the diagonal (rank-1-per-row) approximation: each Hf mode n is summed against all H0 modes m only via the row norms Σ_m |P^{(±)}_{n,m}|², folding off-diagonal mode-mixing structure into per-mode angles consistent with unitarity. This is exact in the translationally- invariant (PBC, k-decoupled) limit and converges to the exact Pfaffian as N → ∞ at OBC, but at any finite N it carries an O(off-diagonal mode-mixing / N) discrepancy from the strict Pfaffian value. The cross-check test OBC N → ∞ matches Infinite (off-cusp) uses a 0.20 tolerance to accommodate this; a tighter assertion (e.g. <0.02 at N = 128) would expose the approximation. Replacing this with the Pfaffian form is a Phase 2 candidate if precision is needed at modest N.
Returns log L(t), suitable for direct λ = −log L / N conversion.
QAtlas._tfim_pbc_log_Z — Method
_tfim_pbc_log_Z(N, J, h, β) -> Float64log Z (eq. (1)) for the N-site PBC TFIM at inverse temperature β.
QAtlas._tfim_pbc_mass_gap — Method
_tfim_pbc_mass_gap(N, J, h) -> Float64Lowest single excitation energy of the N-site PBC TFIM.
The Hilbert space splits by Z₂ parity P = ∏ᵢ σˣᵢ:
- even parity (NS): GS energy
-½ Σ_k Λ_k, lowest excited state is a pair of quasiparticles → minimum two-particle energy isΛ_{k₁} + Λ_{k₂}over the two smallest NS Λ's. - odd parity (R): GS energy
-½ Σ_k Λ_k, lowest excited state is a single quasiparticle → minimum one-particle energy ismin_k Λ_k^R.
The mass gap is min(E_excited) − min(E_GS) across both sectors.
QAtlas._tfim_pbc_momenta — Method
_tfim_pbc_momenta(N, sector::Symbol) -> Vector{Float64}Return the N momenta for the requested fermion sector, sector ∈ (:NS, :R).
:NS(anti-periodic / even parity):k = (2j-1)π/N, j = 1..N:R(periodic / odd parity):k = 2jπ/N, j = 0..N-1 (includes k = 0; k = π only if N is even.)
QAtlas._tfim_pbc_thermo — Method
_tfim_pbc_thermo(quantity, N, J, h, β) -> Float64Compute one of the per-site thermodynamic potentials of the PBC TFIM. quantity is a Symbol:
:free_energy→ f = -T log Z / N:energy_per_site→ ε = -∂_β log Z / N:entropy→ s = β(ε - f):specific_heat→ cv = β² ∂²β log Z / N:transverse_magnetization→ mx = ∂h log Z / (Nβ):transverse_susceptibility→ χxx = ∂²h log Z / (Nβ)
QAtlas._tfim_pfeuty_mz — Method
_tfim_pfeuty_mz(J, h) -> Float64Pfeuty (1970) closed-form spontaneous longitudinal magnetisation per site for the infinite TFIM at T = 0 (Pauli convention, eigenvalues ±1):
m_z = (1 - (h/J)²)^{1/8} (h < J, ordered phase)
= 0 (h ≥ J, disordered phase)The exponent β = 1/8 is the Onsager–Yang exponent of the 2D Ising universality class.
Returns the positive branch of the spontaneously-broken Z₂ doublet (the negative branch is -m_z). m_z = 0 exactly at the critical point h = J.
QAtlas._tfim_sigma_x_quench_infinite — Method
_tfim_sigma_x_quench_infinite(J, h_0, h_f, t) -> Float64Closed-form 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(h0) for the infinite TFIM after a sudden quench h0 → h_f at fixed J. Adaptive Gauss–Kronrod quadrature with rtol = 1e-12 (the integrand is bounded, smooth on (0, π) for any non-critical h, and has a finite limit at the endpoints).
QAtlas._tfim_sigma_x_quench_obc — Method
_tfim_sigma_x_quench_obc(N, J, h_0, h_f, i, t) -> Float64Exact ⟨σˣ_i⟩(t) for the OBC TFIM after a sudden quench h_0 → h_f at fixed J, computed from the Majorana covariance of the initial ground state propagated by the post-quench Hamiltonian:
Σ_0 = _majorana_covariance_gs(_majorana_ham(N, J, h_0))
R(t) = _majorana_evolution(_majorana_ham(N, J, h_f), t)
Σ(t) = R(t) Σ_0 R(t)^T
⟨σˣ_i⟩(t) = Σ(t)[2i-1, 2i] (real).A single (i, t) point costs one 2N × 2N eigendecomposition for Σ0 plus one matrix exponential for R(t). Sweeps in i should reuse the returned matrix; sweeps in t should be hoisted to a custom loop that caches `Σ0and recomputes onlyR(t)`.
QAtlas._tfim_thermo_infinite — Method
_tfim_thermo_infinite(quantity, J, h, β) -> Float64Compute one of the per-site thermodynamic potentials of the infinite TFIM at inverse temperature β. quantity is a Symbol from (:free_energy, :entropy, :specific_heat, :transverse_magnetization, :transverse_susceptibility).
The integrals are evaluated via adaptive Gauss-Kronrod quadrature.
QAtlas._tfim_thermo_obc — Method
_tfim_thermo_obc(quantity, N, J, h, β) -> Float64Per-site thermodynamic potential for the OBC finite-N TFIM, computed by summing the contribution of each BdG quasiparticle mode.
The transverse magnetisation and its susceptibility require the full single-particle Bogoliubov coefficients, not just the spectrum, so this routine diagonalises the BdG matrix internally to obtain them.
QAtlas._tfim_transverse_obc — Method
_tfim_transverse_obc(quantity, N, J, h, β) -> Float64Compute m_x or χ_xx per site for OBC finite N by direct site-resolved BdG expectation. Uses the Majorana covariance formula
Σ(β) = -i tanh(β/2 · i h_BdG)(see TFIM_dynamics.jl) and identifies ⟨σˣ_i⟩ = Σ[2i-1, 2i].
The transverse susceptibility is computed via _xx_uniform_susceptibility (exact Wick contraction, no numerical differentiation).
QAtlas._tfim_zz_structure_factor_dynamic_proxy — Method
_tfim_zz_structure_factor_dynamic_proxy(J, h, β, q, ω, N_proxy, t_max, dt) -> Float64OBC large-N proxy implementation of the dynamic longitudinal structure factor S_zz(q, ω; β). Used by the Infinite() fetch router; the heavy lifting is performed here so the public method stays a thin wrapper.
The Fourier integral is replaced by a finite Riemann sum on t ∈ [-t_max, t_max] with spacing dt, and i, j run over the central bulk window [N/4, 3N/4] of an N_proxy-site OBC chain to suppress boundary contamination. The Majorana Hamiltonian and thermal covariance are computed once; the evolution matrix R(t) is recomputed at every time step (single 2N × 2N expm).
QAtlas._xx_static_structure_factor — Method
_xx_static_structure_factor(N, J, h, β, q) -> Float64S_xx(q, β) = (1/N) Σ_{i,j} e^{-iq(i-j)} ⟨σˣ_i σˣ_j⟩_β for OBC. Direct double sum over the N×N matrix returned by _sx_sx_static_thermal.
QAtlas._xx_uniform_susceptibility — Method
_xx_uniform_susceptibility(N, J, h, β) -> Float64Exact transverse susceptibility per site for the OBC TFIM,
χ_xx(β) = (β/N) Var(Σᵢ σˣᵢ)
= (β/N) Σᵢⱼ [ ⟨σˣᵢ σˣⱼ⟩_β − ⟨σˣᵢ⟩_β ⟨σˣⱼ⟩_β ]Uses the Majorana covariance matrix Σ[a,b] = ⟨γₐγᵦ⟩ − δₐᵦ. With σˣᵢ = -i γ_{2i-1} γ_{2i} the connected correlators follow from Wick's theorem:
Diagonal (i = j): ⟨(σˣᵢ)²⟩c = 1 − Σ[2i-1, 2i]² Off-diagonal (i ≠ j): ⟨σˣᵢ σˣⱼ⟩c = −Σ[2i-1,2j-1]·Σ[2i,2j] + Σ[2i-1,2j]·Σ[2i,2j-1]
No numerical differentiation; no Pfaffian library calls.
QAtlas._xxz1d_energy_yang_yang — Method
_xxz1d_energy_yang_yang(J, Δ; rtol = 1e-12, atol = 1e-14) -> Float64Ground-state energy per site of the spin-½ XXZ chain in the thermodynamic limit, evaluated by the Yang–Yang single-integral formula
e₀(Δ) = (J cos γ)/4 − J sin² γ · ∫_{-∞}^{∞} dλ /
[2 cosh(πλ) · (cosh(2γλ) − cos γ)],with Δ = cos γ, γ ∈ (0, π) (critical / gapless regime). The three canonical points Δ ∈ {-1, 0, 1} are dispatched in the caller for exactness; this helper is invoked only for general -1 < Δ < 1 with Δ ∉ {0}. Tolerance defaults give relative error ≤ 1e-12 against the closed-form values at Δ = 0, ±1 (verified in test_XXZ1D.jl).
Cost: a few QuadGK panel splits, ≈ 50 µs per call on a recent CPU.
QAtlas._xxz1d_from_legacy_model — Method
_xxz1d_from_legacy_model(m::Model{:XXZ1D}) -> XXZ1DQAtlas._xxz1d_hamiltonian_matrix — Method
_xxz1d_hamiltonian_matrix(model::XXZ1D, N::Int) -> Matrix{ComplexF64}Assemble the 2^N × 2^N OBC Hamiltonian
H = J Σᵢ [ Sˣ_i Sˣ_{i+1} + Sʸ_i Sʸ_{i+1} + Δ Sᶻ_i Sᶻ_{i+1} ]
= (J/4) Σᵢ [ σˣ σˣ + σʸ σʸ + Δ σᶻ σᶻ ]via explicit tensor products built from the Pauli primitives in src/core/dense_ed.jl. Capped by _MAX_ED_SITES.
QAtlas._xxz1d_partial_trace_B — Method
_xxz1d_partial_trace_B(ρ, ℓ, N) -> Matrix{ComplexF64}Trace out the right N - ℓ sites from a 2^N × 2^N density matrix ρ, leaving the reduced state ρ_A on sites 1..ℓ (a 2^ℓ × 2^ℓ matrix). Implementation: reshape ρ to a 4-tensor (d_A, d_B, d_A, d_B) and contract the two d_B legs.
QAtlas._xxz1d_reduced_density_matrix — Method
_xxz1d_reduced_density_matrix(model, N, ℓ, β) -> Matrix{ComplexF64}Reduced density matrix of the first ℓ sites at inverse temperature β. For β = Inf we use the ground-state pure state |0⟩ (the lowest eigenvector of H); for finite β we build the full thermal density matrix and partial-trace.
The full thermal path costs O(D²) memory (D = 2^N); at the _MAX_ED_SITES = 12 ceiling that's a 4096×4096 complex matrix (~256 MB), still cheap.
QAtlas._xxz1d_thermal_density_matrix — Method
_xxz1d_thermal_density_matrix(F::NamedTuple) -> Matrix{ComplexF64}Build the density matrix ρ = exp(-βH)/Z = U diag(w) U† from a kernel result. Allocates a 2^N × 2^N matrix; only call for entanglement quantities that actually need ρ explicitly.
QAtlas._xxz1d_thermal_expectation_op — Method
_xxz1d_thermal_expectation_op(F::NamedTuple, A::AbstractMatrix) -> Float64Compute ⟨A⟩_β = Σₙ wₙ ⟨n|A|n⟩ for a Hermitian operator A, using a _xxz1d_thermal_kernel result F. Returns the real part (assumes the imaginary part is round-off only).
QAtlas._xxz1d_thermal_kernel — Method
_xxz1d_thermal_kernel(model, N, beta) -> NamedTupleDiagonalise the OBC XXZ Hamiltonian once and return everything that downstream observables need:
evals:: Vector{Float64} — eigenvaluesevecs:: Matrix{ComplexF64} — eigenvectors (columns)weights:: Vector{Float64} — Boltzmann weights wₙ, normalized so Σ wₙ = 1 (uses aneminshift)H:: Matrix{ComplexF64} — the Hamiltonian (kept for callers that need it, e.g. EnergyLocal)
Callers that only need the spectrum can ignore evecs.
QAtlas._xxz1d_yang_yang_integrand — Method
_xxz1d_yang_yang_integrand(λ, γ)Integrand of the Yang–Yang single-integral form for the XXZ ground-state energy density at anisotropy Δ = cos γ, namely
f(λ) = 1 / [ 2 cosh(π λ) · (cosh(2 γ λ) − cos γ) ].Smooth and exponentially decaying for 0 < γ < π. Used by _xxz1d_energy_yang_yang.
QAtlas._yy_static_structure_factor — Method
_yy_static_structure_factor(N, J, h, β, q) -> Float64S_yy(q, β) = (1/N) Σ_{i,j} e^{-iq(i-j)} ⟨σʸ_i σʸ_j⟩_β for OBC.
QAtlas._zz_static_structure_factor — Method
_zz_static_structure_factor(N, J, h, β, q) -> Float64S_zz(q, β) = (1/N) Σ_{i,j} e^{-i q (i-j)} ⟨σᶻ_i σᶻ_j⟩_β evaluated by direct double sum from the thermal Pfaffian correlator. For OBC the lattice lacks translation invariance so this is the boundary-aware definition; in the bulk of a long enough chain it converges to the translation-invariant value.
QAtlas._zz_uniform_susceptibility — Method
_zz_uniform_susceptibility(N, J, h, β) -> Float64Uniform (q = 0) longitudinal susceptibility per site,
χ_zz(β) = (β/N) Σ_{i,j} ⟨σᶻ_i σᶻ_j⟩_β,obtained from a finite-temperature direct double sum (assumes ⟨σᶻ⟩β = 0 in the OBC ground manifold of the TFIM, which holds for any h ≠ 0 finite N). This is the static isothermal susceptibility — the fluctuation-dissipation form `χ = β · ⟨M²⟩c / Nfor the magnetisationM = Σᵢ σᶻᵢ`.
QAtlas.f_model — Method
f_model(c::Real) -> SixVertexF-model sub-family a = b = 1, free c (Lieb 1967b). Phase boundary at c = 2:
- c < 2 — disordered (Δ = 1 − c²/2 ∈ (-1, 1)).
- c = 2 — critical (Δ = −1).
- c > 2 — antiferroelectric / F-model phase (Δ < −1).
References
- E. H. Lieb, Phys. Rev. Lett. 18, 1046 (1967b).
QAtlas.fetch — Method
fetch(model::AKLT1D, ::CorrelationLength, ::Infinite) -> Float64Closed-form bulk correlation length of the AKLT chain,
ξ = 1 / log 3 ≈ 0.91024(AKLT 1988). Connected ⟨S^z_0 S^z_r⟩ decays as (−1)^r (4/3) · 3^{−|r|} in the VBS state, giving ξ = 1/log 3 independent of J.
QAtlas.fetch — Method
fetch(model::AKLT1D, ::Energy{:per_site}, ::Infinite) -> Float64Per-site ground-state energy e₀ = −2J/3 of the infinite AKLT chain. Numerically identical to fetch(::AKLT1D, ::GroundStateEnergyDensity, ::Infinite); provided so the BC-explicit Energy(:per_site) API resolves through the same analytic path.
QAtlas.fetch — Method
fetch(model::AKLT1D, ::ExactSpectrum, ::OBC; N::Int) -> Vector{Float64}Sorted full eigenvalue spectrum of the OBC AKLT chain on N sites, computed by dense ED on the 3^N-dimensional Hilbert space. Capped by _MAX_ED_SITES_S1 (so N ≤ 8, 3^8 = 6561).
Under OBC the AKLT ground state is 4-fold degenerate (S=½ edge modes at each end, total spin S_tot ∈ {0, 1} from singlet ⊕ triplet of the two edge ½-spins), and dense ED on N ≤ 8 already exhibits this degeneracy with Δ_low_4 = E₃ − E₀ of order 10^{-13} (only floating-point noise).
QAtlas.fetch — Method
fetch(model::AKLT1D, ::GroundStateEnergyDensity, ::Infinite) -> Float64Closed-form ground-state energy density of the AKLT chain in the thermodynamic limit:
e₀ = −(2/3) JDerived analytically from the projector form H = 2J Σ P₂(i,i+1) − (2J/3) (N − 1) (AKLT 1988): the VBS state is the exact null space of every bond P₂ projector, so per-bond energy is −2J/3 and per-site energy density (one bond per site in the bulk) is −2J/3.
QAtlas.fetch — Method
fetch(model::AKLT1D, ::MassGap, ::Infinite) -> Float64Haldane gap of the AKLT chain in the thermodynamic limit,
Δ ≈ 0.350 J(numerical-exact DMRG value; A. García-Saez, V. Murg, and F. Verstraete, Phys. Rev. B 88, 245118 (2013), arXiv:1308.3631). No closed form is known; reliability=:medium in the registry.
QAtlas.fetch — Method
fetch(model::AKLT1D, ::StringOrderParameter, ::Infinite) -> Float64Kennedy–Tasaki non-local (string) order parameter of the AKLT chain,
O_str = 4/9(closed form; AKLT 1988, Kennedy–Tasaki 1992). This is the infinite-distance limit of
O_str(r) = −⟨ S^z_i exp[iπ Σ_{i<k<j} S^z_k] S^z_j ⟩evaluated in the VBS ground state, and detects the hidden Z₂ × Z₂ symmetry breaking that defines the Haldane phase. Independent of J.
QAtlas.fetch — Method
fetch(model::AKLT1D, ::ZZCorrelation{:static}, ::Infinite; r::Integer) -> Float64Exact equal-time spin-z two-point function of the AKLT VBS ground state at separation r:
⟨Sᶻ₀ Sᶻ_r⟩ = (−1)^r · (4/3) · 3^{−|r|} (r ≠ 0),
⟨(Sᶻ)²⟩ = 2/3 (r = 0).Closed form (AKLT 1988); J-independent (the VBS ground state does not depend on J > 0). Exponential decay with rate log 3, consistent with fetch(::AKLT1D, ::CorrelationLength, ::Infinite) ξ = 1/log 3. Since ⟨Sᶻ⟩ = 0 in the VBS this equal-time value is already the connected correlation.
QAtlas.fetch — Method
fetch(model::AKLT1D, ::ZZStructureFactor, ::Infinite; q::Real) -> Float64Exact static (equal-time) spin-z structure factor of the AKLT chain,
S_zz(q) = Σ_r e^{iqr} ⟨Sᶻ₀ Sᶻ_r⟩ = 2 (1 − cos q) / (5 + 3 cos q)(Arovas–Auerbach–Haldane 1988). S_zz(0) = 0 by total-Sᶻ conservation; antiferromagnetic peak S_zz(π) = 2. J-independent. This is the lattice-Fourier sum of the closed-form ZZCorrelation (−1)^r (4/3) 3^{−|r|}.
QAtlas.fetch — Method
fetch(::AKLT2D, ::Energy{:per_site}, ::Infinite; J=m.J) -> Float64Ground-state energy density of the 2D AKLT model on the honeycomb lattice (Affleck-Kennedy-Lieb-Tasaki 1988):
e_0 / N = 0The Hamiltonian is a sum of non-negative spin-3 projectors, and the valence-bond-solid (VBS) state is annihilated by every term → frustration-free with exact zero ground-state energy density. The VBS state is the prototypical 2D AKLT-class SPT and a paradigmatic non-trivial PEPS (bond dimension 2).
References
- I. Affleck, T. Kennedy, E. H. Lieb, H. Tasaki, Commun. Math. Phys. 115, 477 (1988).
- F. Verstraete, J. I. Cirac, cond-mat/0407066 (2004) — PEPS realisation.
QAtlas.fetch — Method
fetch(::BCFT, ::ResidualEntropy, ::Infinite; state::Symbol=:fixed) -> Float64Return the Affleck-Ludwig boundary entropy log g_a for an Ising-CFT Cardy boundary state a.
state | g | log g |
|---|---|---|
:fixed, :fixed_plus, :fixed_minus | 1/√2 | -log(2)/2 |
:identity, :vacuum | 1/√2 | -log(2)/2 |
:epsilon, :energy | 1/√2 | -log(2)/2 |
:free, :sigma | 1 | 0 |
The :free and :sigma symbols are synonyms: the physical free-spin boundary of the critical Ising model coincides with the |σ⟩ Cardy state, whose g-factor is g_σ = S_{σ,1}/√S_{1,1} = 1. The fixed-spin boundaries |±⟩ ∝ |1⟩ ± |ε⟩ each have g = 1/√2, as do the bare primary Cardy states |1⟩ and |ε⟩.
Throws a DomainError for any other state symbol (Phase 1 only supports Ising Cardy boundary states; other CFTs are Phase 2).
QAtlas.fetch — Method
fetch(::ChernSimons3D, ::CentralCharge, ::Infinite; N=m.N, k=m.k)
-> Rational{Int}Sugawara central charge of the boundary WZW theory ŝu(N)_k dual to 3-D SU(N)_k Chern-Simons:
c = k (N² − 1) / (k + N),returned as an exact Rational{Int}.
References
- E. Witten, Comm. Math. Phys. 121, 351 (1989).
- V. G. Knizhnik, A. B. Zamolodchikov, Nucl. Phys. B 247, 83 (1984).
QAtlas.fetch — Method
fetch(::ChernSimons3D, ::PartitionFunction, ::Infinite; N=m.N, k=m.k) -> Float64Closed-form partition function of 3-D SU(N)_k Chern-Simons on the three-sphere S³ (Witten 1989), equal to the S_{0,0} entry of the SU(N)_k modular S-matrix (Verlinde formula):
Z(S³; SU(N)_k) = N^{-1/2} (k + N)^{-(N-1)/2}
∏_{1 ≤ j < l ≤ N} 2 sin( π (l − j) / (k + N) ).For SU(2)_k this simplifies to Z = √(2 / (k + 2)) · sin(π / (k + 2)).
Boundary condition
Infinite() — S³ is a closed compact 3-manifold without boundary; no transfer-matrix BC label is meaningful, so the BC slot is the catch-all Infinite tag also used for thermodynamic-limit quantities elsewhere in QAtlas.
Verified values
SU(2)_1:Z = 1/√2 ≈ 0.7071067811865476SU(2)_2:Z = 1/2 = 0.5SU(2)_3:Z = √(2/5) · sin(π/5) ≈ 0.3717480344601845SU(3)_1:Z = 1/√3 ≈ 0.5773502691896258
References
- E. Witten, Comm. Math. Phys. 121, 351 (1989).
- E. P. Verlinde, Nucl. Phys. B 300, 360 (1988).
QAtlas.fetch — Method
fetch(::Cluster1D, ::Energy{:per_site}, ::Infinite; J=m.J) -> Float64Ground-state energy density E_0 / N = -J. Every stabiliser K_i = σ^z_{i-1} σ^x_i σ^z_{i+1} contributes -J in the cluster-state ground state.
QAtlas.fetch — Method
fetch(::Cluster1D, ::MassGap, ::Infinite; J=m.J) -> Float64Spectral gap Δ = 2J. Flipping a single stabiliser eigenvalue K_i: +1 → -1 raises the energy by 2J; all other states differ by integer multiples of 2J.
QAtlas.fetch — Method
fetch(model::Compass1D, ::MassGap, ::Infinite) -> Float64Bulk mass gap of the 1D alternating-bond compass chain:
Δ = 2 |J_x − J_y|.Closed-form result obtained from the Jordan–Wigner dual dimerised Kitaev / p-wave wire (Brzezicki–Dziarmaga–Oleś 2007). Δ vanishes at the symmetric point J_x = J_y, which is a first-order quantum phase transition between the X-bond-dimerised and Y-bond-dimerised ground states.
References
- Brzezicki–Dziarmaga–Oleś, PRB 75, 134415 (2007).
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTupleMean-field (Landau-Ginzburg) critical exponents α = 0, β = 1/2, γ = 1, δ = 3, ν = 1/2, η = 0 delegated to MeanField. Independent of h (universality is a zero-field concept).
References
- L. D. Landau, Phys. Z. Sowjet. 11, 26 (1937).
- H. E. Stanley, Introduction to Phase Transitions and Critical Phenomena (1971).
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::CriticalTemperature, ::Infinite; J=m.J) -> Float64Mean-field critical temperature T_c = J (with k_B = 1) for the zero-field Curie-Weiss Ising model. For J ≤ 0 no ferromagnetic order at any positive temperature; returns 0.
At h ≠ 0 there is no sharp transition — this dispatch still returns J as the natural reference scale (the temperature at which χ(h=0) diverges), independent of the model's h field.
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::Energy{:per_site}, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Internal energy per site
u(β, J, h) = -J m*² / 2 - h m*.At J ≤ 0: single-spin, u = -h tanh(βh). At J > 0, h = 0, T > T_c: u = 0 (paramagnet). At J > 0, T → 0, h ≥ 0: u → -J/2 - h (saturated).
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::FreeEnergy, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Saddle-point free energy per site
f(β, J, h) = J m*²/2 - β⁻¹ log[2 cosh(β(J m* + h))],with m*(β, J, h) the unique stable SCE root. Limits:
J ≤ 0: non-interacting single spin in field,f = -β⁻¹ log(2 cosh(βh)).J > 0,h = 0,T > T_c: paramagnet,f = -log(2)/β.J > 0,T → 0: saturated,f → -J/2 - |h|.
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::SpecificHeat, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Specific heat per site
c_v(β, J, h) = β² (J m* + h)² (1 - m*²) / (1 - β J (1 - m*²)).Derived from u(β) = -J m*²/2 - h m* and dm*/dβ via implicit differentiation of the SCE. At J > 0, h = 0: zero for T > T_c, jumps to 3/2 at T_c⁻ (mean-field Landau jump). At J ≤ 0: non-interacting, c_v = (βh)² sech²(βh).
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::SpontaneousMagnetization, ::Infinite;
beta::Real, J=m.J) -> Float64Spontaneous magnetisation m*(β) = lim_{h → 0⁺} m(β, J, h) of the Curie-Weiss Ising model: the ℤ₂-positive nontrivial root of m = tanh(βJm).
By definition this dispatch always uses the zero-field SCE branch (the model's h field is ignored), since "spontaneous" magnetisation is the symmetry-broken value that survives in the field-free limit. For T ≥ T_c = J only the trivial m = 0 root exists and 0.0 is returned; otherwise bisection on g(m) = m - tanh(βJm) over [m_min, 1) converges in ~52 steps (no rate degeneracy at criticality).
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::SusceptibilityZZ, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Longitudinal isothermal susceptibility per site
χ(β, J, h) = β (1 - m*²) / (1 - β J (1 - m*²)).Derived by implicit differentiation of m* = tanh(β(Jm* + h)) w.r.t. h. Reduces to the Curie-Weiss law χ = β / (1 - βJ) above T_c (where m* = 0). Diverges at T_c⁻ from the m* = 0 side. At J ≤ 0: non-interacting, χ = β sech²(βh).
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::CurieWeissIsing, ::ThermalEntropy, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Per-site entropy via the Gibbs identity s = β(u - f):
s(β, J, h) = log[2 cosh(β(J m* + h))] - β(J m* + h) m*.Bounded between 0 (T → 0, saturated) and log 2 (T → ∞, h finite).
References
- L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
QAtlas.fetch — Method
fetch(::DMIHeisenberg1D, ::Energy{:per_site}, ::Infinite;
J=m.J, D=m.D) -> Float64Ground-state energy density of the spin-½ Heisenberg-DM chain in the thermodynamic limit. Phase 1 supports only the closed-form D = 0 point:
D = 0→ Bethe-Hulthén:E/N = J · (1/4 − ln 2). Delegates tofetch(Heisenberg1D(), GroundStateEnergyDensity(), Infinite(); J=J).D ≠ 0→DomainError: spiral order via gauge rotation to twisted XXZ (Affleck-Oshikawa 1999); closed-form Bethe-ansatz energy technically available but deferred to Phase 2.
Floating-point tolerance for the D = 0 match is atol = 1e-12.
Note on delegation: Heisenberg1D currently exposes its thermodynamic- limit energy density via the legacy GroundStateEnergyDensity quantity, not the modern Energy{:per_site} axis. This wrapper bridges to the modern axis on the public surface while keeping the closed-form constant single-source-of-truth in the Heisenberg1D delegate.
References
- L. Hulthén, Ark. Mat. Astron. Fys. 26A, No. 11 (1938) — Bethe-Hulthén ground-state energy density.
- I. E. Dzyaloshinskii, J. Phys. Chem. Solids 4, 241 (1958).
- T. Moriya, Phys. Rev. 120, 91 (1960).
- I. Affleck, M. Oshikawa, Phys. Rev. B 60, 1038 (1999) — spiral / twisted-XXZ mapping (deferred to Phase 2).
QAtlas.fetch — Method
fetch(::E8, ::E8Spectrum, ::Infinite) -> Vector{Float64}Returns the analytical E8 mass spectrum [m₁, m₂, …, m₈] normalised by m₁ = 1. m₂/m₁ = 2 cos(π/5) = ϕ (golden ratio) is the hallmark of the E8 symmetry.
QAtlas.fetch — Method
fetch(model::ExtendedHubbard1D, ::ChargeGap, ::Infinite) -> Float64Charge (Mott) gap of the t-U-V Hubbard chain at half filling. Phase 1 only supports the V = 0 limit, where the gap reduces to the Lieb–Wu (1968) integral and is delegated to Hubbard1D at μ = U/2. Any V ≠ 0 raises DomainError.
References
- Lieb, Wu, Phys. Rev. Lett. 20, 1445 (1968).
- Voit, Rep. Prog. Phys. 58, 977 (1995).
- Nakamura, Phys. Rev. B 61, 16377 (2000).
QAtlas.fetch — Method
fetch(::FibonacciAnyons, ::TopologicalEntanglementEntropy, ::Infinite; kwargs...) -> Float64Topological entanglement entropy of the Fibonacci-anyon non-Abelian topological order:
γ = log 𝒟 = (1/2) log(2 + φ) ≈ 0.6429653906where 𝒟 = √(d1² + dτ²) = √(1 + φ²) = √(φ + 2) is the total quantum dimension and φ = (1 + √5)/2 is the golden ratio (= d_τ, the quantum dimension of the non-trivial τ anyon).
Fibonacci anyons are universal for topological quantum computation (Freedman-Kitaev-Larsen-Wang 2003) and arise as edge excitations of the Read-Rezayi Z_3 parafermion state (Read-Rezayi 1999).
References
- M. Freedman, A. Kitaev, M. Larsen, Z. Wang, Bull. Amer. Math. Soc. 40, 31 (2003).
- N. Read, E. Rezayi, Phys. Rev. B 59, 8084 (1999).
- A. Kitaev, J. Preskill, Phys. Rev. Lett. 96, 110404 (2006).
- M. Levin, X.-G. Wen, Phys. Rev. Lett. 96, 110405 (2006).
QAtlas.fetch — Method
fetch(::GrossNeveu, ::CentralCharge, ::Infinite; N=m.N, g=m.g) -> IntFree-fermion UV central charge of the Gross-Neveu model:
c(g = 0) = N(N Dirac fermions in 1+1-D, each c = 1). At any g ≠ 0 the theory is massive in the IR (dynamical chiral symmetry breaking; Gross-Neveu 1974) and the IR central charge is zero; this Phase 1 exposes only the UV g = 0 value and raises DomainError for non-zero coupling, deferring the RG-flow case to Phase 2.
References
- D. J. Gross, A. Neveu, Phys. Rev. D 10, 3235 (1974).
QAtlas.fetch — Method
fetch(::GrossNeveu, ::MassGap, ::Infinite; Λ::Real, N=m.N, g=m.g) -> Float64Dynamically generated fermion mass m_F in the large-N Gross-Neveu model (Gross-Neveu 1974):
m_F = Λ · exp(−π / (N · g²)).Λ is the renormalisation scheme's UV cutoff / dimensional-transmutation scale and is a required keyword argument — it is intentionally not stored on the GrossNeveu struct because the choice of scheme is up to the caller. The exponential suppression at weak coupling is the textbook signature of asymptotic-freedom-driven mass-gap formation.
Λ > 0, g > 0, N ≥ 1 required (DomainError otherwise).
Examples
fetch(GrossNeveu(; N=1, g=1.0), MassGap(), Infinite(); Λ=1.0)→exp(-π) ≈ 0.0432139fetch(GrossNeveu(; N=2, g=1.0), MassGap(), Infinite(); Λ=1.0)→exp(-π/2) ≈ 0.2078796
References
- D. J. Gross, A. Neveu, Phys. Rev. D 10, 3235 (1974).
- N. Andrei, J. H. Lowenstein, Phys. Rev. Lett. 43, 1698 (1979).
QAtlas.fetch — Method
fetch(::Heisenberg1D, ::Energy{:total}, ::OBC; beta, J=1.0) -> Float64Total thermal energy ⟨H⟩_β for the spin-½ antiferromagnetic Heisenberg OBC chain at finite N (the isotropic point Δ = 1 of XXZ1D). Routes through fetch(::XXZ1D, ::Energy{:total}, ::OBC).
Since Heisenberg1D currently carries no J field, callers must pass J as a kwarg (default J = 1.0). Downstream bridges (e.g. ITensorModels to_qatlas(::Heisenberg1D)) lose J on conversion; use XXZ1D(; J, Δ=1) directly if you need a non-unit coupling.
QAtlas.fetch — Method
fetch(::Heisenberg1D, ::ExactSpectrum; N, J=1.0) -> Vector{Float64}Return the sorted exact spectrum of the spin-1/2 Heisenberg Hamiltonian on an N-site chain or ring with boundary condition bc.
Supported cases
- N=2, bc=:OBC (dimer):
[-3J/4, J/4, J/4, J/4](singlet Es = -3J/4, triplet Et = J/4, three-fold degenerate). - N=4, bc=:PBC (4-site ring):
[-2J, -J×3, 0×7, +J×5]Ground state E₀ = -2J (unique singlet). The ferromagnetic quintet sits at E = +J. The full degeneracy structure is: 1 singlet + 1 triplet + (1 singlet + 2 triplets at E=0) + 1 quintet.
Arguments
N::Int: number of spin-1/2 sitesJ::Real: Heisenberg coupling constant (default 1.0; J > 0 AFM)bc::Symbol: boundary condition,:OBC(default) or:PBC
References
A. Auerbach, "Interacting Electrons and Quantum Magnetism" (1994), §2.
H. Bethe, Z. Physik 71, 205 (1931).QAtlas.fetch — Method
fetch(::Heisenberg1D, ::GroundStateEnergyDensity, ::Infinite; J=1.0) -> Float64BC-explicit dispatch sister of the legacy fetch(::Heisenberg1D, ::GroundStateEnergyDensity; J=1.0) method. The thermodynamic-limit ground-state energy density is only meaningful at Infinite, so the two methods return the same Hulthén value e₀ = J(1/4 - ln 2). Provided so which(fetch, ::Heisenberg1D, ::GroundStateEnergyDensity, ::Infinite) resolves and the registry drift guard passes.
QAtlas.fetch — Method
fetch(::Heisenberg1D, ::GroundStateEnergyDensity; J=1.0) -> Float64Exact ground-state energy per site of the spin-1/2 antiferromagnetic Heisenberg chain in the thermodynamic limit (N → ∞, PBC):
e₀ = J (1/4 − ln 2) ≈ −0.4431 JThis is one of the earliest and most celebrated results of the Bethe ansatz. The derivation proceeds by solving the Bethe equations for the ground state of
H = J Σᵢ Sᵢ · Sᵢ₊₁in the limit N → ∞, yielding a linear integral equation for the rapidity distribution whose solution gives the energy via integration.
Finite-size corrections
For a PBC chain of N sites, the ground-state energy density approaches e₀ with corrections of order 1/N² (logarithmic corrections also present):
E₀(N)/N = e₀ + O(1/N²)See test/verification/test_universality_cross_check.jl for a finite-size extrapolation verification using ED at N = 4, 6, 8.
Arguments
J::Real: Heisenberg coupling constant (default 1.0; J > 0 AFM)
References
H. Bethe, "Zur Theorie der Metalle. I. Eigenwerte und Eigenfunktionen
der linearen Atomkette", Z. Physik 71, 205–226 (1931) — original
Bethe ansatz solution.
L. Hulthén, "Über das Austauschproblem eines Kristalles",
Ark. Mat. Astron. Fys. 26A, No. 11, 1–106 (1938) — first
evaluation of e₀ = 1/4 − ln 2 from the Bethe equations.QAtlas.fetch — Method
fetch(::Heisenberg1D, ::LuttingerParameter, ::Infinite; J=1.0) -> Float64Luttinger-liquid parameter K = 1/2 of the spin-½ Heisenberg antiferromagnetic chain at the SU(2)-symmetric point — the exact Luther–Peschel 1975 / Affleck 1989 result.
This is the Δ → 1 limit of the XXZ Luttinger parameter K_XXZ(Δ) = π / (2 arccos(−Δ)) (Haldane 1980); delegated to XXZ1D(Δ=1.0).
References
- A. Luther, I. Peschel, Phys. Rev. B 12, 3908 (1975).
- I. Affleck, J. Phys. A 22, 1003 (1989).
- F. D. M. Haldane, Phys. Rev. Lett. 45, 1358 (1980).
QAtlas.fetch — Method
fetch(model::Heisenberg1D, ::ZZStructureFactor, ::Infinite;
q::Real, ω::Real, method::Symbol = :muller, J::Real = 1.0,
kwargs...) -> Float64Longitudinal dynamic structure factor S^{zz}(q, ω) of the infinite-volume spin-½ XXX antiferromagnetic Heisenberg chain in the thermodynamic limit.
The default method = :muller evaluates the Müller-ansatz closed form inside the two-spinon continuum (see _heisenberg_szz_muller):
S^{zz}(q, ω) ≈ Θ[ω − ε_L(q)] · Θ[ε_U(q) − ω]
----------------------------------
2 √(ω² − ε_L(q)²)with edges defined by heisenberg_two_spinon_lower_edge and heisenberg_two_spinon_upper_edge. Outside the continuum the routine returns 0.0. No regulator is added at the lower edge: the singularity is integrable (∝ 1/√(ω − εL) for ω → εL⁺), and any quadrature scheme used downstream should treat it analytically rather than relying on a numerical cap.
Arguments
q::Real: total momentum (radians).ω::Real: frequency (energy units consistent withJ).method::Symbol = :muller: ansatz selector; only:mulleris implemented in Phase 1. Reserved future values::caux_hagemansfor the exact form-factor sum (Phase 2).J::Real = 1.0: Heisenberg coupling.
References
G. Müller, H. Thomas, H. Beck, J. C. Bonner, "Quantum spin
dynamics of the antiferromagnetic linear chain in zero and
nonzero magnetic field", Phys. Rev. B 24, 1429 (1981).
J.-S. Caux, R. Hagemans, "The four-spinon dynamical structure
factor of the Heisenberg chain", J. Stat. Mech. P12013 (2006)
(Phase 2 reference, not yet implemented).QAtlas.fetch — Method
fetch(m::HeisenbergXYZ, ::Energy{:per_site}, ::Infinite;
Jx=m.Jx, Jy=m.Jy, Jz=m.Jz, kwargs...) -> Float64Ground-state energy per site of the spin-½ XYZ chain in the thermodynamic limit, restricted to the axis-aligned reduction Jx = Jy:
HeisenbergXYZ(Jx = J, Jy = J, Jz) ⟶ fetch(XXZ1D(J = J, Δ = Jz/J), …).This routes the call through the XXZ1D Yang-Yang single integral (general -1 < Δ < 1) and the three closed-form points Δ ∈ {-1, 0, 1} already implemented in XXZ1D. General (Jx ≠ Jy) triples require the Baxter elliptic Bethe ansatz and currently raise DomainError — Phase 2.
Jx > 0 is required (so Delta = Jz/Jx is well-defined and the delegation routes into the XXZ1D-tested domain; FM-exchange Jx < 0 is Phase 2).
References
- C. N. Yang, C. P. Yang, Phys. Rev. 150, 327 (1966).
- R. J. Baxter, Annals Phys. 70, 193 (1972).
QAtlas.fetch — Method
fetch(m::HeisenbergXYZ, ::LuttingerParameter, ::Infinite;
Jx=m.Jx, Jy=m.Jy, Jz=m.Jz) -> Float64Luttinger-liquid parameter at the isotropic Heisenberg point Jx = Jy = Jz, delegated to XXZ1D(Δ = 1):
K = 1/2 (SU(2)-symmetric AFM, Luther-Peschel 1975)The delegation chain is HeisenbergXYZ → XXZ1D(Δ=1) (matching the Energy(:per_site) reduction). Once a dedicated fetch(::Heisenberg1D, ::LuttingerParameter, ::Infinite) lands on main (tracked separately), the intermediate Heisenberg1D hop can be reinstated; the final K is unchanged.
For Jx = Jy ≠ Jz (XXZ axial anisotropy), use XXZ1D directly. For generic XYZ (Baxter 1972 elliptic / theta-function regime), defer to a later phase — this Phase-2 path throws DomainError for non-isotropic couplings.
References
- A. Luther, I. Peschel, Phys. Rev. B 12, 3908 (1975).
- R. J. Baxter, Ann. Phys. 70, 193 (1972) — elliptic XYZ.
QAtlas.fetch — Method
fetch(model::Hubbard1D, ::ChargeGap, ::Infinite) -> Float64Lieb–Wu Mott (charge) gap at half filling:
Δ_c = (16 t² / U) ∫_1^∞ dω √(ω² - 1) / sinh(2π t ω / U).Strictly positive for any U > 0 (no Mott transition in 1D — the chain is insulating at half filling for arbitrarily small U, the celebrated Lieb–Wu result).
Asymptotic limits
U → 0:Δ_c → 0(exponentially small, ∝ exp(-2π t / U)).U → ∞:Δ_c → U - 4t + 8 t² log 2 / U.
References
- Lieb–Wu, PRL 20, 1445 (1968).
QAtlas.fetch — Method
fetch(model::Hubbard1D, ::GroundStateEnergyDensity, ::Infinite) -> Float64Lieb–Wu ground-state energy density E₀/N at half filling. Currently only implemented for μ = U/2; off-half-filling raises a DomainError.
Asymptotic limits
U/t → 0:E₀/N → -4t/π(free 1D fermion).U/t → ∞:E₀/N → -4 t² log 2 / U(Heisenberg AFM reduction).
Both are exercised in test/standalone/test_hubbard1d.jl.
References
- Lieb–Wu, PRL 20, 1445 (1968).
- Essler et al., The One-Dimensional Hubbard Model (Cambridge, 2005).
QAtlas.fetch — Method
fetch(::Hubbard1D, ::LuttingerParameter, ::Infinite; t=m.t, U=m.U, μ=m.μ) -> Float64Luttinger-liquid parameter of the 1D Hubbard model in the free-fermion limit U = 0:
K = 1 (non-interacting spinful fermions; Voit 1995)For U > 0, the Lieb–Wu Bethe-ansatz solution gives a non-closed-form expression for both Kρ (charge) and Kσ (spin); deferred to Phase 2 (or Phase 3). This entry exposes only the U = 0 free-fermion limit and throws DomainError for any U ≠ 0.
References
- E. H. Lieb, F. Y. Wu, Phys. Rev. Lett. 20, 1445 (1968).
- J. Voit, Rep. Prog. Phys. 58, 977 (1995) — TLL review for Hubbard.
QAtlas.fetch — Method
fetch(model::Hubbard1D, ::SpinGap, ::Infinite) -> Float64Spin gap of the half-filled 1D Hubbard chain. Returns 0.0 exactly: the spinon branch is gapless for any U > 0 (rigorous Lieb–Wu result; spin-charge separation in the low-energy effective theory).
References
- Lieb–Wu, PRL 20, 1445 (1968).
- Essler et al., The One-Dimensional Hubbard Model (Cambridge, 2005).
QAtlas.fetch — Method
fetch(::Ising2D, ::CriticalExponents) -> NamedTupleBackward-compatible alias for fetch(Universality(:Ising), CriticalExponents(); d=2).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::CorrelationLength, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Spin-spin correlation length ξ(β, h) = 1 / log(λ_+ / λ_-) of the 1-D Ising chain, with λ_± the two transfer-matrix eigenvalues. At h = 0 this reduces to the Ising 1925 form
ξ(β, 0) = 1 / log(coth(β J)).The correlation length is finite for every T > 0 (no finite-temperature phase transition) and diverges only in the zero-temperature ferromagnetic limit T → 0⁺ at J > 0.
References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::CriticalTemperature, ::Infinite; kwargs...) -> Float64Critical temperature of the 1-D Ising chain. Ising (1925) proved that no finite-temperature phase transition occurs in 1-D; the only singular point is T = 0. Returns 0.0.
References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::Energy{:per_site}, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Internal energy per site at zero field (Ising 1925):
u(β, h=0) = ⟨H⟩/N = -J tanh(β J).References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::FreeEnergy, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Helmholtz free energy per site f(β, h) = -β⁻¹ log λ_+(β, J, h) of the 1-D Ising chain in the thermodynamic limit, with λ_+ the larger transfer-matrix eigenvalue. At h = 0 this reduces to the textbook form f = -β⁻¹ log[2 cosh(β J)].
References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::SpecificHeat, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Specific heat per site at zero field (Ising 1925):
c_v(β, h=0) = (β J)² sech²(β J).References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::SpontaneousMagnetization, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Spontaneous magnetization per site of the 1D Ising chain — 0 for all T > 0 and any J ≠ 0 (Ising 1925: no spontaneous symmetry breaking in 1D at finite temperature).
References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::SusceptibilityZZ, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Zero-field longitudinal susceptibility per site (Brush 1967):
χ(β, h=0) = β e^{2 β J}.References
- E. Ising, Z. Phys. 31, 253 (1925).
- S. G. Brush, "History of the Lenz-Ising model", Rev. Mod. Phys. 39, 883 (1967), Eq. (4.18).
QAtlas.fetch — Method
fetch(::IsingChain1D, ::ThermalEntropy, ::Infinite;
beta::Real, J=m.J, h=m.h) -> Float64Entropy per site at zero field (Ising 1925), via the Gibbs identity s = β(u − f) applied to the 1D Ising closed forms:
s(β, h=0) = log(2 cosh(β J)) − β J tanh(β J).Bounded between 0 (T → 0) and log 2 (T → ∞).
References
- E. Ising, Z. Phys. 31, 253 (1925).
QAtlas.fetch — Method
fetch(::IsingSquare, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTupleOnsager 1944 critical exponents of the 2D square-lattice Ising model at T_c (= 2J / log(1 + √2)):
α = 0, β = 1/8, γ = 7/4, δ = 15, ν = 1, η = 1/4.Delegated to the existing Universality(:Ising) infrastructure at d = 2. Rushbrooke (α + 2β + γ = 2), Widom (γ = β(δ − 1)), and Fisher (η = 2 − γ/ν) hyperscaling relations all check out.
The returned NamedTuple also carries the central charge c = 1//2 inherited from the CFT minimal model M(3,4) — same payload as fetch(Universality(:Ising), CriticalExponents(); d=2).
References
- L. Onsager, Phys. Rev. 65, 117 (1944) — exact 2D Ising solution.
QAtlas.fetch — Method
fetch(::IsingSquare, ::CriticalTemperature; J=1.0) -> Float64Exact critical temperature of the 2D Ising model on the square lattice:
T_c = 2J / ln(1 + √2) ≈ 2.269 JEquivalently, the critical reduced coupling is Kc = J/Tc = ln(1+√2)/2, or sinh(2K_c) = 1.
References
L. Onsager, "Crystal Statistics. I.", Phys. Rev. 65, 117 (1944).QAtlas.fetch — Method
fetch(m::IsingSquare, ::Energy{:per_site}, ::Infinite; beta, J=m.J) -> Float64Per-site thermal energy ε(β) = -∂(log Z / N)/∂β from the Onsager closed form via ForwardDiff. At low T (β → ∞) ε → -2J — the ferromagnetic ground state has every spin aligned, contributing -J per bond and 2 bonds per site.
QAtlas.fetch — Method
fetch(m::IsingSquare, ::Energy{:per_site}, ::PBC; beta, Lx, Ly, J) -> Float64Per-site thermal energy ε(β) = -∂(log Z)/∂β / (Lx · Ly) for the finite torus, via ForwardDiff over the transfer-matrix log Z.
QAtlas.fetch — Method
fetch(m::IsingSquare, ::FreeEnergy, ::Infinite; beta, J=m.J) -> Float64Per-site Helmholtz free energy f(β) = -β⁻¹ · log Z / N of the classical 2D Ising model on the infinite square lattice (Onsager 1944).
QAtlas.fetch — Method
fetch(m::IsingSquare, ::FreeEnergy, ::PBC; beta, Lx=m.Lx, Ly=m.Ly, J=m.J) -> Float64Per-site Helmholtz free energy f(β) = -log Z / (β · Lx · Ly) for the Lx × Ly torus. Builds the 2^Ly × 2^Ly transfer matrix and trace-cubes; cost is O(2^{3 Ly}), so practical Ly ≤ 10–12.
QAtlas.fetch — Method
fetch(::IsingSquare, ::PartitionFunction; Lx, Ly, β, J=1.0) -> RealExact partition function Z = Tr(T^Lx) for the classical 2D Ising model on an Lx × Ly square lattice with periodic boundary conditions in both directions.
The transfer matrix T acts along the Lx direction (row-to-row transfer), with each row containing Ly spins and PBC along the Ly direction.
Bond-counting convention
The transfer-matrix sum double-counts bonds along any dimension of length 2 (PBC wraparound of a length-2 ring produces the factor σ_1 σ_2 + σ_2 σ_1 = 2 σ_1 σ_2). The brute-force enumeration in test/util/classical_partition.jl is built under the same PBC convention so that Z_transfer-matrix == Z_bruteforce exactly for every (Lx, Ly, β, J). For Lx ≥ 3 and Ly ≥ 3 each physical bond is enumerated exactly once and the result coincides with the standard physical Z of a PBC lattice.
Special values
- β = 0 (any Lx, Ly, J): Z = 2^(Lx·Ly) — all configurations equally weighted
- J = 0 (any β, Lx, Ly): Z = 2^(Lx·Ly) — no interactions, same as β = 0
Automatic differentiation
fetch is generic in β and J so that ForwardDiff.Dual numbers propagate through it. This allows macroscopic thermodynamic quantities to be recovered from Z by differentiation — e.g.
⟨E⟩ = -∂(log Z)/∂β
C_v = β² · ∂²(log Z)/∂β²See test/verification/test_ising_ad_thermodynamics.jl for a cross-check against direct ensemble averages.
Arguments
Lx::Int: number of rows (transfer direction)Ly::Int: number of columns (row length, PBC)β::Real: inverse temperature (β = 1/(k_B T))J::Real: Ising coupling constant (default 1.0; J > 0 ferromagnetic)
References
L. Onsager, Phys. Rev. 65, 117 (1944).
B. M. McCoy and T. T. Wu, "The Two-Dimensional Ising Model" (1973).QAtlas.fetch — Method
fetch(m::IsingSquare, ::SpecificHeat, ::Infinite; beta, J=m.J) -> Float64Per-site specific heat c_v(β) = β² · ∂²(log Z / N)/∂β² via ForwardDiff (twice). Diverges logarithmically at the Onsager critical point K_c = ln(1+√2)/2 (i.e. T_c = 2J/ln(1+√2)). Caller is responsible for staying off that slice; finite values everywhere else.
QAtlas.fetch — Method
fetch(m::IsingSquare, ::SpecificHeat, ::PBC; beta, Lx, Ly, J) -> Float64Per-site specific heat c_v(β) = β² · Var(H) / (Lx · Ly) for the finite torus, via ForwardDiff (twice) on log Z.
QAtlas.fetch — Method
fetch(::IsingSquare, ::SpontaneousMagnetization; β, J=1.0) -> Float64Exact spontaneous magnetization of the 2D Ising model on the infinite square lattice:
M(T) = (1 − sinh⁻⁴(2βJ))^{1/8} for T < T_c (i.e. sinh(2βJ) > 1)
M(T) = 0 for T ≥ T_cThe critical exponent β = 1/8 is visible in the approach M → 0 as T → T_c⁻.
Special values:
- T = 0 (β → ∞): M = 1 (fully ordered)
- T = T_c: M = 0 (onset of disorder)
Arguments
β::Real: inverse temperature (β = 1/(k_B T))J::Real: Ising coupling constant (default 1.0; J > 0 ferromagnetic)
References
C. N. Yang, "The spontaneous magnetization of a two-dimensional Ising
model", Phys. Rev. 85, 808 (1952).QAtlas.fetch — Method
fetch(m::IsingSquare, ::ThermalEntropy, ::Infinite; beta, J=m.J) -> Float64Per-site Gibbs entropy s(β) = β · (ε − f) from the Onsager free-energy and energy paths.
QAtlas.fetch — Method
fetch(m::IsingSquare, ::ThermalEntropy, ::PBC; beta, Lx, Ly, J) -> Float64Per-site Gibbs entropy s(β) = β · (ε − f) for the finite torus.
QAtlas.fetch — Method
fetch(::IsingTriangular, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTuple2D Ising universality critical exponents (Onsager 1944), shared by the square and triangular lattices via universality:
α = 0, β = 1/8, γ = 7/4, δ = 15, ν = 1, η = 1/4.Delegated to Universality(:Ising) at d = 2. The triangular and square 2D Ising lattices have different microscopic T_c (Onsager's $2/log(1+sqrt(2))$ for the square; Houtappel's $4/log 3$ for the FM triangular) but identical universal exponents — the canonical textbook example of universality.
References
- L. Onsager, Phys. Rev. 65, 117 (1944).
- R. M. F. Houtappel, Physica 16, 425 (1950) — exact triangular-lattice Ising solution.
QAtlas.fetch — Method
fetch(::IsingTriangular, ::CriticalTemperature, ::Infinite; J=m.J) -> Float64Exact critical temperature of the classical 2D Ising model on the triangular lattice in the Wannier 1950 sign convention $H = +J Σ σ_i σ_j$:
J > 0(AFM, frustrated) —T_c = 0. No long-range order at any positive temperature (Wannier 1950).J < 0(FM, Houtappel) —T_c = 4 |J| / ln 3 ≈ 3.6409 |J|(Houtappel 1950).J = 0—T_c = 0(no interaction; degenerate value, kept finite).
References
- G. H. Wannier, Phys. Rev. 79, 357 (1950).
- R. M. F. Houtappel, Physica 16, 425 (1950).
QAtlas.fetch — Method
fetch(::IsingTriangular, ::ResidualEntropy, ::Infinite; J=m.J) -> Float64Zero-temperature residual entropy per site of the classical Ising model on the triangular lattice in the Wannier 1950 sign convention $H = +J Σ σ_i σ_j$.
J > 0(frustrated AFM) — Wannier (1950) closed formS/(N k_B) = (2/π) ∫₀^{π/3} ln(2 cos θ) dθ ≈ 0.32306594722…The integral is evaluated by
QuadGK.quadgkto ~1e-12 precision.J ≤ 0(FM or non-interacting Ising on a triangular lattice) — there is a unique pair of degenerate FM ground states related by the global ℤ₂ flip, soS_residual = 0.
References
- G. H. Wannier, "Antiferromagnetism. The triangular Ising net", Phys. Rev. 79, 357 (1950).
- R. M. F. Houtappel, Physica 16, 425 (1950) — independent derivation in the same period.
QAtlas.fetch — Method
fetch(::J1J2Heisenberg1D, ::Energy{:per_site}, ::Infinite;
J1=m.J1, J2=m.J2) -> Float64Ground-state energy density of the spin-½ J₁-J₂ Heisenberg chain in the thermodynamic limit. Phase 1 supports only the two closed-form points:
j = J₂/J₁ = 0→ Bethe-Hulthén:E/N = J₁ · (1/4 − ln 2). Delegates tofetch(Heisenberg1D(), GroundStateEnergyDensity(), Infinite(); J=J1).j = 1/2→ Majumdar-Ghosh dimer GS:E/N = −3 J₁ / 8. Delegates tofetch(MajumdarGhosh(; J=J1), GroundStateEnergyDensity(), Infinite()).otherwise →
DomainError: no closed form; numerical DMRG required, deferred to Phase 2.
Floating-point tolerance for the j = 0 and j = 1/2 matches is atol = 1e-12.
Note on delegation: Heisenberg1D and MajumdarGhosh currently expose their thermodynamic-limit energy density via the legacy GroundStateEnergyDensity quantity, not the modern Energy{:per_site} axis. This wrapper bridges to the modern axis on the public surface while keeping the closed-form constants in a single source-of-truth location (the delegate model).
References
- L. Hulthén, Ark. Mat. Astron. Fys. 26A, No. 11 (1938) — Bethe-Hulthén ground-state energy density.
- C. K. Majumdar, D. K. Ghosh, J. Math. Phys. 10, 1388 (1969) — exact dimer ground state at j = 1/2.
- S. R. White, I. Affleck, Phys. Rev. B 54, 9862 (1996) — DMRG study of generic j (deferred to Phase 2).
QAtlas.fetch — Method
fetch(::KagomeHeisenbergAFM, ::Energy{:per_site}, ::Infinite; J=m.J)
-> Float64Ground-state energy density of the spin-½ Kagome AFM:
e_0 / J ≈ -0.4386(5)(Yan-Huse-White 2011 DMRG; Depenbrock-McCulloch-Schollwöck 2012 confirm with cylindrical DMRG). Returned as J × (-0.4386).
References
- S. Yan, D. A. Huse, S. R. White, Science 332, 1173 (2011).
QAtlas.fetch — Method
fetch(::KagomeHeisenbergAFM, ::MassGap, ::Infinite; J=m.J) -> Float64Spin gap of the spin-½ Kagome AFM:
Δ_s / J ≈ 0.13(Yan-Huse-White 2011 DMRG; gapped Z₂ spin liquid scenario). Returned as J × 0.13. Variational Monte Carlo (Iqbal-Becca- Sorella-Poilblanc 2013) favours a competing gapless U(1) Dirac spin liquid, so the spin gap value should be treated as a DMRG upper bound; reliability is therefore :medium.
References
- S. Yan, D. A. Huse, S. R. White, Science 332, 1173 (2011).
- Y. Iqbal, F. Becca, S. Sorella, D. Poilblanc, Phys. Rev. B 87, 060405(R) (2013).
QAtlas.fetch — Method
fetch(::KagomeHeisenbergAFM, ::TopologicalEntanglementEntropy, ::Infinite; kwargs...)
-> Float64Topological entanglement entropy γ = log 2 for the Z₂ spin-liquid ground-state scenario. In the Kitaev-Preskill (2006) / Levin-Wen (2006) prescription,
S(ρ_A) = α |∂A| − γ + O(|∂A|⁻¹),with γ = log 𝒟 and total quantum dimension 𝒟 = √(Σ_a d_a²) = 2 for Z₂ topological order (four Abelian anyons {1, e, m, ψ}, each with d_a = 1).
Reliability is :medium — the value is the Z₂ topological prediction (Yan-Huse-White 2011 DMRG; Jiang-Wang-Balents 2012 directly extracted γ ≈ log 2 from DMRG entanglement scans), but the competing U(1) Dirac-spin-liquid scenario (Iqbal-Becca-Sorella-Poilblanc 2013) gives a gapless variational ground state with no topological order; the precise spin-liquid character is an open question.
References
- A. Kitaev, J. Preskill, Phys. Rev. Lett. 96, 110404 (2006).
- M. Levin, X.-G. Wen, Phys. Rev. Lett. 96, 110405 (2006).
- H.-C. Jiang, Z. Wang, L. Balents, Nature Phys. 8, 902 (2012).
- S. Yan, D. A. Huse, S. R. White, Science 332, 1173 (2011).
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::CorrelationLength, ::Infinite) -> Float64T = 0 correlation length of the infinite Kitaev1D chain, set by the inverse bulk gap,
\[\xi = \frac{1}{\Delta_{\mathrm{gap}}}.\]
Returns Inf on the gapless line |μ| = 2|t| (and on the gapless metal Δ = 0, |μ| < 2|t|). In QAtlas convention ξ is dimensionless (in units of the lattice spacing).
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::EdgeModeEnergy, bc::OBC; N::Int) -> Float64Energy of the lowest-lying boundary mode on an N-site OBC Kitaev1D chain — the smallest non-negative BdG eigenvalue.
In the topological phase (|μ| < 2|t|, Δ ≠ 0) the two end-localised Majorana modes hybridise into a single complex fermion with exponentially-small splitting ~ e^{-N/ξ} where ξ ~ 1/log(2|t|/|μ|) for |μ| ≪ 2|t|.
Numerically equal to fetch(model, MassGap(), OBC(N)); the two methods exist as separate names so call sites can be explicit about which physical interpretation they have in mind.
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::Energy{:per_site}, ::Infinite) -> Float64Ground-state energy per site of the infinite Kitaev1D chain at T = 0,
\[\varepsilon_0 = -\frac{1}{2\pi} \int_{-\pi}^{\pi} \frac{E(k)}{2}\, dk, \qquad E(k) = \sqrt{(2t\cos k + \mu)^2 + 4\Delta^2 \sin^2 k}.\]
(The factor 1/2 accounts for the BdG particle-hole doubling: only the negative-energy band is filled.)
Computed by adaptive Gauss-Kronrod quadrature.
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::ExactSpectrum, bc::OBC; N::Int) -> Vector{Float64}Return the N non-negative BdG quasiparticle energies of the OBC Kitaev1D chain, sorted ascending.
N is read from bc.N (OBC(N) / OBC(; N)) or, as a legacy fallback, from the N keyword argument.
In the topological phase (|μ| < 2|t|, Δ ≠ 0) the lowest entry is the exponentially-small Majorana edge-mode hybridisation energy ~ e^{-N/ξ}. In the trivial phase the lowest entry approaches the bulk gap min(|2t + μ|, |2t - μ|).
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::MassGap, ::Infinite) -> Float64Bulk single-quasiparticle gap of the infinite Kitaev1D chain,
\[\Delta_{\mathrm{gap}} = \min_k \sqrt{(2t\cos k + \mu)^2 + 4\Delta^2 \sin^2 k}.\]
Closed form (for t ≠ 0, Δ ≠ 0):
|μ| ≥ 2|t|: minimum atk = 0ork = π, givingΔ_gap = ||μ| - 2|t||.|μ| < 2|t|: stationary point atcos k* = -μ t / (2(t² - Δ²))when|t| ≠ |Δ|and|cos k*| ≤ 1; otherwise the minimum is atk = 0ork = π.
Δ = 0 gives the gapless metal whenever |μ| < 2|t|, and the routine returns 0.0 in that case.
MassGap at OBC is provided as the smallest non-negative BdG eigenvalue (numerically equal to EdgeModeEnergy at OBC).
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::MassGap, bc::OBC; N::Int) -> Float64Single-quasiparticle gap of the N-site OBC Kitaev1D chain — the smallest non-negative BdG eigenvalue of the 2N × 2N BdG matrix.
In the topological phase this is the Majorana edge-mode energy ~ e^{-N/ξ} (use EdgeModeEnergy for the same value under a boundary-mode-explicit name). In the trivial phase it converges to the bulk gap as N → ∞.
QAtlas.fetch — Method
fetch(model::Kitaev1D, ::TopologicalInvariant, ::Infinite) -> IntPfaffian Z₂ invariant of the infinite Kitaev1D chain (Kitaev 2001),
\[\nu = \operatorname{sgn}\bigl[\operatorname{Pf} A(k=0) \cdot \operatorname{Pf} A(k=\pi)\bigr] = \operatorname{sgn}\bigl[(\mu + 2t)(\mu - 2t)\bigr] = \operatorname{sgn}(\mu^2 - 4t^2).\]
Returns -1 in the topological phase (|μ| < 2|t|) and +1 in the trivial phase (|μ| > 2|t|). Throws on the gapless line |μ| = 2|t| (Pfaffian vanishes; invariant ill-defined) and on the gapless metal Δ = 0 with |μ| < 2|t|.
The two 2 × 2 Pfaffians are computed using the generic pfaffian routine in src/core/pfaffian.jl, exercising the same numerical machinery used elsewhere in QAtlas for free-fermion Wick contractions.
QAtlas.fetch — Method
fetch(m::KitaevHeisenberg, ::MassGap, ::Infinite;
K=m.K, J=m.J, Γ=m.Γ, kwargs...) -> Float64Single-particle gap of the K-J-Γ honeycomb model at the K-only point J = Γ = 0. Internally constructs the isotropic KitaevHoneycomb(Kx = K, Ky = K, Kz = K) and forwards. The Kitaev gapless A/B/C phase therefore returns Δ = 0 at isotropic |K|.
J ≠ 0 or Γ ≠ 0 raises DomainError — Phase 2.
References
- A. Kitaev, Annals Phys. 321, 2 (2006).
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::Energy{:per_site}, bc::PBC; Lx, Ly) -> Float64Per-site ground state energy on a Lx × Ly unit-cell torus (PBC in both lattice directions) — enumerates all four topological flux sectors and returns the minimum. Each sector corresponds to a choice of fermion boundary conditions (W_x, W_y ∈ {±1}); Lieb's theorem fixes plaquette fluxes at +1, so the spin-Hamiltonian ground state is one of these four.
Bond connectivity matches Lattice2D.build_lattice(Honeycomb, Lx, Ly; boundary=PeriodicAxis()). bc.N is ignored; pass Lx, Ly as kwargs.
For large L the four sectors converge to the same energy and individual Bloch-sum terms dominate; for small L sector choice is essential (e.g. Lx = Ly = 2 gives distinct sector energies differing by ~10%).
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::FreeEnergy, ::Infinite;
beta::Real, rtol=1e-8, kwargs...)Per-site freeenergy of the infinite Kitaev honeycomb at inverse temperature beta, in the matter-sector free-fermion approximation (valid for `T ≪ Δv`; see module header). Adaptive 2D Gauss-Kronrod quadrature over the BZ.
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::FreeEnergy, ::OBC;
Lx, Ly, beta::Real, kwargs...)Per-site free_energy of an Lx × Ly OBC Kitaev strip at inverse temperature beta, in the matter-sector free-fermion approximation. Computed by summing the contribution of each Majorana singular value.
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::MassGap, ::Infinite) -> Float64Single-Majorana gap in the thermodynamic limit.
Δ = 2 · min_k |f(k)|.In the A/B/C gapless phase (each |Kᵧ| ≤ sum of the other two), f(k) has two linear (Dirac) zeros and Δ = 0. In the gapped Az / Ax / Ay phases (|Kᵧ| exceeds the sum of the other two), |f| is bounded away from zero and `Δ = 2·( |Kγmax| − |Kγother1| − |Kγ_other2| )`.
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::SpecificHeat, ::Infinite;
beta::Real, rtol=1e-8, kwargs...)Per-site specificheat of the infinite Kitaev honeycomb at inverse temperature beta, in the matter-sector free-fermion approximation (valid for `T ≪ Δv`; see module header). Adaptive 2D Gauss-Kronrod quadrature over the BZ.
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::SpecificHeat, ::OBC;
Lx, Ly, beta::Real, kwargs...)Per-site specific_heat of an Lx × Ly OBC Kitaev strip at inverse temperature beta, in the matter-sector free-fermion approximation. Computed by summing the contribution of each Majorana singular value.
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::ThermalEntropy, ::Infinite;
beta::Real, rtol=1e-8, kwargs...)Per-site entropy of the infinite Kitaev honeycomb at inverse temperature beta, in the matter-sector free-fermion approximation (valid for T ≪ Δ_v; see module header). Adaptive 2D Gauss-Kronrod quadrature over the BZ.
QAtlas.fetch — Method
fetch(model::KitaevHoneycomb, ::ThermalEntropy, ::OBC;
Lx, Ly, beta::Real, kwargs...)Per-site entropy of an Lx × Ly OBC Kitaev strip at inverse temperature beta, in the matter-sector free-fermion approximation. Computed by summing the contribution of each Majorana singular value.
QAtlas.fetch — Method
fetch(::LiouvilleCFT, ::CentralCharge, ::Infinite; b=m.b) -> Float64Central charge of Liouville CFT at coupling b > 0:
c = 1 + 6 (b + 1/b)².b ↔ 1/b self-duality leaves c invariant. Special points:
b = 1→Q = 2,c = 25(self-dual point)b → 0⁺→Q → ∞,c → ∞(semi-classical / weak-coupling)b → ∞→Q → ∞,c → ∞(strong-coupling dual)
b ≤ 0 raises DomainError (the Liouville coupling is real and positive by convention; b ↔ 1/b lives entirely on the positive half-line).
References
- A. M. Polyakov, Phys. Lett. B 103, 207 (1981).
QAtlas.fetch — Method
fetch(::LiouvilleCFT, ::ConformalWeights, ::Infinite; α::Real, b=m.b) -> Float64Conformal (scaling) dimension of the Liouville vertex operator V_α(z, z̄) = exp(2 α φ(z, z̄)) at coupling b > 0 and continuous real momentum α:
Δ_α = α (Q − α), Q = b + 1/b.Both holomorphic and antiholomorphic weights coincide (h = h̄ = Δ_α); the full scaling dimension of V_α is 2 Δ_α.
Δ_α is invariant under the Liouville reflection α ↔ Q − α (the vertex operators V_α and V_{Q−α} are identified up to the DOZZ reflection coefficient).
Special values:
α = 0→Δ = 0(identity operator)α = Q/2→Δ = Q²/4(boundary of the normalisable real-α slice; "Seiberg bound")α = b→Δ = b(Q − b) = 1(degenerate screening operatorV_b; conformal spin 1)α = 1/b→Δ = (1/b)(Q − 1/b) = 1(dual screeningV_{1/b})α ↔ Q−α→Δ_α = Δ_{Q−α}(reflection symmetry)
b ≤ 0 raises DomainError (the Liouville coupling is real and positive by convention). α is unconstrained: it may be any real number, including the non-normalisable region α < 0 or α > Q/2, where Δ_α still gives the formal scaling dimension.
References
- A. M. Polyakov, Phys. Lett. B 103, 207 (1981).
- A. B. Zamolodchikov, A. B. Zamolodchikov, Nucl. Phys. B 477, 577 (1996).
QAtlas.fetch — Method
fetch(::LogarithmicCFT, ::CentralCharge, ::Infinite; kwargs...) -> Rational{Int}Central charge of the c = 0 logarithmic CFT (polymer / percolation universality):
c = 0.Despite the vanishing central charge the theory is non-trivial — the dilatation operator L_0 admits indecomposable Jordan blocks, mixing pairs of primary fields under conformal transformations and producing logarithms in correlation functions (Pearce-Rasmussen-Zuber 2006; Vasseur-Jacobsen-Saleur 2011).
Phase 1 exposes only the central charge. Indecomposable representations and logarithmic operator content require new quantity types and are tracked as Phase 2.
References
- H. Saleur, Nucl. Phys. B 382, 486 (1992).
- J. Cardy, J. Phys. A 34, 1419 (2001).
- P. A. Pearce, J. Rasmussen, J.-B. Zuber, J. Stat. Mech. P11017 (2006).
- R. Vasseur, J. L. Jacobsen, H. Saleur, J. Stat. Mech. L07001 (2011).
QAtlas.fetch — Method
fetch(m::LongRangeIsing1D, ::MassGap, ::Infinite;
J=m.J, h=m.h, α=m.α, kwargs...) -> Float64Single-quasiparticle gap of the long-range TFIM at the α = Inf nearest-neighbour limit. Internally constructs TFIM(; J=J, h=h) and forwards. Closed-form result (Pfeuty 1970):
Δ = 2 |h - J|.Finite α raises DomainError — the long-range phase diagram (Koffel-Lewenstein-Tagliacozzo 2012, Gong-Foss-Feig 2014) requires numerical DMRG / VMC and is deferred to Phase 2.
QAtlas.fetch — Method
fetch(m::LongRangeXY1D, ::MassGap, ::Infinite;
J=m.J, h=m.h, α=m.α, kwargs...) -> Float64Mass gap of the 1D long-range XY chain in a transverse field at the α = ∞ nearest-neighbour limit:
Δ = 2 · max(0, |h| - 2J).Gapless (XX / Luttinger-liquid) for |h| < 2J, critical at |h| = 2J, polarised gapped for |h| > 2J. Finite α raises DomainError — Phase 2 (DMRG; Maghrebi-Gong-Gorshkov 2017).
References
- E. Lieb, T. Schultz, D. Mattis, Annals Phys. 16, 407 (1961).
- P. Pfeuty, Annals Phys. 57, 79 (1970).
QAtlas.fetch — Method
fetch(::MajumdarGhosh, ::GroundStateEnergyDensity, ::Infinite; kwargs...) -> Float64Exact thermodynamic-limit ground-state energy density of the Majumdar– Ghosh chain:
E₀/N = −3J/8.The ground state is the dimer-product state and the per-site energy is size-independent (see the PBC method below). Closed-form, no kwargs beyond the standard surface.
References
- C. K. Majumdar, D. K. Ghosh, J. Math. Phys. 10, 1388 (1969).
Example
julia> QAtlas.fetch(MajumdarGhosh(), GroundStateEnergyDensity(), Infinite())
-0.375QAtlas.fetch — Method
fetch(::MajumdarGhosh, ::GroundStateEnergyDensity, ::PBC; N::Int, kwargs...) -> Float64Ground-state energy density for the Majumdar–Ghosh chain on a periodic ring of N sites. Because the dimer-product state is an exact eigenstate of the J₁–J₂ Hamiltonian at J₂/J₁ = 1/2 for any even ring length, the per-site energy is −3J/8 independent of N.
N may be supplied either through PBC(N) or via the N kwarg; it must be a positive even integer (the dimer covering requires an even number of sites to close into a ring without a defect).
References
- C. K. Majumdar, D. K. Ghosh, J. Math. Phys. 10, 1388 (1969).
QAtlas.fetch — Method
fetch(::MajumdarGhosh, ::MassGap, ::Infinite; method::Symbol = :numerical) -> Float64Spectral gap above the dimer ground state in the thermodynamic limit.
Two stored values are available, selected via method:
:numerical(default) — the DMRG valueΔ ≈ 0.234 J(White– Affleck 1996; reproduced by Eggert 1996, Sandvik 2010). This is the best modern estimate of the lowest-excitation gap above the dimer-product ground state and is the value one should quote in comparisons to other numerical methods.:trimer_bound— the analytical Shastry–Sutherland (1981) boundΔ_trimer ≥ J/4. The previous default; kept as a separately- labelled bound, not the gap. Note: the SS boundJ/4 = 0.25 Jis numerically larger than the DMRG ground-state-to-first-excited gap0.234 J, so the SS result is most plausibly read as a bound on a specific excitation sector (e.g. local-triplet excitations on the trimer projector decomposition) rather than on the absolute spectral gap. Verified by my finite-N PBC dense ED at N = 8, 10, 12: gap monotone decreasing 0.405 → 0.350 → 0.319 J, already below J/4 at N = 12 and trending toward 0.234 J in the bulk limit.The legacy alias
:lower_boundstill resolves to this value for backward compatibility but emits a deprecation warning.
Any other symbol raises DomainError.
References
- S. R. White, I. Affleck, Phys. Rev. B 54, 9862 (1996) — DMRG gap Δ ≈ 0.234 J (default).
- S. Eggert, Phys. Rev. B 54, R9612 (1996) — independent DMRG confirmation.
- B. S. Shastry, B. Sutherland, J. Phys. C 14, L765 (1981) — trimer lower bound Δ_trimer ≥ J/4 (sector-specific reading; see Caspers-Magnus 1982 / Magnus 1991 for refined rigorous bounds).
- W. J. Caspers, W. Magnus, Physica A 111, 220 (1982) — rigorous bound Δ ≥ 0.0975 J on the absolute gap.
QAtlas.fetch — Method
fetch(::MajumdarGhosh, ::SpinGap, ::Infinite; J=m.J) -> Float64Ground-state-to-first-excited spin gap of the Majumdar–Ghosh chain:
Δ ≈ 0.234 J (White-Affleck 1996; Eggert 1996 DMRG cross-check)Returned as J × 0.234. Reliability :medium (numerical DMRG, finite extrapolation uncertainty; the value should be revised if a tighter literature consensus emerges). The analytical Shastry-Sutherland 1981 bound Δ ≥ J/4 = 0.25 J is larger than the DMRG value, so the SS bound is a sector-specific trimer-excitation bound, not the absolute gap.
References
- S. R. White, I. Affleck, Phys. Rev. B 54, 9862 (1996).
- S. Eggert, Phys. Rev. B 54, R9612 (1996).
- B. S. Shastry, B. Sutherland, J. Phys. C 14, L765 (1981) — analytical bound.
QAtlas.fetch — Method
fetch(::MeanField, ::CriticalExponents) -> NamedTupleMean-field critical exponents (exact, Rational{Int}): α=0, β=1/2, γ=1, δ=3, ν=1/2, η=0.
Satisfies Rushbrooke, Widom, and Fisher scaling relations exactly.
QAtlas.fetch — Method
fetch(::MinimalModel, ::CentralCharge) -> Rational{Int}Central charge of the Virasoro minimal model M(p, p_prime):
c = 1 - 6 (p - p_prime)^2 / (p p_prime).Returned as an exact Rational{Int}.
QAtlas.fetch — Method
fetch(::MinimalModel, ::ConformalWeights; r::Int, s::Int) -> Rational{Int}Kac-table conformal weight of the primary (r, s):
h_{r,s} = ((p r - p_prime s)^2 - (p - p_prime)^2) / (4 p p_prime),
1 ≤ r ≤ p_prime - 1, 1 ≤ s ≤ p - 1.Out-of-range (r, s) throws DomainError. Use the Kac symmetry h_{r,s} = h_{p_prime - r, p - s} to map a label outside the fundamental rectangle into it explicitly.
QAtlas.fetch — Method
fetch(::MinimalModel, ::PrimaryFields) -> Vector{NamedTuple}All distinct primary fields of M(p, pprime), modulo Kac symmetry `(r, s) ~ (pprime - r, p - s). Each entry is a NamedTuple(r=Int, s=Int, h=Rational{Int})`.
The list is enumerated over 1 ≤ r ≤ p_prime - 1, 1 ≤ s ≤ p - 1 and de-duplicated by selecting the lex-smallest (r, s) from each Kac-symmetry orbit, so its length is
(p - 1)(p_prime - 1) / 2.QAtlas.fetch — Method
fetch(m::MixedFieldIsing1D, ::MassGap, ::Infinite; J, h_x, h_z) -> Float64Mass gap of the infinite mixed-field Ising chain.
- At
h_z = 0(default): delegate toTFIM(; J=J, h=h_x)and return the closed-formΔ = 2|h_x − J|(Pfeuty 1970). - At
h_z ≠ 0: throwDomainError— the model is non-integrable (canonical ETH / thermalisation benchmark, McCoy-Wu 1978; Banuls-Cirac-Hastings 2011) and no closed-form gap exists. Numerical routes (ED / DMRG) will land in Phase 2.
J, h_x, h_z may be overridden via keyword to evaluate the gap at a point different from the struct's stored parameters without rebuilding the model.
QAtlas.fetch — Method
fetch(::PXP1D, ::Energy{:per_site}, ::Infinite; Ω=m.Ω) -> Float64Thermodynamic-limit ground-state energy density of the PXP chain:
e_0 / Ω ≈ -0.6516(2)Value sourced from DMRG / ED in the PXP-scar literature (see Turner 2018, Lin-Motrunich 2019, Iadecola-Schecter-Xu 2019); consistent with the U(1) gauge-theory mapping of Surace et al. 2020 (PRX 10, 021041), which focuses on the Schwinger-model phase diagram rather than tabulating e_0. Reliability :medium; update if a tighter literature consensus emerges.
References
- C. J. Turner et al., Nat. Phys. 14, 745 (2018) — quantum many-body scars.
- C. J. Lin, O. I. Motrunich, Phys. Rev. Lett. 122, 173401 (2019).
- T. Iadecola, M. Schecter, S. Xu, Phys. Rev. B 100, 184312 (2019).
- F. M. Surace et al., Phys. Rev. X 10, 021041 (2020).
QAtlas.fetch — Method
fetch(::PpIp2DSC, ::CentralCharge, ::Infinite; kwargs...) -> Rational{Int}Central charge of the chiral Majorana edge CFT of the 2-D p+ip weak-pairing superconductor (Read–Green 2000):
c = 1/2(a single right-moving Majorana fermion, i.e. the chiral half of the 2-D Ising model). Parameter-independent within the weak-pairing topological phase (μ > 0).
References
- N. Read, D. Green, Phys. Rev. B 61, 10267 (2000).
- A. Y. Kitaev, Ann. Phys. 321, 2 (2006).
QAtlas.fetch — Method
fetch(::PpIp2DSC, ::TopologicalInvariant, ::Infinite; kwargs...) -> IntFirst Chern number of the BdG ground-state band of the 2-D p+ip weak-pairing superconductor (Read–Green 2000):
C = 1(in contrast to C = 0 in the strong-pairing trivial phase at μ < 0). By the bulk–boundary correspondence this drives a single chiral Majorana edge mode.
References
- N. Read, D. Green, Phys. Rev. B 61, 10267 (2000).
QAtlas.fetch — Method
fetch(model, quantity, bc; kwargs...)Return the stored / computed value of quantity for model under boundary condition bc. The canonical signature takes a concrete model struct + concrete quantity struct + BC; a legacy fetch(::Symbol, ::Symbol, bc; kwargs...) shim is also provided in src/deprecate/legacy_fetch.jl for backward compatibility.
Each (model, quantity, bc) triple must be implemented as a separate method; this top-level definition throws an informative error for un-implemented triples.
QAtlas.fetch — Method
fetch(::Honeycomb, ::TightBindingChecksum, ::Infinite; Lx, Ly, t=1.0) -> Float64Σ λᵢ² = tr(H²) for the Lx × Ly honeycomb PBC tight-binding spectrum. Forwards through TightBindingSpectrum so it always agrees with the spectrum closed form by construction; verify() cards then pin it against the chiral-symmetry identity 2 t² · 3 · Lx · Ly and against the real-space ED ground truth.
QAtlas.fetch — Method
fetch(::Honeycomb, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64max(λᵢ) for the Lx × Ly honeycomb PBC tight-binding spectrum. Forwards through TightBindingSpectrum.
QAtlas.fetch — Method
fetch(::Graphene, ::TightBindingSpectrum; Lx, Ly, t=1.0) -> Vector{Float64}Sorted single-particle spectrum of the nearest-neighbor tight-binding Hamiltonian on an Lx × Ly honeycomb lattice with periodic boundary conditions in both directions.
The spectrum is obtained in closed form by diagonalizing the 2×2 Bloch Hamiltonian at the Lx·Ly allowed momenta
k_{mn} = (m/Lx) b₁ + (n/Ly) b₂, m ∈ {0,…,Lx−1}, n ∈ {0,…,Ly−1}where (b₁, b₂) is the reciprocal basis dual to the real-space basis (a₁, a₂) used by Lattice2D's Honeycomb topology.
Explicitly, using k·a₁ = 2π m/Lx and k·a₂ = 2π n/Ly,
E_{mn,±} = ± t · √(3 + 2cos(2π m/Lx) + 2cos(2π n/Ly) + 2cos(2π(n/Ly − m/Lx)))The chiral (sublattice) symmetry of the bipartite honeycomb lattice guarantees that the spectrum is symmetric about zero. A small negative floor is applied inside the square root to absorb rounding error at Dirac points where the argument vanishes exactly.
Arguments
Lx::Int: number of unit cells in the first lattice directionLy::Int: number of unit cells in the second lattice directiont::Real: nearest-neighbor hopping amplitude (default 1.0)
Return
A sorted Vector{Float64} of length 2·Lx·Ly.
References
P. R. Wallace, Phys. Rev. 71, 622 (1947).
A. H. Castro Neto et al., Rev. Mod. Phys. 81, 109 (2009).QAtlas.fetch — Method
fetch(::Kagome, ::TightBindingChecksum, ::Infinite; Lx, Ly, t=1.0) -> Float64Σ λᵢ² = tr(H²) for the Lx × Ly kagome PBC TB spectrum. Each unit cell has 3 sites with coordination 4 (two within-cell and two cross-cell nearest-neighbour bonds), giving n_NN_bonds = 6 · Lx · Ly and tr(H²) = 12 · t² · Lx · Ly.
QAtlas.fetch — Method
fetch(::Kagome, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64max(λᵢ) for the Lx × Ly kagome PBC TB spectrum. The exactly flat band sits at +2t (degenerate Lx · Ly times for k ≠ Γ and once more at Γ from the dispersive-flat band touching), so max(spectrum) = 2·|t| for any Lx, Ly ≥ 1.
QAtlas.fetch — Method
fetch(::Kagome, ::TightBindingSpectrum; Lx, Ly, t=1.0) -> Vector{Float64}Sorted single-particle spectrum of the nearest-neighbor tight-binding Hamiltonian on an Lx × Ly kagome lattice with periodic boundary conditions in both directions.
The 3×3 Bloch Hamiltonian is diagonalized numerically at each of the Lx·Ly allowed momenta
k_{mn} = (m/Lx) b₁ + (n/Ly) b₂, m ∈ {0,…,Lx−1}, n ∈ {0,…,Ly−1}with b₁, b₂ dual to Lattice2D's kagome primitive basis. In the θ parametrization (θ₁ = k·a₁ = 2π m/Lx, θ₂ = k·a₂ = 2π n/Ly),
H(k) = -2t · [ 0 cos(θ₁/2) cos(θ₂/2) ]
[ cos(θ₁/2) 0 cos((θ₂−θ₁)/2) ]
[ cos(θ₂/2) cos((θ₂−θ₁)/2) 0 ]Flat band
One band is exactly flat at +2t, so the returned spectrum contains at least Lx·Ly eigenvalues equal to 2t. At the Γ-point (k = 0) the upper dispersive band touches the flat band, contributing one extra +2t eigenvalue, giving a Lx·Ly + 1-fold degeneracy there. The remaining 2·Lx·Ly − 1 eigenvalues lie in [−4t, +2t).
Arguments
Lx::Int: number of unit cells in the first lattice directionLy::Int: number of unit cells in the second lattice directiont::Real: nearest-neighbor hopping amplitude (default 1.0)
Return
A sorted Vector{Float64} of length 3·Lx·Ly.
References
I. Syôzi, Prog. Theor. Phys. 6, 306 (1951).
D. L. Bergman et al., Phys. Rev. B 78, 125104 (2008).QAtlas.fetch — Method
fetch(::Lieb, ::TightBindingChecksum, ::Infinite; Lx, Ly, t=1.0) -> Float64Σ λᵢ² = tr(H²) for the Lx × Ly Lieb-lattice PBC TB spectrum. Lieb has 3 sites per unit cell (1 corner + 2 edge) with coordinations 4, 2, 2; n_NN_bonds = 4 · Lx · Ly and tr(H²) = 8 · t² · Lx · Ly.
QAtlas.fetch — Method
fetch(::Lieb, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64max(λᵢ) for the Lx × Ly Lieb PBC TB spectrum. The dispersive bands ±E(k) = ±2|t|·√(cos²(θ₁/2) + cos²(θ₂/2)) saturate at the Γ point (θ₁=θ₂=0), giving max(spectrum) = 2√2 · |t|, independent of Lx, Ly.
QAtlas.fetch — Method
fetch(::Lieb, ::TightBindingSpectrum; Lx, Ly, t=1.0) -> Vector{Float64}Sorted single-particle spectrum of the nearest-neighbor tight-binding Hamiltonian on an Lx × Ly Lieb lattice with periodic boundary conditions in both directions.
The closed-form eigenvalues of the 3×3 Bloch Hamiltonian are
E_{mn,±} = ± 2t · √(cos²(π m/Lx) + cos²(π n/Ly)),
E_{mn,0} = 0for m ∈ {0,…,Lx−1}, n ∈ {0,…,Ly−1}. The E = 0 contribution appears for every (m, n) and forms the Lieb flat band.
Flat band
For a generic (Lx, Ly) the spectrum contains exactly Lx·Ly zero eigenvalues from the flat band. When both Lx and Ly are even the M-point (θ₁, θ₂) = (π, π) becomes an allowed momentum; there the two dispersive bands also collapse to zero, contributing two extra zero modes (a three-fold band touching). The total number of E = 0 eigenvalues is therefore
Lx·Ly + (2 if both Lx and Ly are even else 0).Arguments
Lx::Int: number of unit cells in the first lattice directionLy::Int: number of unit cells in the second lattice directiont::Real: nearest-neighbor hopping amplitude (default 1.0)
Return
A sorted Vector{Float64} of length 3·Lx·Ly.
References
E. H. Lieb, Phys. Rev. Lett. 62, 1201 (1989).QAtlas.fetch — Method
fetch(::Triangular, ::TightBindingChecksum, ::Infinite; Lx, Ly, t=1.0) -> Float64Σ λᵢ² = tr(H²) for the Lx × Ly triangular PBC TB spectrum. Each site has 6 NN ⇒ n_NN_bonds = 3 · Lx · Ly and tr(H²) = 6 · t² · Lx · Ly.
QAtlas.fetch — Method
fetch(::Triangular, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64max(λᵢ) for the Lx × Ly triangular PBC TB spectrum. Maximum reaches +3 t only when the K-point is on the discrete grid (both Lx, Ly multiples of 3); otherwise it is strictly less. Exposed for ED cross- check rather than as a closed-form literature pin.
QAtlas.fetch — Method
fetch(::Triangular, ::TightBindingSpectrum; Lx, Ly, t=1.0) -> Vector{Float64}Sorted single-particle spectrum of the nearest-neighbor tight-binding Hamiltonian on an Lx × Ly triangular lattice with periodic boundary conditions in both directions.
Because the triangular lattice has a single sublattice per unit cell, each allowed momentum contributes exactly one eigenvalue
E_{mn} = -2t · [ cos(2π m/Lx) + cos(2π n/Ly) + cos(2π(n/Ly − m/Lx)) ]for m ∈ {0,…,Lx−1}, n ∈ {0,…,Ly−1}. Note the lower cut-off is -6t (at the Γ-point) but the upper cut-off is only +3t (at the K-points (1/3, 2/3) and (2/3, 1/3) — allowed when Lx and Ly are divisible by 3).
Arguments
Lx::Int: number of unit cells in the first lattice directionLy::Int: number of unit cells in the second lattice directiont::Real: nearest-neighbor hopping amplitude (default 1.0; positive convention)
Return
A sorted Vector{Float64} of length Lx·Ly.
References
G. H. Wannier, Phys. Rev. 79, 357 (1950).QAtlas.fetch — Method
fetch(::RFIM, ::CriticalTemperature, ::Infinite; d::Int, J=m.J, Δ=m.Δ)
-> Float64Critical temperature of the RFIM as a function of spatial dimension d. In the Imry-Ma regime d ≤ 2 at non-zero disorder Δ > 0 long-range order is destroyed and T_c = 0.
For d ≥ 3 (Imbrie 1985 / Bricmont-Kupiainen 1988 rigorous FM phase) T_c(d, J, Δ) > 0 but no closed-form analytic value is known and a DomainError is raised — Phase 2 will plug in numerical-reference values (e.g. Monte-Carlo at d = 3). At Δ = 0 the model reduces to the pure Ising model and the call is deferred to that model's CriticalTemperature entry; here we also raise DomainError.
References
- Y. Imry, S. Ma, Phys. Rev. Lett. 35, 1399 (1975).
- J. Imbrie, Comm. Math. Phys. 98, 145 (1985).
QAtlas.fetch — Method
fetch(::RandomBondIsing2D, ::CentralCharge, ::Infinite; p=m.p) -> RationalCentral charge of the 2D ±J random-bond Ising model along the phase-diagram slice selected by p.
Phase 1 exposes only the pure ferromagnetic critical line p = 1, where the model is in the 2D Ising universality class (Onsager 1944) with c = 1/2, delegated to MinimalModel(4, 3).
For 0 ≤ p < 1 the Nishimori-line ferromagnet/paramagnet crossover and the multicritical Nishimori point at p ≈ 0.1093 (Honecker-Picco-Pujol 2001) have unsettled / logarithmic-CFT universality and are deferred to Phase 2 — these calls raise DomainError.
References
- L. Onsager, Phys. Rev. 65, 117 (1944).
- A. Honecker, M. Picco, P. Pujol, Phys. Rev. Lett. 87, 047201 (2001).
QAtlas.fetch — Method
fetch(m::S1AnisotropicD1D, ::Energy{:per_site}, ::Infinite;
J = m.J, D = m.D, kwargs...) -> Float64Ground-state energy per site of the spin-1 anisotropic chain at the D = 0 reference point, delegated to S1Heisenberg1D: e₀ ≈ -1.40148403897 J (White-Huse 1993 DMRG, numerical-exact).
D ≠ 0 raises DomainError — same Phase 2 gate as MassGap.
References
- S. R. White, D. A. Huse, Phys. Rev. B 48, 3844 (1993).
- Y.-C. Chen, R. Roncaglia, J. Stat. Mech. P10024 (2008).
- Y.-D. Tzeng, H.-H. Hung, Y.-C. Chen, M.-F. Yang, Phys. Rev. B 96, 205104 (2017).
QAtlas.fetch — Method
fetch(m::S1AnisotropicD1D, ::MassGap, ::Infinite;
J = m.J, D = m.D, kwargs...) -> Float64Bulk gap of the spin-1 anisotropic chain at the D = 0 reference point, delegated to S1Heisenberg1D: Haldane gap Δ ≈ 0.41048 J (White-Huse 1993 DMRG, numerical-exact).
D ≠ 0 raises DomainError — Phase 2. At finite D the system crosses
- a Gaussian (c = 1) transition near
D ≈ 0.97 Jseparating Haldane from the large-D phase (Chen-Roncaglia 2008), and - an Ising (c = 1/2) transition near
D ≈ −0.31 Jseparating Haldane from the easy-axis Néel phase (Tzeng-Yang-Hsu 2017);
neither phase boundary has a closed-form expression in D/J.
References
- S. R. White, D. A. Huse, Phys. Rev. B 48, 3844 (1993).
- Y.-C. Chen, R. Roncaglia, J. Stat. Mech. P10024 (2008).
- Y.-D. Tzeng, H.-H. Hung, Y.-C. Chen, M.-F. Yang, Phys. Rev. B 96, 205104 (2017).
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::EnergyLocal, ::OBC; beta) -> Vector{Float64}Site-resolved local energy density ε_i of the OBC spin-1 Heisenberg chain such that Σᵢ ε_i = ⟨H⟩_β. Each bond contribution b_i = J ⟨Sᵢ · Sᵢ₊₁⟩_β is split symmetrically between its two endpoints, with the missing left/right bond at i = 1 / i = N set to zero — i.e.
ε_i = (1/2) (b_{i-1} + b_i), b_0 ≡ b_N ≡ 0.QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::Energy{:per_site}, ::Infinite) -> Float64Ground-state energy per site of the spin-1 antiferromagnetic Heisenberg chain (Haldane chain) in the thermodynamic limit:
e₀ ≈ -1.40148403897 JNumerical value from the high-precision DMRG study of S. R. White & D. A. Huse, Phys. Rev. B 48, 3844 (1993). No closed- form expression is known; reliability=:medium in the registry.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::Energy{:total}, ::OBC; beta) -> Float64Total thermal energy ⟨H⟩_β of the spin-1 OBC Heisenberg chain at finite N ≤ 8, computed by dense ED.
⟨H⟩_β = Tr(H exp(-βH)) / Tr(exp(-βH))Convention matches fetch(::TFIM, ::Energy{:total}, ::OBC): 1D finite-size boundary conditions return total energy natively.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::FreeEnergy, ::OBC; beta) -> Float64Per-site Helmholtz free energy f(β) = -log Z / (Nβ) for the spin-1 OBC chain.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MagnetizationX, ::OBC; beta) -> Float64Per-site bulk magnetisation ⟨Σᵢ S^x_i⟩_β / N of the spin-1 Heisenberg OBC chain at finite N ≤ 8, computed from the dense thermal density matrix.
Spin-1 convention: S^x carries eigenvalues ±1, 0 (off-diagonal 1/√2 for S^x); see file header. The SU(2)-symmetric AFM ground state has ⟨S^α⟩ = 0 in every direction at any temperature, so this is a non-trivial check only for symmetry- breaking finite-β samples (and for benchmarking sampler bias).
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MagnetizationXLocal, ::OBC; beta) -> Vector{Float64}Site-resolved [⟨S^x_i⟩_β for i = 1:N] of the spin-1 OBC Heisenberg chain. Sums to N · MagnetizationX/Y/Z (per-site bulk average) by construction.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MagnetizationY, ::OBC; beta) -> Float64Per-site bulk magnetisation ⟨Σᵢ S^y_i⟩_β / N of the spin-1 Heisenberg OBC chain at finite N ≤ 8, computed from the dense thermal density matrix.
Spin-1 convention: S^y carries eigenvalues ±1, 0 (off-diagonal 1/√2 for S^x); see file header. The SU(2)-symmetric AFM ground state has ⟨S^α⟩ = 0 in every direction at any temperature, so this is a non-trivial check only for symmetry- breaking finite-β samples (and for benchmarking sampler bias).
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MagnetizationZ, ::OBC; beta) -> Float64Per-site bulk magnetisation ⟨Σᵢ S^z_i⟩_β / N of the spin-1 Heisenberg OBC chain at finite N ≤ 8, computed from the dense thermal density matrix.
Spin-1 convention: S^z carries eigenvalues ±1, 0 (off-diagonal 1/√2 for S^x); see file header. The SU(2)-symmetric AFM ground state has ⟨S^α⟩ = 0 in every direction at any temperature, so this is a non-trivial check only for symmetry- breaking finite-β samples (and for benchmarking sampler bias).
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MagnetizationZLocal, ::OBC; beta) -> Vector{Float64}Site-resolved [⟨S^z_i⟩_β for i = 1:N] of the spin-1 OBC Heisenberg chain. Sums to N · MagnetizationX/Y/Z (per-site bulk average) by construction.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MassGap, ::Infinite) -> Float64Bulk Haldane gap of the spin-1 antiferromagnetic Heisenberg chain,
Δ_∞ ≈ 0.41048 J(literature value, S. R. White & D. A. Huse, Phys. Rev. B 48, 3844 (1993)). No closed form; reliability=:medium in the registry.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::MassGap, ::OBC) -> Float64Single-particle gap of the spin-1 Heisenberg OBC chain at finite N ≤ 8,
Δ = E₁ - E₀between the lowest two eigenvalues of the dense Hamiltonian. At fixed N this contains finite-size and edge-state corrections relative to the bulk Haldane gap Δ_∞ ≈ 0.41048 J.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, q::RenyiEntropy, ::OBC;
ℓ::Int, beta::Real = Inf) -> Float64Rényi entropy S_α = log Tr ρ_A^α / (1 - α) for the OBC spin-1 Heisenberg chain. See VonNeumannEntropy for the partial-trace convention.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::SpecificHeat, ::OBC; beta) -> Float64Per-site heat capacity c(β) = β² · Var(H) / N for the spin-1 OBC chain, computed exactly from the energy variance in the eigenbasis (no numerical differentiation).
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::SusceptibilityXX, ::OBC; beta) -> Float64Per-site uniform XX susceptibility χ_xx(β) = β · Var(M_x) / N of the spin-1 Heisenberg OBC chain via the dense thermal density matrix.
At infinite temperature each site contributes Tr((Sᵅ)²)/3 = 2/3 so χ_αα → 2β/3 for any axis.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::SusceptibilityYY, ::OBC; beta) -> Float64Per-site uniform YY susceptibility χ_yy(β) = β · Var(M_y) / N of the spin-1 Heisenberg OBC chain via the dense thermal density matrix.
At infinite temperature each site contributes Tr((Sᵅ)²)/3 = 2/3 so χ_αα → 2β/3 for any axis.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::SusceptibilityZZ, ::OBC; beta) -> Float64Per-site uniform ZZ susceptibility χ_zz(β) = β · Var(M_z) / N of the spin-1 Heisenberg OBC chain via the dense thermal density matrix.
At infinite temperature each site contributes Tr((Sᵅ)²)/3 = 2/3 so χ_αα → 2β/3 for any axis.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::ThermalEntropy, ::OBC; beta) -> Float64Per-site Gibbs entropy s(β) = β · (ε - f) for the spin-1 OBC chain.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::VonNeumannEntropy{:equilibrium}, ::OBC;
ℓ::Int, beta::Real = Inf) -> Float64Von Neumann entanglement entropy S_vN = -Tr ρ_A log ρ_A of the first ℓ sites of the OBC spin-1 Heisenberg chain. The reduced density matrix ρ_A is the partial trace of the thermal density matrix ρ = exp(-βH) / Z (or the GS projector when beta = Inf) over sites ℓ+1 .. N.
Both ℓ and N = bc.N are bounded by _MAX_ED_SITES_S1 because the full 3^N × 3^N ρ is built explicitly.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::XXCorrelation{:connected}, ::OBC;
beta, i::Int, j::Int) -> Float64Connected (cumulant) correlator ⟨S^x_i S^x_j⟩ - ⟨S^x_i⟩·⟨S^x_j⟩ for the spin-1 OBC Heisenberg chain.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::XXCorrelation{:static}, ::OBC;
beta, i::Int, j::Int) -> Float64Static thermal correlator ⟨S^x_i S^x_j⟩_β of the spin-1 OBC Heisenberg chain. Caller passes both site indices 1 ≤ i, j ≤ N; equal sites give ⟨(S^α)²⟩_β.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::YYCorrelation{:connected}, ::OBC;
beta, i::Int, j::Int) -> Float64Connected (cumulant) correlator ⟨S^y_i S^y_j⟩ - ⟨S^y_i⟩·⟨S^y_j⟩ for the spin-1 OBC Heisenberg chain.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::YYCorrelation{:static}, ::OBC;
beta, i::Int, j::Int) -> Float64Static thermal correlator ⟨S^y_i S^y_j⟩_β of the spin-1 OBC Heisenberg chain. Caller passes both site indices 1 ≤ i, j ≤ N; equal sites give ⟨(S^α)²⟩_β.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::ZZCorrelation{:connected}, ::OBC;
beta, i::Int, j::Int) -> Float64Connected (cumulant) correlator ⟨S^z_i S^z_j⟩ - ⟨S^z_i⟩·⟨S^z_j⟩ for the spin-1 OBC Heisenberg chain.
QAtlas.fetch — Method
fetch(model::S1Heisenberg1D, ::ZZCorrelation{:static}, ::OBC;
beta, i::Int, j::Int) -> Float64Static thermal correlator ⟨S^z_i S^z_j⟩_β of the spin-1 OBC Heisenberg chain. Caller passes both site indices 1 ≤ i, j ≤ N; equal sites give ⟨(S^α)²⟩_β.
QAtlas.fetch — Method
fetch(model::S1XXZ1D, ::Energy{:per_site}, ::Infinite; J, Δ, kwargs...) -> Float64Ground-state energy per site of the spin-1 XXZ chain.
Phase 1: supported only at the Heisenberg point Δ = 1, where the result is delegated to S1Heisenberg1D,
e₀ ≈ -1.40148403897 J (White-Huse 1993 DMRG).For Δ ≠ 1 no closed-form literature constant is available (XY1 / large-Δ Néel phase diagram, Schulz 1986; Tzeng-Yang-Hsu 2017); a DomainError is raised — Phase 2 will plug in DMRG / TLL.
QAtlas.fetch — Method
fetch(model::S1XXZ1D, ::MassGap, ::Infinite; J, Δ, kwargs...) -> Float64Bulk mass gap of the spin-1 XXZ chain.
Phase 1: supported only at the Heisenberg point Δ = 1, where the Haldane gap is delegated to S1Heisenberg1D,
Δ_∞ ≈ 0.41048 J (White-Huse 1993 DMRG).For Δ ≠ 1 the result is not a closed-form literature constant (XY1 / large-Δ Néel phase diagram, Schulz 1986; Tzeng-Yang-Hsu 2017) and a DomainError is raised — Phase 2 will plug in DMRG / TLL.
QAtlas.fetch — Method
fetch(::SLEkappa, ::CentralCharge, ::Infinite; κ=m.κ) -> Float64Central charge of the CFT dual to SLE_κ (Bauer-Bernard 2006):
c(κ) = (3 κ − 8) (6 − κ) / (2 κ), κ > 0.The map is symmetric under κ ↔ 16/κ, encoding the SLE duality between a chordal curve and its outer-boundary curve. Canonical fixed points return the expected rational values: c(2) = -2, c(8/3) = 0, c(3) = 1/2, c(4) = 1, c(6) = 0, c(8) = -2.
κ ≤ 0 raises DomainError (the SLE process is undefined at and below zero diffusivity).
References
- M. Bauer, D. Bernard, Phys. Rep. 432, 115 (2006).
- J. Cardy, Annals Phys. 318, 81 (2005).
QAtlas.fetch — Method
fetch(::SLEkappa, ::FractalDimension, ::Infinite; κ=m.κ) -> Float64Hausdorff dimension of the SLE_κ random curve (Beffara 2008):
d_H(κ) = min(2, 1 + κ/8), κ > 0.The cap at d_H = 2 for κ ≥ 8 reflects the space-filling regime (the SLEκ curve becomes space-filling at κ = 8 and stays so beyond, so its Hausdorff dimension cannot exceed the ambient plane). Canonical fixed points evaluate to: `dH(2)=5/4,dH(8/3)=4/3,dH(3)=11/8,dH(4)=3/2,dH(6)=7/4,d_H(8)=2`.
κ ≤ 0 raises DomainError (the SLE process is undefined at and below zero diffusivity).
References
- V. Beffara, Annals Probab. 36, 1421 (2008).
QAtlas.fetch — Method
fetch(m::SYK, ::ConformalWeights, ::Infinite;
q::Integer = m.q, field::Symbol = :ψ, kwargs...) -> Rational{Int}Large-N IR (low-energy / emergent-conformal) Majorana fermion conformal dimension of the Sachdev-Ye-Kitaev model:
Δ_ψ = 1 / q.This is the universal scaling of the disorder-averaged two-point function
⟨ψ(τ_1) ψ(τ_2)⟩ ∝ 1 / |τ_12|^{2 Δ_ψ}in the IR conformal window where the Schwarzian reparametrisation soft mode dominates the dynamics (Kitaev 2015; Maldacena-Stanford 2016). Finite-N and subleading-1/(βJ) Schwarzian corrections, as well as composite-operator dimensions (the O_n = ψ ∂_τ^{2n+1} ψ bilinear tower), are deferred to Phase 2.
Arguments
q::Integer = m.q: body-count of the Majorana coupling. Must be even and≥ 2.field::Symbol = :ψ: which IR operator to query. Phase 1 supports only:ψ(the elementary Majorana fermion); any other symbol raisesDomainError, deferring composite-operator dimensions to Phase 2.
References
- S. Sachdev, J. Ye, Phys. Rev. Lett. 70, 3339 (1993).
- A. Kitaev, KITP talks (2015).
- J. Maldacena, D. Stanford, Phys. Rev. D 94, 106002 (2016).
QAtlas.fetch — Method
fetch(::SchwingerModel, ::ChiralCondensate, ::Infinite; e=model.e) -> Float64Anomaly-induced chiral condensate in the massless Schwinger model (Schwinger 1962; Coleman-Jackiw-Susskind 1975):
⟨ψ̄ψ⟩ = − exp(γ_E) · e / (2π^{3/2}),where γ_E ≈ 0.5772156649 is the Euler-Mascheroni constant. Negative by convention; magnitude scales linearly with the gauge coupling. The non-zero condensate is the canonical 1+1-D example of anomaly- induced spontaneous chiral-symmetry breaking: the classical Lagrangian is chirally symmetric, but the axial U(1) anomaly forces ⟨ψ̄ψ⟩ ≠ 0 in the quantum vacuum.
e > 0 required.
References
- J. Schwinger, Phys. Rev. 128, 2425 (1962).
- S. Coleman, R. Jackiw, L. Susskind, Annals Phys. 93, 267 (1975).
QAtlas.fetch — Method
fetch(::SchwingerModel, ::MassGap, ::Infinite; e=m.e, m=m.m) -> Float64Mass gap of the 1+1-D Schwinger model. At the massless point m = 0 the celebrated Schwinger 1962 closed form applies:
m_γ = e / √π.e ≤ 0 raises DomainError; m ≠ 0 (massive Schwinger) raises DomainError pointing to the massive-sine-Gordon Phase-2 implementation.
References
- J. Schwinger, Phys. Rev. 128, 2425 (1962).
QAtlas.fetch — Method
fetch(::ShastrySutherland, ::Energy{:per_site}, ::Infinite;
J=m.J, Jp=m.Jp) -> Float64Ground-state energy per site of the spin-½ Shastry–Sutherland model in the exact-dimer phase α = J / J' ≤ α_c ≈ 0.675:
E₀ / N = -3 J' / 8.The result is size-independent and equal across the entire exact-dimer parameter window — the J nearest-neighbour bonds contribute zero on the singlet-product ground state.
Jp > 0 is required (anti-ferromagnetic dimer bond) and J / Jp must lie at or below the Koga–Kawakami α_c ≈ 0.675; otherwise a DomainError is thrown.
References
- B. S. Shastry, B. Sutherland, Physica B+C 108, 1069 (1981).
- A. Koga, N. Kawakami, Phys. Rev. Lett. 84, 4461 (2000).
QAtlas.fetch — Method
fetch(::SherringtonKirkpatrick, ::CriticalTemperature, ::Infinite; J=m.J)
-> Float64Spin-glass critical temperature T_c = J of the Sherrington- Kirkpatrick model in the 1/√N normalisation with J_ij ~ N(0, J²) (Sherrington-Kirkpatrick 1975). For J ≤ 0 the model has no non-trivial ordering temperature (degenerate or unphysical distribution) and T_c = 0 is returned.
References
- D. Sherrington, S. Kirkpatrick, Phys. Rev. Lett. 35, 1792 (1975).
QAtlas.fetch — Method
fetch(::SherringtonKirkpatrick, ::Energy{:per_site}, ::Infinite; J=m.J)
-> Float64Zero-temperature ground-state energy density of the mean-field SK spin glass under Parisi's full-replica-symmetry-breaking solution (Parisi 1980; rigorously proved by Talagrand 2006):
e_0 / J ≈ -0.7631667 ± 0.00001 (Crisanti-Rizzo 2002).Returned as J * (-0.7631667). Reliability is :high since the numerical value is mathematically established and known to 7 digits.
References
- G. Parisi, J. Phys. A 13, L115 (1980).
- A. Crisanti, T. Rizzo, Phys. Rev. E 65, 046137 (2002).
- M. Talagrand, Annals Math. 163, 221 (2006).
QAtlas.fetch — Method
fetch(::SixVertex, ::FreeEnergy, ::Infinite; beta::Real = Inf, kwargs...) -> Float64Free-energy density per vertex of the six-vertex model in the thermodynamic limit, dispatched on the Lieb phase parameter Δ = (a² + b² − c²) / (2 a b).
Ferroelectric (Δ > 1) — frozen ground state, closed form
f = −log max(a, b) (Lieb 1967c)Implemented exactly.
Square-ice point (a = b = c) — Lieb 1967a closed form, f = −(3/2) log(4/3). Implemented exactly.
Generic disordered (|Δ| ≤ 1, off the square-ice diagonal) — Lieb / Sutherland 1967 trigonometric integral. Deferred in this commit (Phase 2 of issue #163); the precise normalisation across the full disordered region needs the careful Baxter §8.8 bookkeeping that we have not yet validated robustly. Calls in this region throw an informative
ArgumentError.Antiferroelectric (Δ < −1) — Lieb 1967b elliptic-function form, deferred in this commit (Phase 3 of issue #163). Calls throw an informative
ArgumentError.
The beta kwarg is accepted for API symmetry with other classical fetches but does not enter the closed forms: the temperature scale is already absorbed into the weights (a, b, c).
References
- E. H. Lieb, Phys. Rev. 162, 162 (1967a) — square ice / disordered.
- E. H. Lieb, Phys. Rev. Lett. 18, 1046 (1967b) — antiferroelectric.
- E. H. Lieb, Phys. Rev. Lett. 19, 108 (1967c) — KDP / ferroelectric.
- B. Sutherland, Phys. Rev. Lett. 19, 103 (1967) — disordered phase trigonometric integral.
- R. J. Baxter, Exactly Solved Models in Statistical Mechanics (Academic Press, 1982), §§8.8–8.10.
QAtlas.fetch — Method
fetch(::SixVertex, ::ResidualEntropy, ::Infinite; kwargs...) -> Float64Zero-temperature configurational entropy per vertex of the six-vertex model on the infinite square lattice.
Square ice (a = b = c, equivalently Δ = 1/2) — Lieb 1967a closed form
S/N = (3/2) log(4/3) ≈ 0.4315231087…Ferroelectric phase (Δ > 1) — frozen ground state, a single ordered configuration up to global symmetry, so S_residual = 0.
Disordered phase off the square-ice point and antiferroelectric phase (Δ < −1) — the residual entropy is not yet implemented by this method and the call throws an informative
ArgumentError. The disordered-phase formula is the Lieb / Sutherland 1967 trigonometric integral evaluated at zero temperature; the AFE branch is the Lieb 1967b elliptic-function form. Both are tracked as follow-up scope.
References
- E. H. Lieb, Phys. Rev. 162, 162 (1967a) — square ice.
- E. H. Lieb, Phys. Rev. Lett. 18, 1046 (1967b) — F-model / AFE.
- B. Sutherland, Phys. Rev. Lett. 19, 103 (1967) — disordered phase trigonometric integral.
- R. J. Baxter, Exactly Solved Models in Statistical Mechanics (Academic Press, 1982), §8.8.
QAtlas.fetch — Method
fetch(::SpinIce, ::ResidualEntropy, ::Infinite; kwargs...) -> Float64Zero-temperature residual entropy per spin of pyrochlore spin ice in the Pauling 1935 closed form
S/N = (1/2) log(3/2) ≈ 0.20273.The estimate ignores ice-rule correlations between neighbouring tetrahedra; subsequent series (Nagle 1966) and numerical transfer matrix studies put the true value a few percent higher. The textbook closed form is shipped here because it is exact under the mean-tetrahedron approximation and remains the canonical constant-of-Nature for spin-ice phenomenology.
References
- L. Pauling, J. Am. Chem. Soc. 57, 2680 (1935).
QAtlas.fetch — Method
fetch(m::Symbol, q::Symbol, bc::BoundaryCondition = Infinite(); kwargs...)Deprecated in v0.13. Prefer the concrete-struct form:
fetch(TFIM(; J=1.0, h=1.0), Energy(), OBC(N=24); beta=5.0)This symbol-based signature is kept for drop-in backward compatibility — the call is routed through Model(m; kwargs...) + Quantity(q) and forwarded to the concrete fetch(::AbstractQAtlasModel, ::AbstractQuantity, ::BoundaryCondition) method registered by each model. A one-shot informational log is emitted the first time the shim is reached from a given site.
QAtlas.fetch — Method
fetch(::TASEP, ::SteadyStateCurrent, ::Infinite; p=m.p, ρ=m.ρ) -> Float64Mean-field steady-state particle current of TASEP at hopping rate p > 0 and density 0 ≤ ρ ≤ 1 (Derrida-Lebowitz 1998):
j(ρ) = p ρ (1 − ρ).Special points:
ρ = 1/2→j_max = p/4(maximal current, half-filling)ρ = 0orρ = 1→j = 0(empty / fully packed lattice)ρ ↔ 1 − ρ(particle-hole symmetry)
p ≤ 0 or ρ ∉ [0, 1] raises DomainError.
References
- B. Derrida, J. L. Lebowitz, Phys. Rev. Lett. 80, 209 (1998).
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(model::TFIM, ::CorrelationLength, ::Infinite; kwargs...) -> Float64T = 0 longitudinal correlation length of the infinite TFIM,
ξ = 1 / (2|h - J|) (gapped phase)
ξ = Inf (critical point h = J)This is set by the inverse mass gap Δ = 2|h - J| (see MassGap at Infinite); the asymptotic exponential decay of the connected longitudinal correlator is e^{-r/ξ}.
In QAtlas convention ξ is dimensionless (in units of the lattice spacing).
QAtlas.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, ::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, ::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{: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, ::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, ::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::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_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_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, ::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, ::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_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, ::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, ::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, ::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::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, ::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::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, 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, ::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, ::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.
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, ::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, ::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, ::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, ::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, ::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, ::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_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::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{: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, ::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, ::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, ::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, ::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, ::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.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(::TTbar, ::CentralCharge, ::Infinite; c=m.c, λ=m.λ) -> Float64UV central charge of the TT̄-deformed theory. The TT̄ deformation is irrelevant in the RG sense, hence the UV central charge is preserved for all values of the coupling λ:
c(λ) = c.c ≤ 0 raises DomainError. λ is unrestricted.
References
- A. B. Zamolodchikov, hep-th/0401146 (2004).
- F. A. Smirnov, A. B. Zamolodchikov, Nucl. Phys. B 915, 363 (2017).
QAtlas.fetch — Method
fetch(m::TightBinding1D, ::Energy{:per_site}, ::Infinite;
t=m.t, μ=m.μ, kwargs...) -> Float64Ground-state energy per site in the thermodynamic limit:
E/N = ⎧ 0 (μ ≤ -2t, empty band)
⎨ -(2t/π) sin(k_F) - (μ/π) k_F (|μ| < 2t, k_F = arccos(-μ/(2t)))
⎩ -μ (μ ≥ 2t, full band)with t > 0 enforced (DomainError otherwise).
QAtlas.fetch — Method
fetch(m::TightBinding1D, ::FermiVelocity, ::Infinite;
t=m.t, μ=m.μ, kwargs...) -> Float64Fermi velocity in the metallic regime (|μ| < 2t):
v_F = |∂ε/∂k|_{k_F} = 2t sin(k_F) = 2t √(1 - μ²/(4t²)),with k_F = arccos(-μ/(2t)). In the gapped phase (|μ| ≥ 2t) there is no Fermi surface and v_F = 0 is returned by convention (see MassGap for the insulating regime).
QAtlas.fetch — Method
fetch(m::TightBinding1D, ::FreeEnergy, ::Infinite;
beta::Real, t=m.t, μ=m.μ, kwargs...) -> Float64Per-site grand-potential density of the 1D non-interacting tight-binding chain at inverse temperature β > 0:
ω(β; t, μ) = -(1/(πβ)) ∫_0^π log(1 + e^{-β ε(k)}) dk,
ε(k) = -2t cos k - μ.Evaluated by QuadGK.quadgk with rtol = 1e-10. The T = 0 Energy{:per_site} closed form is the β → ∞ limit of the internal energy u(β), not of ω(β); the two coincide only when μ is outside the band (|μ| > 2t) and u_kin → 0.
References
- G. D. Mahan, Many-Particle Physics (3rd ed., 2000), §1.3.
- P. Coleman, Introduction to Many-Body Physics (2015), §2.4.
QAtlas.fetch — Method
fetch(m::TightBinding1D, ::MassGap, ::Infinite;
t=m.t, μ=m.μ, kwargs...) -> Float64Single-particle gap to the chemical potential:
Δ = max(0, |μ| - 2t).Gapless (metallic) for |μ| ≤ 2t (Fermi surface inside the band); band insulator for |μ| > 2t. At |μ| = 2t the band edge touches the chemical potential exactly (Lifshitz transition), Δ = 0.
QAtlas.fetch — Method
fetch(m::TightBinding1D, ::SpecificHeat, ::Infinite;
beta::Real, t=m.t, μ=m.μ, kwargs...) -> Float64Per-site specific heat at fixed chemical potential
c_μ(β; t, μ) = (β²/π) ∫_0^π ε(k)² n_F(βε) (1 − n_F(βε)) dk,
ε(k) = -2t cos k - μ.Both T → 0 (metal: linear in T, Sommerfeld; insulator: Arrhenius) and T → ∞ (~ β² · ⟨ε²⟩ / 4 → 0) limits are returned correctly.
References
- G. D. Mahan, Many-Particle Physics (3rd ed., 2000), §1.3.
QAtlas.fetch — Method
fetch(m::TightBinding1D, ::ThermalEntropy, ::Infinite;
beta::Real, t=m.t, μ=m.μ, kwargs...) -> Float64Per-site Gibbs entropy
s(β; t, μ) = (1/π) ∫_0^π { log(1 + e^{-βε}) + βε · n_F(βε) } dk,
ε(k) = -2t cos k - μ, n_F(x) = 1/(1 + e^x).Equivalent to the thermodynamic identity s = β (u − ω). In the high-T limit (β → 0⁺) each mode is half-occupied and s → log 2 per site; in the metallic ground-state limit (β → ∞, |μ| < 2t) the Sommerfeld expansion gives s ~ (π/3) v_F⁻¹ T per site.
References
- G. D. Mahan, Many-Particle Physics (3rd ed., 2000), §1.3.
QAtlas.fetch — Method
fetch(m::TightBindingV1D, ::Energy{:per_site}, ::Infinite;
t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64Ground-state energy density of the V = 0 tight-binding chain at T = 0:
e₀ = -2t/π · sin(k_F) - μ/π · k_F , k_F = arccos(-μ/(2t)) (|μ| < 2t)
e₀ = 0 (μ ≤ -2t, empty band)
e₀ = -μ (μ ≥ 2t, filled band)Obtained from e₀ = (1/2π) ∫_{-k_F}^{k_F} ε(k) dk with ε(k) = -2t cos(k) - μ.
V ≠ 0 raises DomainError (Phase 2 via JW ↔ XXZ1D).
References:
- G. D. Mahan, Many-Particle Physics (3rd ed., 2000), Chapter 1.
- N. W. Ashcroft, N. D. Mermin, Solid State Physics (1976), Ch. 9.
QAtlas.fetch — Method
fetch(m::TightBindingV1D, ::FermiVelocity, ::Infinite;
t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64Fermi velocity of the V = 0 tight-binding t-V chain,
v_F = 2t · sin(k_F), k_F = arccos(-μ/(2t)) ,valid in the metallic regime |μ| < 2t. For |μ| ≥ 2t there is no Fermi surface (band insulator); a DomainError is raised.
V ≠ 0 raises DomainError (Phase 2 via JW ↔ XXZ1D).
QAtlas.fetch — Method
fetch(m::TightBindingV1D, ::FreeEnergy, ::Infinite;
beta::Real, t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64Per-site grand-potential density of the spinless-fermion t-V chain at inverse temperature β > 0, currently implemented only at V = 0:
ω(β; t, μ) = -(1/(πβ)) ∫_0^π log(1 + e^{-β ε(k)}) dk,
ε(k) = -2t cos k - μ.V ≠ 0 raises DomainError (Phase 2 via JW ↔ XXZ1D).
QAtlas.fetch — Method
fetch(m::TightBindingV1D, ::MassGap, ::Infinite;
t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64Single-particle gap of the tight-binding t-V chain at V = 0:
Δ = max(0, |μ| - 2t) .Gapless inside the band (|μ| < 2t), zero at the band edges (|μ| = 2t), linear-in-|μ| insulator gap outside (|μ| > 2t).
V ≠ 0 raises DomainError (Phase 2 via JW ↔ XXZ1D).
QAtlas.fetch — Method
fetch(m::TightBindingV1D, ::SpecificHeat, ::Infinite;
beta::Real, t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64Per-site specific heat at fixed chemical potential of the V = 0 tight-binding t-V chain:
c_μ(β; t, μ) = (β²/π) ∫_0^π ε(k)² n_F(βε) (1 − n_F(βε)) dk,
ε(k) = -2t cos k - μ.V ≠ 0 raises DomainError (Phase 2 via JW ↔ XXZ1D).
QAtlas.fetch — Method
fetch(m::TightBindingV1D, ::ThermalEntropy, ::Infinite;
beta::Real, t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64Per-site Gibbs entropy of the V = 0 tight-binding t-V chain:
s(β; t, μ) = (1/π) ∫_0^π { log(1 + e^{-βε}) + βε · n_F(βε) } dk,
ε(k) = -2t cos k - μ.V ≠ 0 raises DomainError (Phase 2 via JW ↔ XXZ1D).
QAtlas.fetch — Method
fetch(::TodaLattice, ::MassGap, ::Infinite; kwargs...) -> Float64Small-amplitude phonon gap of the classical Toda lattice around the uniform-spacing ground state. The harmonic expansion gives ω(k) = 2 √(a b) |sin(k/2)|, an acoustic branch vanishing linearly at k = 0. The corresponding mass gap is identically zero for any (a, b) > 0.
References
- M. Toda, J. Phys. Soc. Jpn. 22, 431 (1967).
- H. Flaschka, Phys. Rev. B 9, 1924 (1974).
QAtlas.fetch — Method
fetch(::ToricCode, ::AnyonStatistics; type::Symbol) -> NamedTupleTopological data of one of the four toric-code anyons or the e/m mutual braiding. The returned NamedTuple shape depends on type:
type | NamedTuple fields |
|---|---|
:e | (label = :e, statistics = :boson, self_phase = 0.0, quantum_dim = 1.0, fusion = (:e, :e) => :1) |
:m | (label = :m, statistics = :boson, self_phase = 0.0, quantum_dim = 1.0, fusion = (:m, :m) => :1) |
:ε | (label = :ε, statistics = :fermion, self_phase = π, quantum_dim = 1.0, fusion = (:ε, :ε) => :1) |
:em_braiding | (label = :em_braiding, mutual_phase = π, anyons = (:e, :m)) |
Bosons have self-statistics phase 0; the bound state ε = e × m acquires the relative phase π from the mutual e/m braid, making it a fermion. The e/m mutual phase is π (Z₂ "mutual semion") — a full braid of one around the other multiplies the wave function by exp(iπ) = −1. All quantum dimensions are 1 (Abelian theory).
Aliases: type = :epsilon is accepted as a synonym of :ε.
Throws an ErrorException for any other type.
QAtlas.fetch — Method
fetch(::ToricCode, ::GroundStateDegeneracy, ::PBC; genus::Int = 1) -> IntGround-state degeneracy on a closed orientable surface of genus g,
GSD(g) = 4^g.This is the dimension of H¹(Σ_g; Z₂) ⊗ H¹(Σ_g; Z₂) (logical Pauli-X and Pauli-Z operators, one independent pair per non-contractible cycle). The torus (g = 1) gives the canonical 4-fold degeneracy. The result is purely topological — it depends only on genus, not on J_e, J_m or the lattice size.
PBC is the appropriate boundary tag because GSD is meaningful only on a closed surface; on OBC / a disk the model has a unique ground state (no homologically non-trivial loops), so the OBC method is intentionally not registered.
QAtlas.fetch — Method
fetch(::ToricCode, ::GroundStateEnergyDensity, ::Infinite) -> Float64Ground-state energy density ε₀ = −(J_e + J_m).
Closed-form: every stabilizer commutes with every other, so the ground state simultaneously saturates A_v = +1 ∀v and B_p = +1 ∀p. The energy contribution per (vertex + plaquette) unit cell is −J_e − J_m.
QAtlas.fetch — Method
fetch(::ToricCode, ::MassGap, ::Infinite) -> Float64Single-anyon excitation gap Δ = 2·min(J_e, J_m).
Flipping a single vertex stabilizer eigenvalue (creating an e charge) costs 2 J_e; flipping a single plaquette (creating an m flux) costs 2 J_m. The minimum-energy excitation is therefore 2·min(J_e, J_m) — the gap of the cheaper anyon species.
QAtlas.fetch — Method
fetch(::ToricCode, ::TopologicalEntanglementEntropy, ::Infinite) -> Float64Topological entanglement entropy γ = log 2.
For the Z₂ topological order realised by the toric code, the total quantum dimension is 𝒟 = √(Σ_a d_a²) = √(1² + 1² + 1² + 1²) = 2 (four Abelian anyons {1, e, m, ε}, each with d_a = 1). The Kitaev–Preskill (2006) / Levin–Wen (2006) prescription extracts γ = log 𝒟 = log 2 from the constant offset of the bipartite entanglement entropy on a simply-connected region,
S(ρ_A) = α |∂A| − γ + O(|∂A|⁻¹).Independent of J_e, J_m (purely topological).
Example
julia> QAtlas.fetch(ToricCode(), TopologicalEntanglementEntropy(), Infinite())
0.6931471805599453QAtlas.fetch — Method
fetch(::TricriticalIsing, ::CentralCharge, ::Infinite; kwargs...)
-> Rational{Int}Central charge of the tricritical Ising CFT, delegated to MinimalModel(5, 4):
c = 7/10.Returned as an exact Rational{Int} (7//10).
QAtlas.fetch — Method
fetch(::TricriticalIsing, ::ConformalWeights, ::Infinite; r, s, kwargs...)
-> Rational{Int}Kac conformal weight h{r,s} of the tricritical Ising CFT, delegated to MinimalModel(5, 4). Index range: 1 ≤ r ≤ pprime − 1 = 3, 1 ≤ s ≤ p − 1 = 4, with
h_{r,s} = ((p r − p_prime s)² − (p − p_prime)²) / (4 p p_prime)
= ((5 r − 4 s)² − 1) / 80.Famous primaries (literature (r̃, s̃) Kac labels mapped to the API (r, s) = (s̃, r̃) convention):
| field | lit. (r̃, s̃) | API (r, s) | h |
|---|---|---|---|
| 1 (identity) | (1,1) | (1,1) | 0 |
| σ (spin) | (2,2) | (2,2) | 3/80 |
| σ' (subld.) | (1,2) | (2,1) | 7/16 |
| ε (energy) | (2,1) | (1,2) | 1/10 |
| ε' (vacancy) | (2,3) | (3,2) | 3/5 |
| ε'' (irrel.) | (1,3) | (3,1) | 3/2 |
QAtlas.fetch — Method
fetch(::TricriticalIsing, ::PrimaryFields, ::Infinite; kwargs...)
-> Vector{NamedTuple}Independent Kac primaries of M(5, 4) modulo the Kac symmetry (r, s) ↔ (p_prime − r, p − s) = (4 − r, 5 − s) in the MinimalModel API convention. Total: 6 primaries.
QAtlas.fetch — Method
fetch(::TricriticalPotts3, ::CentralCharge, ::Infinite; kwargs...)
-> Rational{Int}Central charge of the tricritical 3-state Potts CFT, delegated to MinimalModel(6, 7):
c = 6/7.Returned as an exact Rational{Int} (6//7).
References
- G. E. Andrews, R. J. Baxter, P. J. Forrester, J. Stat. Phys. 35, 193 (1984).
- D. A. Huse, Phys. Rev. B 30, 3908 (1984).
QAtlas.fetch — Method
fetch(::TricriticalPotts3, ::ConformalWeights, ::Infinite; r::Integer, s::Integer, kwargs...)
-> Rational{Int}Conformal weight h_{r,s} from the Kac table of the tricritical 3-state Potts CFT, delegated to MinimalModel(7, 6):
h_{r,s}(p, p_prime) = ((p r - p_prime s)² - (p - p_prime)²) / (4 p p_prime),with (p, p_prime) = (7, 6) in QAtlas' p > p_prime convention.
Index ranges follow MinimalModel: 1 ≤ r ≤ p_prime - 1 = 5 and 1 ≤ s ≤ p - 1 = 6. Returns Rational{Int}.
Examples:
h_{1,1} = 0(identity, lowest weight)h_{1,2} = 1/7(energy operator ε)h_{2,1} = 3/8(M(7,6) Kac (2,1))
References
- A. A. Belavin, A. M. Polyakov, A. B. Zamolodchikov, Nucl. Phys. B 241, 333 (1984).
- G. E. Andrews, R. J. Baxter, P. J. Forrester, J. Stat. Phys. 35, 193 (1984).
QAtlas.fetch — Method
fetch(::TricriticalPotts3, ::PrimaryFields, ::Infinite; kwargs...) -> Vector{NamedTuple}Kac-table primary fields of the tricritical 3-state Potts CFT, delegated to MinimalModel(7, 6). Returns the ((p_prime - 1) * (p - 1) / 2) = 15 independent primaries with their (r, s) labels and h weights.
References
- A. A. Belavin, A. M. Polyakov, A. B. Zamolodchikov, Nucl. Phys. B 241, 333 (1984).
QAtlas.fetch — Method
fetch(::Universality{:Heisenberg}, ::CentralCharge; d::Int=1) -> Rational{Int}Central charge of the spin-1/2 Heisenberg universality class.
Only d = 1 is supported (the spin-1/2 antiferromagnetic Heisenberg chain in the SU(2)_1 Wess-Zumino-Witten universality class, central charge c = 1). For d ≥ 2 the Heisenberg universality class is not a 1+1D CFT (the 2D Heisenberg model has Goldstone modes; the 3D one has no critical line at finite T) — call sites that want a generic-CFT entanglement formula must use a 1+1D class.
Reference: Affleck–Haldane, Phys. Rev. B 36, 5291 (1987); di Francesco– Mathieu–Sénéchal §15.6 (SU(2)_1 WZW).
QAtlas.fetch — Method
fetch(::Universality{:Heisenberg}, ::CriticalExponents; d) -> NamedTupleCritical exponents of the Heisenberg (O(3)) universality class.
- d ≤ 2: Mermin-Wagner theorem — no spontaneous order at T > 0.
- d = 3: Conformal bootstrap / Monte Carlo.
- d ≥ 4: Mean-field.
QAtlas.fetch — Method
fetch(::Universality{:Ising}, ::CentralCharge; d::Int=2) -> Rational{Int}Central charge of the Ising universality class as a 1+1D CFT.
Only d = 2 is supported (the Ising minimal model M(3,4), central charge c = 1/2). For d ≥ 3 the universality class is not a 1+1D CFT and an ErrorException is thrown — call sites that want a generic-CFT entanglement formula must use a 1+1D class.
Reference: Belavin, Polyakov, Zamolodchikov, Nucl. Phys. B 241, 333 (1984).
QAtlas.fetch — Method
fetch(::Universality{:Ising}, ::CriticalExponents; d) -> NamedTupleCritical exponents of the Ising universality class (Z₂ symmetry).
- d = 2: Exact rational values (CFT minimal model M(3,4), c = 1/2).
- d = 3: High-precision numerical estimates from the conformal bootstrap (Kos et al. 2016). Fields
α_err,β_err, … give the uncertainty in the last digits. - d ≥ 4: Mean-field (Landau) exponents (upper critical dimension).
QAtlas.fetch — Method
fetch(::Universality{:KPZ}, ::GrowthExponents; d) -> NamedTupleScaling exponents of the KPZ universality class.
d = 1 (1+1D): all three exponents are exact
Rational{Int}. Scaling relations: $α + z = 2$ (Galilean invariance), $β = α / z$.d = 2 (2+1D): numerical estimates from Pagnani–Parisi 2015 (large-scale RSOS simulations). Returns Float64 fields with
_errcompanions:β_growth = 0.2415(15),α_rough = 0.393(5),z = 1.613(9).d = 3 (3+1D): numerical estimates from Kelling–Ódor 2011 (octahedron model on GPU). Returns Float64 fields with
_errcompanions:β_growth ≈ 0.18,α_rough ≈ 0.31,z ≈ 1.51. Galilean invariance $α + z = 2$ is not strictly satisfied by these estimates — the discrepancy reflects estimation uncertainty (and ongoing debate about whether KPZ has an upper critical dimension) rather than a violation of the symmetry. Treat the d=3 entry as best-numerical, not as a sharp reference.
Higher dimensions (d ≥ 4) are not implemented; the upper critical dimension of KPZ remains an open problem.
QAtlas.fetch — Method
fetch(::Universality{:Percolation}, ::CriticalExponents; d) -> NamedTupleCritical exponents of the ordinary (site/bond) percolation universality class.
- d = 2: Exact rational values (Coulomb gas mapping).
- d = 3: Numerical (Monte Carlo).
- d ≥ 6: Mean-field.
QAtlas.fetch — Method
fetch(::Universality{:Poisson}, ::MeanRatio) -> Float64Mean of the consecutive level-spacing ratio r_n = min(s_n, s_{n+1}) / max(s_n, s_{n+1}) for a Poisson (uncorrelated) spectrum:
⟨r⟩ = 2 log 2 - 1 ≈ 0.3862944Atas-Bogomolny-Giraud-Roux, Phys. Rev. Lett. 110, 084101 (2013), Eq. (2).
QAtlas.fetch — Method
fetch(::Universality{:Poisson}, ::WignerSurmise; s::Real) -> Float64Level-spacing distribution of an uncorrelated (Poisson) spectrum, P(s) = exp(-s). Mean spacing is normalised to 1 by construction.
Although strictly speaking only Wigner-Dyson ensembles have a "surmise", we register Poisson against the same WignerSurmise quantity tag for symmetry of the API: callers can compare RMT vs Poisson at the same call site.
QAtlas.fetch — Method
fetch(::Universality{:Potts3}, ::CentralCharge; d::Int=2) -> Rational{Int}Central charge of the 3-state Potts universality class. d = 2 only. The 2D 3-state Potts model is the Virasoro minimal model M(5,6) with c = 4/5.
Reference: Dotsenko, Nucl. Phys. B 235, 54 (1984); di Francesco– Mathieu–Sénéchal §7.4.
QAtlas.fetch — Method
fetch(::Universality{:Potts3}, ::CriticalExponents; d=2) -> NamedTupleExact critical exponents of the 3-state Potts model in d=2 (S₃ symmetry).
QAtlas.fetch — Method
fetch(::Universality{:Potts4}, ::CentralCharge; d::Int=2) -> Rational{Int}Central charge of the 4-state Potts universality class. d = 2 only. The 2D 4-state Potts model is at the marginal compact-boson point (self-dual radius); the central charge is c = 1.
Reference: di Francesco–Mathieu–Sénéchal, Conformal Field Theory (Springer 1997), §12.3.
QAtlas.fetch — Method
fetch(::Universality{:Potts4}, ::CriticalExponents; d=2) -> NamedTupleExact critical exponents of the 4-state Potts model (Ashkin–Teller point) in d=2 (S₄ symmetry). This is the marginal case: the transition is second-order with logarithmic corrections.
QAtlas.fetch — Method
fetch(::Universality{:RMT}, ::MeanRatio; β::Int) -> Float64Mean of consecutive level-spacing ratio ⟨r⟩ = ⟨min(s_n, s_{n+1}) / max(s_n, s_{n+1})⟩ for β ∈ {1, 2, 4}, from Atas-Bogomolny-Giraud-Roux, Phys. Rev. Lett. 110, 084101 (2013):
| β | ⟨r⟩ |
|---|---|
| 1 | 0.5307 |
| 2 | 0.5996 |
| 4 | 0.6744 |
QAtlas.fetch — Method
fetch(::Universality{:RMT}, ::SpectralFormFactor; ensemble::Symbol=:GUE, τ::Real=Inf) -> Float64Disorder-averaged spectral form factor K(τ) for the random-matrix universality class in the large-N thermodynamic limit, with τ = t / N (Heisenberg time τ_H = 2π).
QAtlas Phase 1 (issue #243) exposes only the GUE ensemble in the late-time plateau regime τ ≥ 2π, where the disorder-averaged SFF saturates universally to K(τ→∞) = 1 (Mehta 2004 §16; Cotler et al. 2017, arXiv:1611.04650).
The Mehta connection formula K(τ) = (τ/(2π)) − (τ/(4π)) log|1 − τ/(2π)| on the ramp side τ < 2π, and the GOE / GSE sigma-model closed forms, are deferred to Phase 2.
Errors
DomainErrorifensemble ≠ :GUE(GOE / GSE Phase 2).DomainErrorifτ < 2π(ramp regime, Phase 2).
QAtlas.fetch — Method
fetch(::Universality{:RMT}, ::TracyWidom; β::Int, x::Real) -> Float64Tracy-Widom CDF F_β(x) = P[ξ_β ≤ x] for β ∈ {1, 2, 4} (GOE, GUE, GSE largest-eigenvalue limit law).
QAtlas Phase 1 evaluates F_β from a tabulated grid compiled from Bornemann, On the numerical evaluation of Fredholm determinants, Math. Comp. 79, 871 (2010), Table 1; the table covers x ∈ [-4.0, 4.0] for all three β. Inside the table support the interpolant is piecewise-linear and monotone non-decreasing. Outside the table the function returns the Tracy-Widom 1994/1996 left/right tail asymptotics, matched continuously to the table boundary.
Reference checkpoints (Bornemann 2010, Table 1):
F_1(0) ≈ 0.8319F_2(0) ≈ 0.9694F_4(0) ≈ 0.99966
A direct Painlevé-II integrator (DifferentialEquations.jl based) is deferred to Phase 2; see issue #151.
QAtlas.fetch — Method
fetch(::Universality{:RMT}, ::WignerSurmise; β::Int, s::Real) -> Float64Wigner surmise nearest-neighbour level-spacing distribution P_β(s) for β ∈ {1, 2, 4}.
Closed-form expressions (mean spacing normalised to 1):
P_1(s) = (π s / 2) exp(-π s² / 4)GOEP_2(s) = (32 s² / π²) exp(-4 s² / π)GUEP_4(s) = (2¹⁸ s⁴ / (3⁶ π³)) exp(-64 s² / (9π))GSE
Each integrates to 1 with first moment 1 (verified analytically and by the standalone test). Behaves as P_β(s) ~ s^β for s → 0⁺ (level repulsion) and as P_β(s) ~ exp(-c_β s²) for large s.
QAtlas.fetch — Method
fetch(::Universality{:XY}, ::CentralCharge; d::Int=2) -> Rational{Int}Central charge of the XY (O(2)) universality class, d = 2 only. The 2D XY model has a Berezinskii–Kosterlitz–Thouless transition; the critical line below T_BKT is described by a free compact boson with c = 1.
Reference: Kosterlitz, J. Phys. C 7, 1046 (1974); di Francesco– Mathieu–Sénéchal §6.
For d ≥ 3 the class is not a 1+1D CFT and the call errors.
QAtlas.fetch — Method
fetch(::Universality{:XY}, ::CriticalExponents; d) -> NamedTupleCritical exponents of the XY (O(2)) universality class.
- d = 2: BKT transition — no standard power-law exponents. Returns η(T_c) = 1/4 only.
- d = 3: Conformal bootstrap (Chester et al. 2020).
- d ≥ 4: Mean-field.
QAtlas.fetch — Method
fetch(::WZWSU2, ::CentralCharge) -> Rational{Int}Sugawara central charge c = 3k / (k + 2) of WZW SU(2) at level k. Returned as an exact Rational{Int}.
QAtlas.fetch — Method
fetch(::WZWSU2, ::ConformalWeights; j) -> Rational{Int}Conformal weight h_j = j (j+1) / (k+2) of the spin-j primary at level k. j must be a non-negative half-integer (i.e. Rational such that 2j ∈ ℤ_{≥0}) with 0 ≤ j ≤ k/2.
Out-of-range or non-half-integer j throws DomainError.
fetch(WZWSU2(1), ConformalWeights(); j=0) # 0//1
fetch(WZWSU2(1), ConformalWeights(); j=1//2) # 1//4
fetch(WZWSU2(2), ConformalWeights(); j=1) # 1//2QAtlas.fetch — Method
fetch(::XCube, ::GroundStateDegeneracy, ::PBC;
Lx::Int, Ly::Int, Lz::Int) -> BigIntSubextensive ground-state degeneracy of the X-cube fracton model on a closed Lx × Ly × L_z cubic torus (Vijay-Haah-Fu 2016 / Slagle-Kim 2017):
GSD(L_x, L_y, L_z) = 2^{2 (L_x + L_y + L_z) − 3}.Returned as a BigInt because the exponent grows linearly in the side lengths and can exceed Int64 for modest L. All L_α ≥ 2 is required (smaller tori fail the well-defined-stabiliser conditions).
References
- S. Vijay, J. Haah, L. Fu, Phys. Rev. B 94, 235157 (2016).
- K. Slagle, Y. B. Kim, Phys. Rev. B 96, 195139 (2017).
QAtlas.fetch — Method
fetch(model::XXZ1D, ::CentralCharge, ::Infinite) -> Float64Central charge of the XXZ chain:
-1 < Δ < 1→c = 1(Luttinger liquid)- otherwise →
NaN(non-critical)
QAtlas.fetch — Method
fetch(model::XXZ1D, ::EnergyLocal, ::OBC; beta) -> Vector{Float64}Site-local energy density ε_i of the OBC XXZ chain at inverse temperature beta, defined so that Σᵢ ε_i = ⟨H⟩_β. Each bond b_{i,i+1} = (J/4)(σˣσˣ + σʸσʸ + Δ σᶻσᶻ) is split symmetrically between its two endpoints:
ε_i = ½ ⟨b_{i-1,i}⟩_β + ½ ⟨b_{i,i+1}⟩_βwith the missing bonds at i = 1 / i = N taken to be zero.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::Energy{:per_site}, ::Infinite; [beta]) -> Float64Per-site energy of the infinite XXZ chain.
Without
beta: ground-state energy density. Closed-form values at the three canonical pointsΔ ∈ {-1, 0, 1}; warns and returnsNaNotherwise (general-Δ Bethe ansatz is a follow-up).With
beta: thermal energy density⟨H⟩_β / N. AtΔ = 0evaluated by Gauss-Kronrod quadrature of the free-fermion integrale(β) = -(1/(2π)) ∫₀^π ε(k) tanh(β ε(k) / 2) dk, ε(k) = -J cos k.The β → ∞ limit reproduces
-J/π(matching XXZ.jl's_xxz1d_energy_free_fermion). At general Δ the thermal Bethe ansatz (issue #108) is required; a warning is emitted andNaNreturned.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::Energy{:total}, ::OBC; beta) -> Float64Total thermal energy ⟨H⟩_β for the spin-½ OBC chain at finite size, computed by dense ED. Works for any Δ and any N ≤ 12. Intended as a reference for MPS thermal methods (TPQMPS / Purification / METTS).
⟨H⟩_β = Tr(H exp(-βH)) / Tr(exp(-βH))Convention matches fetch(::TFIM, ::Energy, ::OBC): finite-size boundary conditions return total energy; only Infinite() returns per-site (⟨H⟩/N, the only finite quantity in the thermodynamic limit).
QAtlas.fetch — Method
fetch(model::XXZ1D, ::FreeEnergy, ::Infinite; beta::Real, kwargs...)Per-site Helmholtz free energy of the infinite XXZ chain. Currently only Δ = 0 (XX / free fermion) is implemented:
f(β) = -(1/(πβ)) ∫₀^π log(2 cosh(β ε(k) / 2)) dk, ε(k) = -J cos k.For other Δ the thermal Bethe ansatz (issue #108) is required; this method emits a warning and returns NaN.
References: Mahan, Many-Particle Physics, §1.3; Coleman, Introduction to Many-Body Physics, §2.4; Takahashi (1999), §4.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::FreeEnergy, ::OBC; beta) -> Float64Per-site Helmholtz free energy f(β) = -log Z / (Nβ) of the spin-½ OBC XXZ chain at finite N ≤ 12, computed by dense ED.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::GroundStateEnergyDensity, ::Infinite) -> Float64Alias for fetch(::XXZ1D, ::Energy, ::Infinite) kept so that the GroundStateEnergyDensity quantity — already exported by Heisenberg.jl — works uniformly across 1D Bethe-ansatz chains.
QAtlas.fetch — Method
fetch(model_f::XXZ1D, ::LoschmidtEcho{:rate}, ::Infinite;
initial::XXZ1D, t::Real) -> Float64Loschmidt rate function
λ(t) = - lim_{N→∞} (1/N) log |⟨ψ₀ | e^{-iH_f t} | ψ₀⟩|²for the XX → XX quench H_XX(J₀) → H_XX(J_f) of the infinite Δ = 0 chain (Calabrese-Essler-Fagotti, J. Stat. Mech. (2012) P07016, specialised to the Gaussian-state-to-Gaussian-state, no-pairing sub-case).
Because H_XX(J) Jordan–Wigner-transforms to a tight-binding fermion chain without pairing, both H_XX(J₀) and H_XX(J_f) are diagonalised in the same plane-wave basis c(k). The Loschmidt amplitude therefore factorises into single-mode phases,
⟨ψ₀ | e^{-iH_f t} | ψ₀⟩
= ∏_k exp{ -i ε_{J_f}(k) t · (n_k(J₀) - 1/2) },whose modulus is identically 1 (each factor is a pure phase). Equivalently, |ψ₀⟩ = |GS(J₀)⟩ is a number eigenstate of H_f because both Hamiltonians are diagonal in the same {n̂_k}, so e^{-iH_f t}|ψ₀⟩ = e^{-iE_f^{(J₀)} t}|ψ₀⟩ is a pure phase. Hence
λ(t) ≡ 0 for every (J₀, J_f), including sgn J₀ ≠ sgn J_f.The static overlap |⟨GS(J₀)|GS(J_f)⟩| does vanish at sign-flip (Anderson orthogonality of complementary Fermi seas), but that is a different quantity from the Loschmidt autocorrelation and does not enter λ(t).
This trivial result holds because the only XX → XX quench expressible in the current XXZ1D model class is GS-to-GS without any Bogoliubov-rotation knob. A non-trivial Loschmidt rate appears in quenches from non-Gaussian initial states (Néel / dimer; CEF 2012) or under XY-pairing dynamics, both of which are Phase-2 follow-ups (see issues #143, #146).
Arguments
model_f::XXZ1D— final Hamiltonian. Must haveΔ = 0(otherwiseDomainError); a follow-up issue (#108 / #143) coversΔ ≠ 0.initial::XXZ1D— initial Hamiltonian whose ground state is the pre-quench state|ψ₀⟩. Must also haveΔ = 0.t::Real— real evolution time.
Returns
0.0 (the trivial Phase-1 value, valid for every t ≥ 0 and every sign combination of (initial.J, model_f.J)).
Examples
julia> m = XXZ1D(; J=1.0, Δ=0.0);
julia> fetch(m, LoschmidtEcho(; mode=:rate), Infinite(); initial=m, t=1.0)
0.0
julia> fetch(m, LoschmidtEcho(; mode=:rate), Infinite();
initial=XXZ1D(; J=0.5, Δ=0.0), t=1.0)
0.0
julia> fetch(m, LoschmidtEcho(; mode=:rate), Infinite();
initial=XXZ1D(; J=-1.0, Δ=0.0), t=1.0) # sign-flip — also 0
0.0References
- P. Calabrese, F.H.L. Essler, M. Fagotti, J. Stat. Mech. (2012) P07016 — XX-quench dynamics, Loschmidt amplitude.
- M. Heyl, A. Polkovnikov, S. Kehrein, Phys. Rev. Lett. 110, 135704 (2013) — definition of the dynamical Loschmidt rate λ(t).
- F.H.L. Essler, M. Fagotti, J. Stat. Mech. (2016) 064002.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::LuttingerParameter, ::Infinite) -> Float64Luttinger-liquid parameter K = π / (2(π − γ)), with γ = arccos(Δ), valid for -1 < Δ ≤ 1.
Canonical values:
Δ = 0(XX free fermion) →K = 1Δ = 1(AF Heisenberg) →K = 1/2Δ → -1(FM boundary) →K → ∞
QAtlas.fetch — Method
fetch(model::XXZ1D, ::LuttingerVelocity, ::Infinite) -> Float64
fetch(model::XXZ1D, ::SpinWaveVelocity, ::Infinite) -> Float64Sound velocity of the low-energy Luttinger-liquid mode,
u(Δ) = J · (π/2) · sin(γ)/γ, γ = arccos(Δ).Canonical values:
Δ = 0(XX) →u = J(= free-fermion v_F)Δ = 1(AF) →u = (π/2) J(des Cloizeaux-Pearson)
SpinWaveVelocity dispatches here via the const SpinWaveVelocity = LuttingerVelocity type alias (both are the same physical quantity for 1D critical spin chains).
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MagnetizationX, ::OBC; beta) -> Float64Per-site bulk magnetisation ⟨Σᵢ σˣᵢ⟩_β / N of the OBC XXZ chain.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MagnetizationXLocal{:equilibrium}, ::OBC; beta) -> Vector{Float64}Site-resolved [⟨σˣ_i⟩_β for i = 1:N]. Identically zero up to dense-ED round-off because σˣ_i flips a single Sᶻ and the XXZ Hamiltonian conserves total Sᶻ.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MagnetizationY, ::OBC; beta) -> Float64Per-site bulk magnetisation ⟨Σᵢ σʸᵢ⟩_β / N. Identically zero for the XXZ Hamiltonian (the eigenvectors of a real-symmetric H — the XXZ matrix in the σᶻ-product basis is real symmetric — give purely imaginary expectations of σʸ that cancel mode-by-mode). Returned by explicit calculation rather than hard-coded zero so the caller still sees the dense-ED noise floor.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MagnetizationYLocal, ::OBC; beta) -> Vector{Float64}Site-resolved [⟨σʸ_i⟩_β for i = 1:N]. Identically zero by the same U(1) argument as MagnetizationXLocal plus parity (σʸ_i is purely imaginary in the σᶻ basis).
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MagnetizationZ, ::OBC; beta) -> Float64Per-site bulk magnetisation ⟨Σᵢ σᶻᵢ⟩_β / N. Σᵢ σᶻᵢ commutes with H (U(1) symmetry), so the thermal average is Tr(M_z exp(-βH))/Z; for even N and any real β the σᶻ-product basis groups symmetrically between sectors of opposite total Sᶻ and the average is zero. For odd N the unique smallest-Sᶻ-magnitude sector is half-filled ±½ (still S_z = ±½), so the average is again zero up to round-off.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MagnetizationZLocal, ::OBC; beta) -> Vector{Float64}Site-resolved [⟨σᶻ_i⟩_β for i = 1:N]. Each ⟨σᶻi⟩ is identically zero up to round-off in the canonical Boltzmann ensemble (sectors of opposite Sz come in equal weight pairs).
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MassGap, ::Infinite) -> Float64Mass gap of the spin-½ XXZ chain in the thermodynamic limit:
- Critical regime
-1 < Δ ≤ 1: gapless Luttinger liquid, returns0.0. - Gapped regimes (
Δ > 1antiferromagnetic Ising-like,Δ < -1ferromagnetic Ising-like): closed-form gap is non-trivial (Bethe ansatz integrals), not yet implemented; returnsNaNwith a warning.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::MassGap, ::OBC) -> Float64Energy gap E₁ - E₀ between the two lowest eigenvalues of the OBC XXZ Hamiltonian at finite N ≤ 12.
QAtlas.fetch — Method
fetch(model::XXZ1D, q::RenyiEntropy, ::OBC; ℓ, beta=Inf) -> Float64Rényi entropy of order α = q.α for the first ℓ sites,
S_α = log(Tr ρ_A^α) / (1 - α).α = 1 is rejected at the RenyiEntropy constructor; use VonNeumannEntropy() for that limit.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::SpecificHeat, ::Infinite; beta::Real, kwargs...)Per-site heat capacity of the infinite XXZ chain. At Δ = 0,
C(β) = (1/π) ∫₀^π (β ε / 2)² sech²(β ε / 2) dk, ε(k) = -J cos k.Returns NaN (with a warning) for general Δ pending the thermal Bethe ansatz of issue #108.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::SpecificHeat, ::OBC; beta) -> Float64Per-site heat capacity c(β) = β² · Var(H) / N, computed exactly from the energy variance in the eigenbasis (no numerical differentiation).
QAtlas.fetch — Method
fetch(model::XXZ1D, ::SusceptibilityXX, ::OBC; beta) -> Float64Static transverse susceptibility per site χ_xx(β) = (β/N) · (⟨M_x²⟩ - ⟨M_x⟩²), with M_x = Σᵢ σˣᵢ.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::SusceptibilityYY, ::OBC; beta) -> Float64Static y-axis susceptibility per site, χ_yy(β) = (β/N) Var(M_y). By the SU(2) → U(1) reduction the XXZ model has ⟨M_y⟩ = 0, so this is β ⟨M_y²⟩ / N.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::SusceptibilityZZ, ::OBC; beta) -> Float64Static longitudinal susceptibility per site, χ_zz(β) = (β/N) Var(M_z). At Δ = 1 (Heisenberg) this equals χ_xx = χ_yy by SU(2) symmetry.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::ThermalEntropy, ::Infinite; beta::Real, kwargs...)Per-site Gibbs entropy of the infinite XXZ chain. Implemented at Δ = 0 only via
s(β) = (1/π) ∫₀^π [ log(2 cosh(βε/2)) - (βε/2) tanh(βε/2) ] dk,
ε(k) = -J cos k,equivalent to s(β) = β (e(β) - f(β)). In the high-T limit (β → 0) this saturates to log 2 per site. Returns NaN (with a warning) for general Δ pending issue #108.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::ThermalEntropy, ::OBC; beta) -> Float64Per-site Gibbs entropy s(β) = β · (ε - f) of the OBC XXZ chain.
QAtlas.fetch — Method
fetch(model::XXZ1D, ::VonNeumannEntropy, ::OBC; ℓ, beta=Inf) -> Float64Von Neumann entanglement entropy S = -Tr ρ_A log ρ_A of the first ℓ sites of the OBC XXZ chain at inverse temperature beta (or the ground state when beta = Inf).
Computed by exact ED + partial trace; cost O(2^{2N}) memory and O(2^{3ℓ}) for the eigen of ρ_A. Capped by _MAX_ED_SITES.
QAtlas.fetch — Method
fetch(m::XYh1D, ::Energy{:per_site}, ::Infinite;
Jx=m.Jx, Jy=m.Jy, h=m.h, kwargs...) -> Float64Ground-state energy per site of the LSM/Pfeuty XY chain in a transverse field, restricted to the isotropic XX limit Jx = Jy = J. Via Jordan-Wigner the model maps to free spinless fermions with single-particle dispersion ξ(k) = 2h − 4J cos k; the ground state fills all modes with ξ(k) < 0.
In the thermodynamic limit, with the LSM 1961 sign convention H = −J Σ(σˣσˣ + σʸσʸ) − h Σ σᶻ,
h ≥ 2J(empty Fermi sea, all spins ↑):E/N = −hh ≤ −2J(full Fermi sea, all spins ↓):E/N = h|h| < 2J(partially filled,k_F = arccos(h/2J)):E/N = −h + (2h/π) · arccos(h/(2J)) − (4J/π) · √(1 − (h/(2J))²).
At h = 0: E/N = −4J/π ≈ −1.27323954J (Lieb-Schultz-Mattis 1961).
Anisotropic Jx ≠ Jy raises DomainError — Phase 2.
References
- E. Lieb, T. Schultz, D. Mattis, Annals Phys. 16, 407 (1961).
- P. Pfeuty, Annals Phys. 57, 79 (1970).
QAtlas.fetch — Method
fetch(m::XYh1D, ::MassGap, ::Infinite;
Jx=m.Jx, Jy=m.Jy, h=m.h, kwargs...) -> Float64Single-particle Bogoliubov gap of the LSM/Pfeuty XY chain in a transverse field, restricted to the isotropic XX limit Jx = Jy = J. In that limit the dispersion collapses to ε(k) = |h − 2J cos k|, and the gap closes whenever |h| ≤ 2J:
MassGap = 2 · max(0, |h| − 2J).Anisotropic Jx ≠ Jy raises DomainError — Phase 2.
References
- E. Lieb, T. Schultz, D. Mattis, Annals Phys. 16, 407 (1961).
- P. Pfeuty, Annals Phys. 57, 79 (1970).
QAtlas.fetch — Method
fetch(::YangLee, ::CentralCharge, ::Infinite; kwargs...) -> Rational{Int}Central charge of the Yang-Lee CFT (non-unitary M(5, 2)):
c = -22/5delegated to MinimalModel(5, 2). Returned as an exact Rational{Int} (-22//5).
References
- J. L. Cardy, Phys. Rev. Lett. 54, 1354 (1985).
- C. N. Yang and T. D. Lee, Phys. Rev. 87, 404 (1952).
QAtlas.fetch — Method
fetch(::YangLee, ::ConformalWeights, ::Infinite; r::Integer=1, s::Integer=1, kwargs...)
-> Rational{Int}Kac-formula conformal weight h_{r,s} of the Yang-Lee CFT, delegated to MinimalModel(5, 2).
For M(p, pprime) = M(5, 2) the Kac-table index range is `r ∈ [1, pprime - 1] = [1, 1](onlyr = 1) ands ∈ [1, p - 1] = [1, 4], with the Kac symmetry(r, s) ↔ (p_prime - r, p - s)` identifying
(1, 1) ↔ (1, 4) with h = 0 (identity)
(1, 2) ↔ (1, 3) with h = -1/5 (Yang-Lee primary)so the theory has only two distinct primaries.
Out-of-range (r, s) throws DomainError (inherited from MinimalModel).
References
- J. L. Cardy, Phys. Rev. Lett. 54, 1354 (1985).
QAtlas.fetch — Method
fetch(m::ZnClock, ::CentralCharge, ::Infinite; n::Integer=m.n, kwargs...)
-> Rational{Int}Central charge of the 2-D Z_n clock model, currently supported for n = 2 and n = 3 via delegation:
- n = 2:
MinimalModel(4, 3)→ c = 1/2 (Ising universality). - n = 3:
MinimalModel(6, 5)→ c = 4/5 (3-state Potts universality).
For n = 4 (Ashkin-Teller line) and n ≥ 5 (intermediate BKT phase) the critical theory is a continuous family of c = 1 CFTs and selecting a particular member requires a coupling; those branches throw a DomainError and are deferred to Phase 2.
References
- J. V. José, L. P. Kadanoff, S. Kirkpatrick, D. R. Nelson, Phys. Rev. B 16, 1217 (1977).
- S. Elitzur, R. B. Pearson, J. Shigemitsu, Phys. Rev. D 19, 3698 (1979).
QAtlas.fetch — Method
fetch(::ZnParafermion, ::CentralCharge, ::Infinite; n=m.n) -> Rational{Int}Central charge of the Z_n parafermion CFT (Fateev-Zamolodchikov 1985):
c(n) = 2(n - 1) / (n + 2)equivalent to the SU(2)_n / U(1) coset central charge. Special values:
- n = 2 → c = 1/2 (Ising / Majorana)
- n = 3 → c = 4/5 (3-state Potts)
- n = 4 → c = 1 (compactified free boson)
- n = 5 → c = 8/7
- n → ∞ → c → 2 (asymptotic SU(2) WZW level → ∞)
Returned as an exact Rational{Int}.
References
- V. A. Fateev, A. B. Zamolodchikov, Sov. Phys. JETP 62, 215 (1985).
QAtlas.fetch — Method
fetch(::Universality{C}, ::RenyiEntropy, ::Infinite; ℓ::Real, kwargs...)
-> Float64Calabrese–Cardy Rényi-α entanglement entropy in the thermodynamic limit, L → ∞:
S_α(ℓ) = ((c/6)(1 + 1/α)) · log ℓ.Reduces to the von Neumann (c/3) log ℓ at α = 1 after the substitution c -> c · (1 + 1/α) / 2.
QAtlas.fetch — Method
fetch(::Universality{C}, ::RenyiEntropy, ::OBC; ℓ::Real, L::Real, kwargs...)
-> Float64Calabrese–Cardy Rényi-α entanglement entropy on an open chain. Same closed form as the von Neumann OBC case with the substitution
c -> c · (1 + 1/α) / 2,so
S_α(ℓ, L) = ((c/12)(1 + 1/α)) · log[(2L/π) sin(πℓ/L)].The non-universal c'_1 and Affleck–Ludwig log g are dropped.
Reference: Calabrese–Cardy J. Phys. A 42, 504005 (2009) eq. (30).
QAtlas.fetch — Method
fetch(::Universality{C}, ::RenyiEntropy, ::PBC; ℓ::Real, L::Real, kwargs...)
-> Float64Calabrese–Cardy Rényi-α entanglement entropy on a periodic chain. Same closed form as the von Neumann case with the substitution
c -> c · (1 + 1/α) / 2,i.e.
S_α(ℓ, L) = ((c/6)(1 + 1/α)) · log[(L/π) sin(πℓ/L)]Reduces to the von Neumann result at α = 1 (which is excluded here because RenyiEntropy(1) throws — use VonNeumannEntropy() instead).
Reference: Calabrese–Cardy J. Stat. Mech. P06002 (2004) eq. (3.12).
QAtlas.fetch — Method
fetch(::Universality{C}, ::VonNeumannEntropy, ::Infinite; ℓ::Real, kwargs...)
-> Float64Calabrese–Cardy von Neumann entanglement entropy in the thermodynamic limit (L → ∞) of a 1+1D CFT, with PBC scaling — i.e. two entanglement cuts in an infinite chain:
S(ℓ) = (c/3) log ℓ (Infinite)The non-universal additive constant is dropped. This is the standard "infinite-chain" reference used to extract the central charge from finite-size lattice data.
Reference: Calabrese–Cardy J. Stat. Mech. P06002 (2004) eq. (3.13).
QAtlas.fetch — Method
fetch(::Universality{C}, ::VonNeumannEntropy, ::OBC; ℓ::Real, L::Real, kwargs...)
-> Float64Calabrese–Cardy von Neumann entanglement entropy on an open chain of length L, for the canonical "block at one boundary" geometry: the subsystem A occupies sites 1..ℓ (or equivalently L-ℓ+1..L), so exactly one of A's endpoints sits at the open boundary and only one entanglement cut lies in the bulk:
S(ℓ, L) = (c/6) log[(2L/π) sin(πℓ/L)] (OBC, block at end)For a block in the bulk of an open chain (e.g. sites L/4..L/4+ℓ with both endpoints away from the boundary), there are two bulk cuts and the prefactor reverts to c/3, with a different log argument involving conformal cross-ratios of four points (Calabrese– Cardy J. Phys. A 42, 504005 (2009) §3.3). This bulk-block formula is not implemented by this method.
The non-universal additive constant c'_1 and the Affleck–Ludwig boundary entropy log g (boundary state-dependent) are dropped. At the balanced bipartition (ℓ = L/2) the OBC value is half of the PBC value (one entanglement cut vs two).
Reference: Calabrese–Cardy J. Stat. Mech. P06002 (2004) eq. (3.16); J. Phys. A 42, 504005 (2009) eq. (30). Affleck–Ludwig boundary entropy: Affleck–Ludwig, Phys. Rev. Lett. 67, 161 (1991).
QAtlas.fetch — Method
fetch(::Universality{C}, ::VonNeumannEntropy, ::PBC; ℓ::Real, L::Real, kwargs...)
-> Float64Calabrese–Cardy von Neumann entanglement entropy of a contiguous block of length ℓ in a 1+1D CFT on a periodic chain of length L:
S(ℓ, L) = (c/3) log[(L/π) sin(πℓ/L)] (PBC)The non-universal additive constant c'_1 (UV cutoff) is dropped. The central charge is fetched via fetch(Universality{C}(), CentralCharge()); classes without a 1+1D-CFT central charge raise ErrorException.
Boundary cases:
ℓ → 0orℓ → L: argument of the log → 0, returns-Inf(UV divergence) — physically the cut runs through zero sites.ℓ = L/2: maximum.
Reference: Calabrese–Cardy J. Stat. Mech. P06002 (2004) eq. (3.8); J. Phys. A 42, 504005 (2009) eq. (28).
QAtlas.get_e8_mass_ratios — Method
E8_MASS_RATIOSAnalytical expressions for the 8 particle masses in the E8 spectrum of the Ising field theory. Normalized by the lightest mass m₁.
References
- Theory: Zamolodchikov, A. B. (1989). Integrals of motion and S-matrix of the (scaled) T= Tc Ising model with magnetic field. International Journal of Modern Physics A, 4(16), 4235-4248.
- Review: Delfino, G. (2004). Integrable field theory and critical phenomena: the Ising model in a magnetic field. Journal of Physics A: Mathematical and General, 37(14), R45-R78.
- Experiment: Coldea, R., Tennant, D. A., Wheeler, E. M., Wawrzynska, E., Prabhakaran, D., Telling, M., ... & Kiefer, K. (2010). Quantum criticality in an Ising chain: experimental evidence for emergent E8 symmetry. Science, 327(5962), 177-180.
QAtlas.has_native_fetch — Method
has_native_fetch(impl::Implementation) -> Booltrue iff which(fetch, (impl.model, impl.quantity, impl.bc)) resolves to a method more specific than the catch-all in core/type.jl. Conversion fallbacks (e.g. the generic Energy{:per_site} ↔ Energy{:total} router) count as "native" because they are a real dispatchable implementation — they just live above the model layer.
Used by test/core/test_registry.jl to detect registry rows that silently lost their backing fetch method.
QAtlas.heisenberg_spinon_dispersion — Method
heisenberg_spinon_dispersion(model::Heisenberg1D, k::Real; J::Real = 1.0)
-> Float64Single-spinon dispersion of the spin-½ antiferromagnetic Heisenberg chain in the thermodynamic limit (Faddeev–Takhtajan 1981):
ε(k) = (π J / 2) |sin k|, k ∈ [0, π].Spinons are massless half-odd-integer-spin excitations and the lower edge of the two-spinon continuum coincides with this dispersion, see heisenberg_two_spinon_lower_edge.
Special values:
ε(0) = 0— gapless point.ε(π/2) = π J / 2— band centre maximum.ε(π) = 0— gapless Umklapp point.
J is passed by keyword because Heisenberg1D is parameterless in this codebase (every other quantity threads J through kwargs the same way).
References
L. D. Faddeev, L. A. Takhtajan, "What is the spin of a spin wave?",
Phys. Lett. A 85, 375 (1981).QAtlas.heisenberg_two_spinon_lower_edge — Method
heisenberg_two_spinon_lower_edge(model::Heisenberg1D, q::Real;
J::Real = 1.0) -> Float64Lower edge of the two-spinon continuum at total momentum q for the spin-½ XXX AFM chain (des Cloizeaux–Pearson 1962):
ε_L(q) = (π J / 2) |sin q|.By construction ε_L(q) ≡ ε(q) where ε is the single-spinon dispersion (heisenberg_spinon_dispersion) — this reflects the kinematic configuration in which one of the two spinons sits at zero energy, so the total energy equals the energy of the other.
Special values:
ε_L(0) = ε_L(π) = 0— gapless points (Umklapp included).ε_L(π/2) = π J / 2— maximum of the lower edge.
References
J. des Cloizeaux, J. J. Pearson, "Spin-wave spectrum of the
antiferromagnetic linear chain", Phys. Rev. 128, 2131 (1962).QAtlas.heisenberg_two_spinon_upper_edge — Method
heisenberg_two_spinon_upper_edge(model::Heisenberg1D, q::Real;
J::Real = 1.0) -> Float64Upper edge of the two-spinon continuum at total momentum q for the spin-½ XXX AFM chain (des Cloizeaux–Pearson 1962):
ε_U(q) = π J |sin(q/2)|.Special values:
ε_U(0) = 0— Goldstone-like vanishing of the support window at q = 0.ε_U(π) = π J— top of the continuum at the Umklapp point.
For q ∈ (0, π] one has ε_U(q) ≥ ε_L(q) strictly except at the gapless points where the continuum collapses to a line.
References
J. des Cloizeaux, J. J. Pearson, "Spin-wave spectrum of the
antiferromagnetic linear chain", Phys. Rev. 128, 2131 (1962).QAtlas.implementation_status — Method
implementation_status() -> Vector{NamedTuple}
implementation_status(model::AbstractQAtlasModel)
implementation_status(::Type{<:AbstractQAtlasModel})
implementation_status(quantity::AbstractQuantity)
implementation_status(::Type{<:AbstractQuantity})
implementation_status(queue::AbstractVector)Return registry rows as NamedTuples (Tables.jl-compatible without a Tables dependency).
- No-arg: every registered triple.
model/quantity(instance or type): rows whose corresponding type field matches exactly (no subtype walking — model parameters are part of the identity here).queue: a vector of(model, quantity, bc)triples (each component may be either an instance or a type). Returns one row per queue entry that is registered, dropping entries that are not.
Use this to plan downstream work — e.g. before writing tests for a new ThermalMPS workload, query the queue you intend to validate against.
QAtlas.implementation_status_markdown — Function
implementation_status_markdown([io::IO=stdout], entries=implementation_status())Render entries (any iterable of NamedTuple rows from implementation_status) as a GitHub-flavoured Markdown table to io.
QAtlas.kdp_model — Method
kdp_model(a::Real) -> SixVertexKDP model sub-family a free, b = c = 1 (Lieb 1967c). Phase boundary at a = 2:
- a < 2 — disordered (Δ ∈ (-1/2, 1) for 0 < a < 2).
- a = 2 — critical (Δ = 1).
- a > 2 — ferroelectric, frozen (Δ > 1, free energy −log a).
The "KDP" naming is historical (Slater's potassium-dihydrogen-phosphate ferroelectric model).
References
- E. H. Lieb, Phys. Rev. Lett. 19, 108 (1967c).
QAtlas.native_energy_granularity — Function
native_energy_granularity(model, bc) -> :total | :per_siteTrait declaring which granularity the given model returns natively for Energy at boundary condition bc. Used by the Energy() (:natural) router and by the generic conversion fallbacks.
Every model that supports Energy must add a method per supported BC, e.g.
QAtlas.native_energy_granularity(::TFIM, ::OBC) = :total
QAtlas.native_energy_granularity(::TFIM, ::Infinite) = :per_siteA missing method is caught at the call site as a MethodError, which is intentional: it forces new models to declare the convention rather than silently inheriting an unrelated default.
QAtlas.native_energy_granularity — Method
native_energy_granularity(::S1Heisenberg1D, ::Infinite) -> :per_siteThe infinite spin-1 Heisenberg chain has a well-defined per-site ground-state energy density e₀ ≈ -1.401484 J (White-Huse 1993) but no finite total energy. Per-site is the only meaningful granularity.
QAtlas.pfaffian — Method
pfaffian(A::AbstractMatrix) -> eltype(A)Compute the Pfaffian of an antisymmetric matrix A.
A must be square of even dimension. Antisymmetry (A[i,j] == -A[j,i]) is assumed; only the strictly upper (or lower) triangle is semantically used — diagonal entries are ignored.
For an odd-dimensional antisymmetric matrix the Pfaffian is zero by definition, and that is returned.
Works for both real and complex numeric element types. The algorithm is numerically stable with partial pivoting and runs in O(n³).
QAtlas.register! — Method
register!(model_T, quantity_T, bc_T;
method=:unknown, reliability=:unknown,
tested_in=nothing, references=String[], notes="")Push a new Implementation row into REGISTRY. Usually called via the @register macro for ergonomics.
QAtlas.square_ice — Method
square_ice() -> SixVertexSquare-ice point a = b = c = 1 (Δ = 1/2, disordered phase). The zero-temperature configurational entropy per vertex is the Lieb 1967a closed form
S/N = (3/2) log(4/3) ≈ 0.4315231087…References
- E. H. Lieb, Phys. Rev. 162, 162 (1967a).
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.@register — Macro
@register Model Quantity BC method=… reliability=… tested_in=… references=… notes=…Thin macro around register!. Lets each model file register its native fetch methods declaratively, e.g.
@register TFIM Energy{:total} OBC method=:bdg reliability=:high \
tested_in="test/models/test_TFIM_thermal.jl" \
references=["Pfeuty 1970"]The three positional arguments are spliced as types; the remaining key=value pairs are forwarded as keyword arguments to register!.