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:

  1. Precise citation: author, year, journal, equation number
  2. Derivation sketch: enough to independently verify
  3. Cross-validation: tested against independent computation
  4. 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.

ModelTypeKey ResultsPage
TFIMQuantumEnergy, gap, thermal observables, entanglement
IsingSquareClassical$Z$, $T_c$, $M(T)$
IsingTriangularClassicalFrustrated AFM ($T_c = 0$) + Wannier residual entropy; FM Houtappel
Heisenberg1DQuantumDimer, 4-site PBC, Bethe $e_0$
MajumdarGhoshQuantumExact dimer GS at $J_2/J_1=1/2$, $E_0/N=-3J/8$
XXZ1DQuantumExact $\Delta \in \{-1, 0, 1\}$ + Luttinger $K, u$
Honeycomb TBQuantumBloch spectrum (honeycomb / graphene)
Kagome TBQuantumFlat band at $+2t$
Lieb TBQuantumFlat band at $E = 0$
Triangular TBQuantumFrustrated band $[-6t, +3t]$

Universality Classes

Critical exponents and scaling relations via Universality{C}.

ClassDimensionsTypePage
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$DExact
XY / Heisenberg$d = 2, 3, \geq 4$BKT / Bootstrap / MF
E8Exact mass ratios

Verification

How QAtlas ensures physical correctness.

Methods

Computational techniques used by QAtlas, with physical justification.

API Reference

QAtlas.REGISTRYConstant
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.

source
QAtlas._MAX_ED_SITESConstant
_MAX_ED_SITES = 12

Hard 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.

source
QAtlas._MAX_ED_SITES_S1Constant
_MAX_ED_SITES_S1 = 8

Hard 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.

source
QAtlas.AKLT1DType
AKLT1D(; J::Real = 1.0) <: AbstractQAtlasModel

Spin-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.

source
QAtlas.AKLT2DType
AKLT2D(; J::Real = 1.0) <: AbstractQAtlasModel

2D 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.

source
QAtlas.AbstractModelType
const AbstractModel = AbstractQAtlasModel

Backward-compatible alias. Existing downstream code dispatches on ::AbstractModel; new code should use ::AbstractQAtlasModel directly or — preferably — a concrete model struct.

source
QAtlas.AbstractQAtlasModelType
AbstractQAtlasModel

Abstract 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.

source
QAtlas.AbstractQuantityType
AbstractQuantity

Abstract 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.

source
QAtlas.AnyonStatisticsType
AnyonStatistics() <: AbstractQuantity

Topological 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.

source
QAtlas.BCFTType
BCFT() <: AbstractQAtlasModel

Boundary 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):

QuantityBCMethod
ResidualEntropyInfiniteanalytic log g for Ising Cardy states

The Cardy state is selected via the state keyword to fetch:

  • state=:fixed, :fixed_plus, :fixed_minusg = 1/√2, log g = -log(2)/2 (physical fixed-spin boundaries, ≡ (|1⟩ ± |ε⟩)/√2)
  • state=:freeg = 1, log g = 0 (physical free boundary, ≡ the |σ⟩ Cardy state)
  • state=:sigmag = 1, log g = 0 (|σ⟩ Cardy state — alias of :free)
  • state=:identity, :vacuumg = 1/√2, log g = -log(2)/2 (|1⟩ Cardy state)
  • state=:epsilon, :energyg = 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).
source
QAtlas.BoundaryConditionType
BoundaryCondition

Abstract 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 finite N.
  • OBC(N::Int) — open boundary conditions at finite N.

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.

source
QAtlas.CasimirEnergyCorrectionType
CasimirEnergyCorrection() <: AbstractQuantity

Universal 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).
Phase 2 (TODO)

The conformal tower of states –- primary scaling dimensions $(h, \bar h)$ and the $E_n - E_0 = (2\pi v/L)(h_n + \bar h_n)$ excitation pattern –- is tracked separately as future work (Phase 2 of issue #150) and will be exposed via a ConformalTower quantity once implemented.

source
QAtlas.CentralChargeType
CentralCharge() <: AbstractQuantity

Central charge c of the emergent CFT. For 1D critical systems extracted from the Calabrese–Cardy entanglement formula; universality pages return literature values.

source
QAtlas.ChargeGapType
ChargeGap() <: AbstractQuantity

Charge (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.

source
QAtlas.ChernSimons3DType
ChernSimons3D(; N::Integer = 2, k::Integer = 1) <: AbstractQAtlasModel

3-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 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:

QuantityBCMethod
CentralChargeInfiniteanalytic (Sugawara k(N²-1)/(k+N))
PartitionFunctionInfiniteanalytic (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).
source
QAtlas.ChiralCondensateType
ChiralCondensate() <: AbstractQuantity

Vacuum 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.)

source
QAtlas.Cluster1DType
Cluster1D(; J::Real = 1.0) <: AbstractQAtlasModel

1D 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):

QuantityBCMethod
Energy (:per_site)Infiniteanalytic (stabiliser ground state)
MassGapInfiniteanalytic (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).
source
QAtlas.Compass1DType
Compass1D(; J_x::Real = 1.0, J_y::Real = 1.0) <: AbstractQAtlasModel

1D 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:

  • MassGap at Infinite()Δ = 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).
source
QAtlas.ConformalBootstrapType
ConformalBootstrap() <: AbstractQAtlasModel

The 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):

QuantityBCMethod
ConformalWeightsInfinitebootstrap 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.
source
QAtlas.ConformalWeightsType
ConformalWeights() <: AbstractQuantity

Primary 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}.

source
QAtlas.CorrelationLengthType
CorrelationLength() <: AbstractQuantity

Two-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|)).

source
QAtlas.CriticalExponentsType
CriticalExponents() <: AbstractQuantity

Standard 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.

source
QAtlas.CurieWeissIsingType
CurieWeissIsing(; J::Real = 1.0, h::Real = 0.0) <: AbstractQAtlasModel

Classical 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:

QuantityBCNotes
CriticalTemperatureInfiniteJ (h = 0 reference)
SpontaneousMagnetizationInfiniteh → 0⁺ limit (independent of model.h)
CriticalExponentsInfiniteMeanField universality
Energy{:per_site}Infinite-Jm²/2 - hm
FreeEnergyInfiniteJm²/2 - β⁻¹ log[2 cosh(β(Jm+h))]
ThermalEntropyInfinitelog[2cosh(β(Jm+h))] - β(Jm+h)m
SpecificHeatInfiniteβ²(Jm+h)²(1-m²)/(1-βJ(1-m²))
SusceptibilityZZInfiniteβ(1-m²)/(1-βJ(1-m²))

References

  • L. D. Landau, E. M. Lifshitz, Statistical Physics §149.
source
QAtlas.DMIHeisenberg1DType
DMIHeisenberg1D(; J::Real = 1.0, D::Real = 0.0) <: AbstractQAtlasModel

Spin-½ 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).
source
QAtlas.E8Type
E8() <: AbstractQAtlasModel

The 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.

source
QAtlas.E8SpectrumType
E8Spectrum() <: AbstractQuantity

Zamolodchikov 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.

source
QAtlas.EdgeModeEnergyType
EdgeModeEnergy() <: AbstractQuantity

Energy 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.

source
QAtlas.EnergyType
Energy{G}() <: AbstractQuantity
Energy()                 # G = :natural — model-and-BC-natural granularity
Energy(:total)           # explicit ⟨H⟩
Energy(:per_site)        # explicit ⟨H⟩ / N

Ground-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.

source
QAtlas.EnergyLocalType
EnergyLocal() <: AbstractQuantity

Bond-resolved energy density vector, length N_bulk − 1 for a bond Hamiltonian Σ_b h_b.

source
QAtlas.ExtendedHubbard1DType
ExtendedHubbard1D(; t::Real = 1.0, U::Real = 4.0, V::Real = 0.0)
    <: AbstractQAtlasModel

1D 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).
source
QAtlas.FermiVelocityType
FermiVelocity() <: AbstractQuantity

Fermi 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.

source
QAtlas.FibonacciAnyonsType
FibonacciAnyons <: AbstractQAtlasModel

Non-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).
source
QAtlas.FractalDimensionType
FractalDimension() <: AbstractQuantity

Hausdorff 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.

source
QAtlas.FreeEnergyType
FreeEnergy() <: AbstractQuantity

Helmholtz free energy per site, f = -β⁻¹ log Z / N.

source
QAtlas.GGEValueType
GGEValue{Q<:AbstractQuantity}(inner) <: AbstractQuantity

Wrapper 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 value

Fetch signature (TFIM)

fetch(TFIM(h = h_f), GGEValue(Energy()), Infinite();
      initial = TFIM(h = h_0)) -> Float64

A no-quench limit h_0 = h_f reduces to the static ground-state value of the inner observable.

source
QAtlas.GrossNeveuType
GrossNeveu(; N::Integer = 1, g::Real = 0.0) <: AbstractQAtlasModel

1+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:

QuantityBCMethod
CentralChargeInfiniteanalytic (c = N at the free point)
MassGapInfiniteanalytic (Λ 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).
source
QAtlas.GroundStateDegeneracyType
GroundStateDegeneracy() <: AbstractQuantity

Dimension 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.

source
QAtlas.GrowthExponentsType
GrowthExponents() <: AbstractQuantity

KPZ-type growth / roughness / dynamic exponents. Returns (β_growth, α_rough, z) instead of the equilibrium set.

source
QAtlas.Heisenberg1DType
Heisenberg1D

Dispatch 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 antiferromagnetic
source
QAtlas.HeisenbergXYZType
HeisenbergXYZ(; Jx::Real = 1.0, Jy::Real = 1.0, Jz::Real = 1.0)
    <: AbstractQAtlasModel

Spin-½ 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:

QuantityBCMethod
Energy (:per_site)Infinitedelegated to XXZ1D

References

  • R. J. Baxter, Annals Phys. 70, 193 (1972).
  • L. D. Faddeev, L. A. Takhtajan, J. Soviet Math. 24, 241 (1984).
source
QAtlas.HoneycombType
Honeycomb(; t::Real = 1.0, Lx::Int = 0, Ly::Int = 0) <: AbstractQAtlasModel

Nearest-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 (default 1.0).
  • Lx, Ly — unit-cell counts in the two lattice directions. 0 is 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.

source
QAtlas.Hubbard1DType
Hubbard1D(; t::Real = 1.0, U::Real = 4.0, μ::Real = 2.0) <: AbstractQAtlasModel

1D Hubbard model

H = -t Σ_{i, σ} (c†_{i,σ} c_{i+1,σ} + h.c.)
    + U Σ_i n_{i,↑} n_{i,↓}
    - μ Σ_i n_i

Convention: 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

Off half filling raises a DomainError — the general-filling (coupled-integral-equation) and finite-temperature (QTM) surfaces are deferred to Phase 2.

source
QAtlas.Ising2DType
Ising2D <: AbstractQAtlasModel

Dispatch 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.

source
QAtlas.IsingChain1DType
IsingChain1D(; J::Real = 1.0, h::Real = 0.0) <: AbstractQAtlasModel

Classical 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:

QuantityBCMethod
CriticalTemperatureInfiniteanalytic
FreeEnergyInfiniteanalytic
CorrelationLengthInfiniteanalytic

References

  • E. Ising, Z. Phys. 31, 253 (1925).
source
QAtlas.IsingSquareType
IsingSquare(; J::Real = 1.0, Lx::Int = 0, Ly::Int = 0) <: AbstractQAtlasModel

Classical 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 (default 1.0, J > 0 ferromagnetic).
  • Lx, Ly — lattice extents. 0 is a legacy sentinel meaning "thermodynamic limit / unspecified"; finite-size quantities like PartitionFunction require 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.

source
QAtlas.IsingTriangularType
IsingTriangular(; J::Real = 1.0) <: AbstractQAtlasModel

Classical 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:

QuantityBCMethod
CriticalTemperatureInfiniteanalytic
ResidualEntropyInfiniteanalytic (QuadGK)
Sign convention differs from `IsingSquare`

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.

source
QAtlas.J1J2Heisenberg1DType
J1J2Heisenberg1D(; J1::Real = 1.0, J2::Real = 0.5) <: AbstractQAtlasModel

Spin-½ 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én E/N = J₁ (1/4 − ln 2),
  • j = 1/2 → Majumdar-Ghosh E/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).
source
QAtlas.KPZ1DType
KPZ1D <: AbstractQAtlasModel

Dispatch 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.

source
QAtlas.KagomeType
Kagome

Dispatch 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.

source
QAtlas.KagomeHeisenbergAFMType
KagomeHeisenbergAFM(; J::Real = 1.0) <: AbstractQAtlasModel

Spin-½ Heisenberg antiferromagnet on the Kagome lattice (highly frustrated, quantum spin liquid candidate).

Quantities registered (Phase 1, DMRG reference values):

QuantityBCMethod
Energy (:per_site)InfiniteDMRG (Yan-Huse-White 2011)
MassGapInfiniteDMRG (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).
source
QAtlas.Kitaev1DType
Kitaev1D(; μ = 0.0, t = 1.0, Δ = 1.0) <: AbstractQAtlasModel

Kitaev (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.

source
QAtlas.KitaevHeisenbergType
KitaevHeisenberg(; K::Real = 1.0, J::Real = 0.0, Γ::Real = 0.0)
    <: AbstractQAtlasModel

K-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):

QuantityBCMethod
MassGapInfinitedelegated 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).
source
QAtlas.KitaevHoneycombType
KitaevHoneycomb(; Kx=1.0, Ky=1.0, Kz=1.0) <: AbstractQAtlasModel

Kitaev 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.

source
QAtlas.LiebType
Lieb

Dispatch 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.

source
QAtlas.LiouvilleCFTType
LiouvilleCFT(; b::Real = 1.0) <: AbstractQAtlasModel

Non-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:

QuantityBCMethod
CentralChargeInfiniteanalytic (c = 1 + 6Q²)
ConformalWeightsInfiniteanalytic (Δ_α = α(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).
source
QAtlas.LogarithmicCFTType
LogarithmicCFT <: AbstractQAtlasModel

The 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.

source
QAtlas.LongRangeIsing1DType
LongRangeIsing1D(; J::Real = 1.0, h::Real = 1.0, α::Real = Inf)
    <: AbstractQAtlasModel

1D 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):

QuantityBCMethod
MassGapInfinitedelegated 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).
source
QAtlas.LongRangeXY1DType
LongRangeXY1D(; J::Real = 1.0, h::Real = 0.0, α::Real = Inf)
    <: AbstractQAtlasModel

1D 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):

QuantityBCMethod
MassGapInfiniteanalytic, α = 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).
source
QAtlas.LoschmidtEchoType
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)
source
QAtlas.LuttingerParameterType
LuttingerParameter() <: AbstractQuantity

Luttinger liquid parameter K. Meaningful for critical 1D models with U(1) symmetry (e.g. XXZ in the critical regime |Δ| < 1).

source
QAtlas.LuttingerVelocityType
LuttingerVelocity() <: AbstractQuantity

Luttinger-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.

source
QAtlas.MagnetizationXType
MagnetizationX() <: AbstractQuantity

Bulk-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.

source
QAtlas.MagnetizationXLocalType
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 constructor MagnetizationXLocal() 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 an initial::AbstractQAtlasModel (H_0) to the post-quench Hamiltonian (the model argument to fetch). Returns a single Float64 for 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)).

source
QAtlas.MagnetizationYLocalType
MagnetizationYLocal() <: AbstractQuantity

Site-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.

source
QAtlas.MagnetizationZType
MagnetizationZ() <: AbstractQuantity

Bulk-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.

source
QAtlas.MajumdarGhoshType
MajumdarGhosh(; J::Real = 1.0) <: AbstractQAtlasModel

Spin-½ 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).
source
QAtlas.MassGapType
MassGap() <: AbstractQuantity

Energy gap between the ground state and the first excited state.

source
QAtlas.MeanFieldType
MeanField() <: AbstractQAtlasModel

Mean-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).

source
QAtlas.MeanRatioType
MeanRatio() <: AbstractQuantity

Mean 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⟩
Poisson2 log 2 − 1 ≈ 0.3863
GOE (β=1)0.5307
GUE (β=2)0.5996
GSE (β=4)0.6744
source
QAtlas.MinimalModelType
MinimalModel(p::Int, p_prime::Int) <: AbstractQAtlasModel

Virasoro 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//16

See also: WZWSU2, Universality, CentralCharge, ConformalWeights, PrimaryFields.

source
QAtlas.MixedFieldIsing1DType
MixedFieldIsing1D(; J = 1.0, h_x = 1.0, h_z = 0.0) <: AbstractQAtlasModel

The 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.

source
QAtlas.ModelType
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.

source
QAtlas.OBCType
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].

source
QAtlas.PBCType
PBC(N::Int)
PBC(; N::Int = 0)

Periodic boundary condition. See OBC for the N = 0 sentinel.

source
QAtlas.PXP1DType
PXP1D(; Ω::Real = 1.0) <: AbstractQAtlasModel

Rydberg-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):

QuantityBCMethod
Energy (:per_site)InfiniteDMRG/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).
source
QAtlas.PpIp2DSCType
PpIp2DSC(; Δ₀::Real = 1.0, μ::Real = 1.0) <: AbstractQAtlasModel

2-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:

QuantityBCValue
CentralChargeInfinite1/2
TopologicalInvariantInfinite1

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).
source
QAtlas.PrimaryFieldsType
PrimaryFields() <: AbstractQuantity

Full 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.

source
QAtlas.QuantityType
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).

source
QAtlas.RFIMType
RFIM(; J::Real = 1.0, Δ::Real = 1.0) <: AbstractQAtlasModel

Random-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):

QuantityBCMethod
CriticalTemperatureInfiniteanalytic (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).
source
QAtlas.RandomBondIsing2DType
RandomBondIsing2D(; J::Real = 1.0, p::Real = 1.0) <: AbstractQAtlasModel

2D 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):

QuantityBCMethod
CentralChargeInfinitedelegation → 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).
source
QAtlas.RenyiEntropyType
RenyiEntropy(α) <: AbstractQuantity

Rényi entropy of order α, S_α = (1 − α)⁻¹ log Tr ρ_A^α.

  • α = 1 recovers VonNeumannEntropy (implementations may dispatch accordingly).
  • α = 2 is the second Rényi entropy, frequently measured experimentally.
  • α > 0, α ≠ 1 are 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.

source
QAtlas.ResidualEntropyType
ResidualEntropy() <: AbstractQuantity

Zero-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).

source
QAtlas.S1AnisotropicD1DType
S1AnisotropicD1D(; J::Real = 1.0, D::Real = 0.0) <: AbstractQAtlasModel

Spin-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):

QuantityBCMethod
MassGapInfinitedelegated 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).
source
QAtlas.S1Heisenberg1DType
S1Heisenberg1D(; J::Real = 1.0) <: AbstractQAtlasModel

Spin-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).

source
QAtlas.S1XXZ1DType
S1XXZ1D(; J::Real = 1.0, Δ::Real = 1.0) <: AbstractQAtlasModel

Spin-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.

source
QAtlas.SLEkappaType
SLEkappa(; κ::Real = 6.0) <: AbstractQAtlasModel

Schramm-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:

QuantityBCMethod
CentralChargeInfiniteanalytic (SLE-CFT correspondence)
FractalDimensionInfiniteanalytic (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).
source
QAtlas.SYKType
SYK(; q::Integer = 4) <: AbstractQAtlasModel

Sachdev-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):

QuantityBCMethod
ConformalWeightsInfiniteanalytic 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).
source
QAtlas.SchwingerModelType
SchwingerModel(; e::Real = 1.0, m::Real = 0.0) <: AbstractQAtlasModel

1+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):

QuantityBCMethod
MassGapInfiniteanalytic (e/√π, massless only)
ChiralCondensateInfiniteanalytic (-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).
source
QAtlas.ShastrySutherlandType
ShastrySutherland(; J::Real = 0.0, Jp::Real = 1.0) <: AbstractQAtlasModel

Spin-½ 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

  1. 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:

QuantityBCMethod
Energy (:per_site)Infiniteexact 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).
source
QAtlas.SherringtonKirkpatrickType
SherringtonKirkpatrick(; J::Real = 1.0) <: AbstractQAtlasModel

Sherrington-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):

QuantityBCMethod
CriticalTemperatureInfiniteanalytic
Energy (:per_site)Infinitevariational 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).
source
QAtlas.SixVertexType
SixVertex(; a::Real = 1.0, b::Real = 1.0, c::Real = 1.0) <: AbstractQAtlasModel

Classical six-vertex model on the infinite square lattice in the standard (a, b, c) parameterisation (Lieb 1967, Baxter 1982 ch. 8):

ω₁ = ω₂ = a,   ω₃ = ω₄ = b,   ω₅ = ω₆ = c

with 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:

QuantityBCCoverage
ResidualEntropyInfiniteSquare ice (Δ = 1/2) + FE (Δ > 1)
FreeEnergyInfiniteFE 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.

source
QAtlas.SpecificHeatType
SpecificHeat() <: AbstractQuantity

Specific heat per site, c_v(β) = β² (⟨H²⟩ − ⟨H⟩²) / N.

source
QAtlas.SpectralFormFactorType
SpectralFormFactor() <: AbstractQuantity

Disorder-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(τ) = 1 for τ ≥ 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.
source
QAtlas.SpinGapType
SpinGap() <: AbstractQuantity

Spin 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, …).

source
QAtlas.SpinIceType
SpinIce() <: AbstractQAtlasModel

Classical 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:

QuantityBCMethod
ResidualEntropyInfiniteanalytic (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).
source
QAtlas.SpinWaveVelocityType
const SpinWaveVelocity = LuttingerVelocity

Spin-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.

source
QAtlas.SpontaneousMagnetizationType
SpontaneousMagnetization() <: AbstractQuantity

Spontaneous 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.

source
QAtlas.SteadyStateCurrentType
SteadyStateCurrent() <: AbstractQuantity

Steady-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.

source
QAtlas.StringOrderParameterType
StringOrderParameter() <: AbstractQuantity

Kennedy-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.

source
QAtlas.SusceptibilityXXType
SusceptibilityXX() <: AbstractQuantity

Static transverse susceptibility, χ_xx(β) = β · (⟨M_x²⟩ − ⟨M_x⟩²) / N.

source
QAtlas.SusceptibilityZZType
SusceptibilityZZ() <: AbstractQuantity

Uniform longitudinal susceptibility, χ_zz(β) = β · (⟨M_z²⟩ − ⟨M_z⟩²) / N.

source
QAtlas.TASEPType
TASEP(; p::Real = 1.0, ρ::Real = 0.5) <: AbstractQAtlasModel

Totally 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):

QuantityBCMethod
SteadyStateCurrentInfiniteanalytic (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).
source
QAtlas.TFIMType
TFIM(; J = 1.0, h = 1.0) <: AbstractQAtlasModel

The 1D transverse field Ising model with Hamiltonian

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

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

source
QAtlas.TTbarType
TTbar(; c::Real = 1.0, λ::Real = 0.0) <: AbstractQAtlasModel

Universal 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):

QuantityBCMethod
CentralChargeInfiniteanalytic (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).
source
QAtlas.ThermalEntropyType
ThermalEntropy() <: AbstractQuantity

Thermal / thermodynamic entropy per site, s(β) = −∂f/∂T where f is the free energy per site. Real-valued, non-negative, monotone in T.

source
QAtlas.TightBinding1DType
TightBinding1D(; t::Real = 1.0, μ::Real = 0.0) <: AbstractQAtlasModel

1D 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):

QuantityBCFormula
Energy{:per_site}Infinitepartial-filling integral / band edges
MassGapInfinite`max(0,
FermiVelocityInfinite2t √(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.7320508075688772

References

  • N. W. Ashcroft, N. D. Mermin, Solid State Physics (1976), chapter 9.
source
QAtlas.TightBindingChecksumType
TightBindingChecksum() <: AbstractQuantity

Sum 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.

source
QAtlas.TightBindingMaxEnergyType
TightBindingMaxEnergy() <: AbstractQuantity

Largest 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.

source
QAtlas.TightBindingSpectrumType
TightBindingSpectrum() <: AbstractQuantity

Single-particle Bloch spectrum of a tight-binding model. Returned as a sorted Vector{Float64} of length n_orbitals · Lx · Ly.

source
QAtlas.TightBindingV1DType
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).

source
QAtlas.TodaLatticeType
TodaLattice(; a::Real = 1.0, b::Real = 1.0) <: AbstractQAtlasModel

Classical 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):

QuantityBCMethod
MassGapInfinitelinear-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).
source
QAtlas.TopologicalEntanglementEntropyType
TopologicalEntanglementEntropy() <: AbstractQuantity

Constant 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.

source
QAtlas.TopologicalInvariantType
TopologicalInvariant() <: AbstractQuantity

Topological 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.

source
QAtlas.ToricCodeType
ToricCode(; J_e::Real = 1.0, J_m::Real = 1.0) <: AbstractQAtlasModel

Kitaev (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.

source
QAtlas.TracyWidomType
TracyWidom() <: AbstractQuantity

Tracy-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.

source
QAtlas.TriangularType
Triangular

Dispatch 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.

source
QAtlas.TricriticalIsingType
TricriticalIsing() <: AbstractQAtlasModel

Tricritical 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):

QuantityBCMethod
CentralChargeInfinitedelegated to MinimalModel(5,4)
ConformalWeightsInfinitedelegated to MinimalModel(5,4)
PrimaryFieldsInfinitedelegated 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).
source
QAtlas.TricriticalPotts3Type
TricriticalPotts3() <: AbstractQAtlasModel

Tricritical 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:

QuantityBCMethod
CentralChargeInfinitedelegated to MinimalModel(7, 6)
ConformalWeightsInfinitedelegated to MinimalModel(7, 6)
PrimaryFieldsInfinitedelegated 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).
source
QAtlas.UniversalityType
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-field
source
QAtlas.VonNeumannEntropyType
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 value S_vN = -Tr ρ_A log ρ_A of the GS or thermal reduced density matrix on the first sites (kwarg ). This is the original meaning; the no-argument constructor VonNeumannEntropy() keeps back-compatibility by routing here.

  • :quench — time-evolved entanglement entropy S_vN(ℓ, t) = -Tr ρ_A(t) log ρ_A(t) after a sudden quench from the ground state of an initial::AbstractQAtlasModel (H_0) to the post-quench Hamiltonian (the model argument to fetch). Calabrese–Cardy quasi-particle picture (J. Stat. Mech. P04010 (2005)): linear growth S(ℓ, t) ≈ (c/3) v_E t for t ≪ ℓ/(2 v_E), saturating at (c/3) log ℓ + const for t ≫ ℓ/(2 v_E).

See docs/src/calc/tfim-quench-entanglement.md for the free-fermion derivation in the TFIM.

source
QAtlas.WZWSU2Type
WZWSU2(k::Int) <: AbstractQAtlasModel

Wess–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 contributing c = 1/2), or equivalently the smallest N=1 super-Virasoro minimal model. Note that "Ising × free Majorana" with one Majorana would only give c = 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//4

See also: MinimalModel, Universality, CentralCharge, ConformalWeights.

source
QAtlas.WignerSurmiseType
WignerSurmise() <: AbstractQuantity

Wigner 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 β).

source
QAtlas.XCubeType
XCube() <: AbstractQAtlasModel

Fracton 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):

QuantityBCMethod
GroundStateDegeneracyPBCanalytic (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).
source
QAtlas.XXCorrelationType
XXCorrelation{M}() <: AbstractQuantity
XXCorrelation(; mode::Symbol = :static)

Real-space 2-point ⟨σˣ_i σˣ_j⟩ correlator. See ZZCorrelation for the mode semantics.

source
QAtlas.XXZ1DType
XXZ1D(; J::Real = 1.0, Δ::Real = 0.0) <: AbstractQAtlasModel

Spin-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).

source
QAtlas.XYh1DType
XYh1D(; Jx::Real = 1.0, Jy::Real = 1.0, h::Real = 0.0) <: AbstractQAtlasModel

Anisotropic 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):

QuantityBCMethod
MassGapInfiniteclosed-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.
source
QAtlas.YYCorrelationType
YYCorrelation{M}() <: AbstractQuantity
YYCorrelation(; mode::Symbol = :static)

Real-space 2-point ⟨σʸ_i σʸ_j⟩ correlator.

source
QAtlas.YangLeeType
YangLee() <: AbstractQAtlasModel

Yang-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):

QuantityBCMethod
CentralChargeInfinitedelegated to MinimalModel(5,2)
ConformalWeightsInfinitedelegated 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).
source
QAtlas.ZZCorrelationType
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).

source
QAtlas.ZZStructureFactorType
ZZStructureFactor() <: AbstractQuantity

Fourier-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.

source
QAtlas.ZnClockType
ZnClock(n::Integer) <: AbstractQAtlasModel
ZnClock(; n::Integer=2)

2-D Z_n clock model with n clock states.

Phase-1 quantities:

QuantityBCMethod
CentralChargeInfinitedelegated 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).
source
QAtlas.ZnParafermionType
ZnParafermion(; n::Integer=3) <: AbstractQAtlasModel

Zn 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 satisfy n ≥ 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//7

References

  • V. A. Fateev, A. B. Zamolodchikov, Sov. Phys. JETP 62, 215 (1985).
source
QAtlas._aklt_hamiltonian_matrixMethod
_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.

source
QAtlas._bc_sizeFunction
_bc_size(bc::BoundaryCondition, kwargs) -> Int

Return 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.

source
QAtlas._bc_with_legacy_NMethod
_bc_with_legacy_N(bc::OBC, m::Model{:TFIM}) -> OBC

If 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.

source
QAtlas._build_wick_matrixMethod
_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.

source
QAtlas._cardy_central_chargeMethod
_cardy_central_charge(model::Universality{C}; kwargs...) -> Float64

Internal 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.

source
QAtlas._cardy_renyi_cMethod
_cardy_renyi_c(c::Real, α::Real) -> Float64

Calabrese–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.

source
QAtlas._check_quench_couplingsMethod
_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.

source
QAtlas._ed_log_partitionMethod
_ed_log_partition(evals::AbstractVector, β::Real) -> Float64

log Z(β) = log Σ exp(-β eₙ) with an emin shift to avoid overflow at large β:

log Z = -β eₘᵢₙ + log Σ exp(-β (eₙ - eₘᵢₙ))
source
QAtlas._ed_thermal_energyMethod
_ed_thermal_energy(H::AbstractMatrix, β::Real) -> Float64

⟨H⟩_β = Tr(H exp(-βH)) / Tr(exp(-βH)). H must be Hermitian.

source
QAtlas._ed_thermal_entropyMethod
_ed_thermal_entropy(H::AbstractMatrix, β::Real) -> Float64

Total 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.

source
QAtlas._ed_thermal_expectationMethod
_ed_thermal_expectation(evals, evecs, O_diag, β) -> Float64

Return ⟨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.

source
QAtlas._ed_thermal_free_energyMethod
_ed_thermal_free_energy(H::AbstractMatrix, β::Real) -> Float64

Total Helmholtz free energy F(β) = -log Z / β from the eigenspectrum of a Hermitian H. Per-site values: divide by N at the call site.

source
QAtlas._ed_thermal_specific_heatMethod
_ed_thermal_specific_heat(H::AbstractMatrix, β::Real) -> Float64

Total heat capacity from the energy variance,

C(β) = β² · (⟨H²⟩ - ⟨H⟩²).

Equivalent to -β² · ∂⟨H⟩/∂β; computed exactly from the eigenspectrum without numerical differentiation.

source
QAtlas._extended_hubbard1d_check_v_zeroMethod
_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.

source
QAtlas._free_energy_feMethod
_free_energy_fe(a, b, c) -> Float64

Closed-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.

source
QAtlas._heisenberg_szz_mullerMethod
_heisenberg_szz_muller(J, q, ω) -> Float64

Mü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.

Longitudinal only — S^{xx}, S^{yy} are NOT equal to S^{zz} at q ≠ 0

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.

source
QAtlas._hubbard1d_charge_gapMethod
_hubbard1d_charge_gap(t, U) -> Float64

Lieb–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.

source
QAtlas._hubbard1d_check_half_fillingMethod
_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.

source
QAtlas._hubbard1d_e0Method
_hubbard1d_e0(t, U) -> Float64

Lieb–Wu (1968) ground-state energy per site at half filling:

E₀/N = -4 t ∫_0^∞ dω  J₀(ω) J₁(ω) / [ ω (1 + exp(ω U / 2t)) ].
source
QAtlas._hubbard1d_e0_integrandMethod
_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.

source
QAtlas._ising_sq_log_zMethod
_ising_sq_log_z(m, Lx, Ly, β, J) -> Real

log 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.

source
QAtlas._ising_sq_transfer_matrixMethod
_ising_sq_transfer_matrix(Ly, β, J) -> Matrix

Return 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)).

source
QAtlas._kitaev1d_bdg_spectrumMethod
_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).

source
QAtlas._kitaev1d_majorana_blochMethod
_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.

source
QAtlas._kitaev_bz_integralMethod
_kitaev_bz_integral(integrand, model; rtol) -> Float64

Adaptive 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).

source
QAtlas._kitaev_energy_per_site_infinite_thermalMethod
fetch(model::KitaevHoneycomb, ::Energy{:per_site}, ::Infinite;
      beta=nothing, rtol=1e-8, kwargs...) -> Float64

Per-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 in KitaevHoneycomb.jl).
  • beta::Real returns 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).

source
QAtlas._kitaev_energy_per_site_obc_thermalMethod
fetch(model::KitaevHoneycomb, ::Energy{:per_site}, ::OBC;
      Lx, Ly, beta=nothing) -> Float64

Per-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 by KitaevHoneycomb.jl — the original method is preserved unchanged.
  • beta::Real returns the matter-sector thermal value ε(β) = -(1/(2·Lx·Ly)) Σ_k (σ_k/2) tanh(βσ_k/2).

Same matter-sector approximation regime as the Infinite variant.

source
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(θ₁ − θ₂).

source
QAtlas._kitaev_logcosh2Method
_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.

source
QAtlas._kitaev_pbc_sector_energyMethod
_kitaev_pbc_sector_energy(m, Lx, Ly, νx, νy) -> Float64

Per-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).

source
QAtlas._kitaev_thermo_infiniteMethod
_kitaev_thermo_infinite(quantity, model, β; rtol) -> Float64

Per-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.

source
QAtlas._kitaev_thermo_obcMethod
_kitaev_thermo_obc(quantity, model, Lx, Ly, β) -> Float64

Per-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.

source
QAtlas._majorana_covariance_gsMethod
_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.

source
QAtlas._majorana_evolutionMethod
_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.

source
QAtlas._majorana_hamMethod
_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.

source
QAtlas._majorana_thermal_covarianceMethod
_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.

source
QAtlas._obc_hopping_matrixMethod
_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.

source
QAtlas._onsager_log_z_per_siteMethod
_onsager_log_z_per_site(K) -> Float64

Onsager (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).

source
QAtlas._pauli_stringMethod
_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)
source
QAtlas._peschel_mode_entropyMethod
_peschel_mode_entropy(ν::Float64) -> Float64

Per-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).

source
QAtlas._peschel_mode_renyiMethod
_peschel_mode_renyi(ν::Real, α::Real) -> Float64

Per-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 to eps(Float64) — clamping injects an α · log(eps) error that becomes visible at small α < 1 (the dominant branch is α log 1 ≈ 0, so a clamped contribution of exp(α log eps) no longer underflows). See test/models/test_TFIM_renyi.jl "Compare against full ED".
  • ν → 0 (maximally mixed): both branches are (1/2)^α, giving s_α = 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).
source
QAtlas._s1_heisenberg_hamiltonian_matrixMethod
_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.

source
QAtlas._s1_partial_trace_AMethod
_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.

source
QAtlas._s1_thermal_expectationMethod
_s1_thermal_expectation(kernel, O) -> Float64

Trace 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).

source
QAtlas._s1_thermal_kernelMethod
_s1_thermal_kernel(model, N, beta) -> NamedTuple

Compute 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 dense 3^N × 3^N Hermitian Hamiltonian matrix
  • evals — sorted real eigenvalues (F.values)
  • evecs — eigenvector matrix (F.vectors)
  • weights — Boltzmann weights wₙ = exp(-β(eₙ - emin))/Z̃, normalised so sum(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.

source
QAtlas._six_vertex_deltaMethod
_six_vertex_delta(a, b, c) -> Float64

Lieb / Baxter phase parameter Δ = (a² + b² − c²) / (2 a b). All exact six-vertex thermodynamics is a function of Δ together with the overall energy scale.

source
QAtlas._six_vertex_phaseMethod
_six_vertex_phase(a, b, c) -> Symbol

Return 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).

source
QAtlas._spin1_stringMethod
_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.

source
QAtlas._sx_expectMethod
_sx_expect(Σ, i) -> Float64

⟨σˣ_i⟩_GS = Σ[2i-1, 2i], since σˣ_i = -i γ_{2i-1} γ_{2i}.

source
QAtlas._sx_sx_corrMethod
_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.

source
QAtlas._sx_sx_static_thermalMethod
_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.

source
QAtlas._sy_sy_corrMethod
_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.

source
QAtlas._sy_sy_corr_from_cachedMethod
_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}.

source
QAtlas._sz_sz_corrMethod
_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.

source
QAtlas._sz_sz_spreadingMethod
_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.

source
QAtlas._sz_sz_static_thermalMethod
_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.

source
QAtlas._tfim_bdg_diagonaliseMethod
_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).

source
QAtlas._tfim_bdg_fullMethod
_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.

source
QAtlas._tfim_bdg_spectrumMethod
_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} = -J
source
QAtlas._tfim_cc_entanglementMethod
_tfim_cc_entanglement(J, h, ℓ, β; α=1.0) -> Float64

Calabrese-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.

source
QAtlas._tfim_chi_F_infiniteMethod
_tfim_chi_F_infinite(J, h; rtol=1e-10) -> Float64

Per-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).

source
QAtlas._tfim_chi_F_obcMethod
_tfim_chi_F_obc(N, J, h) -> Float64

Total 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.

source
QAtlas._tfim_chi_imag_zz_dynamic_proxyMethod
_tfim_chi_imag_zz_dynamic_proxy(J, h, β, q, ω, N_proxy, t_max, dt) -> Float64

OBC 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.

source
QAtlas._tfim_dispersionMethod
_tfim_dispersion(k, J, h) -> Float64

Single-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).
source
QAtlas._tfim_from_legacy_modelMethod
_tfim_from_legacy_model(m::Model{:TFIM}) -> TFIM

Extract J, h from the legacy Model{:TFIM}(params) Dict and build the concrete struct.

source
QAtlas._tfim_gge_energy_densityMethod
_tfim_gge_energy_density(J, h0, hf) -> Float64

Per-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 == hfn_k ≡ 0ε_GGE = -(1/π) ∫ Λ/2 dk = ε_GS(hf).

The integral is evaluated via adaptive Gauss-Kronrod quadrature with rtol = 1e-10.

source
QAtlas._tfim_gge_magnetization_xMethod
_tfim_gge_magnetization_x(J, h0, hf) -> Float64

Per-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 == hfn_k ≡ 0 ⇒ recovers the T = 0 / β = ∞ equilibrium value (2/π) ∫ (h − J cos k)/Λ_k dk.
source
QAtlas._tfim_gge_occupationMethod
_tfim_gge_occupation(k, J, h0, hf) -> Float64

Conserved 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).

source
QAtlas._tfim_gge_two_thetaMethod
_tfim_gge_two_theta(k, J, h) -> Float64

The 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).

source
QAtlas._tfim_loschmidt_obc_log_echoMethod
_tfim_loschmidt_obc_log_echo(N, J, h0, hf, t) -> Float64

Compute 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).

OBC implementation is a per-mode-product approximation, not the exact Pfaffian

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.

source
QAtlas._tfim_pbc_log_ZMethod
_tfim_pbc_log_Z(N, J, h, β) -> Float64

log Z (eq. (1)) for the N-site PBC TFIM at inverse temperature β.

source
QAtlas._tfim_pbc_mass_gapMethod
_tfim_pbc_mass_gap(N, J, h) -> Float64

Lowest 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 is min_k Λ_k^R.

The mass gap is min(E_excited) − min(E_GS) across both sectors.

source
QAtlas._tfim_pbc_momentaMethod
_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.)
source
QAtlas._tfim_pbc_thermoMethod
_tfim_pbc_thermo(quantity, N, J, h, β) -> Float64

Compute 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β)
source
QAtlas._tfim_pfeuty_mzMethod
_tfim_pfeuty_mz(J, h) -> Float64

Pfeuty (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.

source
QAtlas._tfim_sigma_x_quench_infiniteMethod
_tfim_sigma_x_quench_infinite(J, h_0, h_f, t) -> Float64

Closed-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).

source
QAtlas._tfim_sigma_x_quench_obcMethod
_tfim_sigma_x_quench_obc(N, J, h_0, h_f, i, t) -> Float64

Exact ⟨σˣ_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)`.

source
QAtlas._tfim_thermo_infiniteMethod
_tfim_thermo_infinite(quantity, J, h, β) -> Float64

Compute 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.

source
QAtlas._tfim_thermo_obcMethod
_tfim_thermo_obc(quantity, N, J, h, β) -> Float64

Per-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.

source
QAtlas._tfim_transverse_obcMethod
_tfim_transverse_obc(quantity, N, J, h, β) -> Float64

Compute 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).

source
QAtlas._tfim_zz_structure_factor_dynamic_proxyMethod
_tfim_zz_structure_factor_dynamic_proxy(J, h, β, q, ω, N_proxy, t_max, dt) -> Float64

OBC 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).

source
QAtlas._xx_uniform_susceptibilityMethod
_xx_uniform_susceptibility(N, J, h, β) -> Float64

Exact 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.

source
QAtlas._xxz1d_energy_yang_yangMethod
_xxz1d_energy_yang_yang(J, Δ; rtol = 1e-12, atol = 1e-14) -> Float64

Ground-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.

source
QAtlas._xxz1d_hamiltonian_matrixMethod
_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.

source
QAtlas._xxz1d_partial_trace_BMethod
_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.

source
QAtlas._xxz1d_reduced_density_matrixMethod
_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.

source
QAtlas._xxz1d_thermal_density_matrixMethod
_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.

source
QAtlas._xxz1d_thermal_expectation_opMethod
_xxz1d_thermal_expectation_op(F::NamedTuple, A::AbstractMatrix) -> Float64

Compute ⟨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).

source
QAtlas._xxz1d_thermal_kernelMethod
_xxz1d_thermal_kernel(model, N, beta) -> NamedTuple

Diagonalise the OBC XXZ Hamiltonian once and return everything that downstream observables need:

  • evals :: Vector{Float64} — eigenvalues
  • evecs :: Matrix{ComplexF64} — eigenvectors (columns)
  • weights :: Vector{Float64} — Boltzmann weights wₙ, normalized so Σ wₙ = 1 (uses an emin shift)
  • H :: Matrix{ComplexF64} — the Hamiltonian (kept for callers that need it, e.g. EnergyLocal)

Callers that only need the spectrum can ignore evecs.

source
QAtlas._xxz1d_yang_yang_integrandMethod
_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.

source
QAtlas._zz_static_structure_factorMethod
_zz_static_structure_factor(N, J, h, β, q) -> Float64

S_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.

source
QAtlas._zz_uniform_susceptibilityMethod
_zz_uniform_susceptibility(N, J, h, β) -> Float64

Uniform (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 = Σᵢ σᶻᵢ`.

source
QAtlas.f_modelMethod
f_model(c::Real) -> SixVertex

F-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).
source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::CorrelationLength, ::Infinite) -> Float64

Closed-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.

source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::Energy{:per_site}, ::Infinite) -> Float64

Per-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.

source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::GroundStateEnergyDensity, ::Infinite) -> Float64

Closed-form ground-state energy density of the AKLT chain in the thermodynamic limit:

e₀ = −(2/3) J

Derived 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.

source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::MassGap, ::Infinite) -> Float64

Haldane 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.

source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::StringOrderParameter, ::Infinite) -> Float64

Kennedy–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.

source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::ZZCorrelation{:static}, ::Infinite; r::Integer) -> Float64

Exact 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.

source
QAtlas.fetchMethod
fetch(model::AKLT1D, ::ZZStructureFactor, ::Infinite; q::Real) -> Float64

Exact 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|}.

source
QAtlas.fetchMethod
fetch(::AKLT2D, ::Energy{:per_site}, ::Infinite; J=m.J) -> Float64

Ground-state energy density of the 2D AKLT model on the honeycomb lattice (Affleck-Kennedy-Lieb-Tasaki 1988):

e_0 / N = 0

The 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.
source
QAtlas.fetchMethod
fetch(::BCFT, ::ResidualEntropy, ::Infinite; state::Symbol=:fixed) -> Float64

Return the Affleck-Ludwig boundary entropy log g_a for an Ising-CFT Cardy boundary state a.

stateglog g
:fixed, :fixed_plus, :fixed_minus1/√2-log(2)/2
:identity, :vacuum1/√2-log(2)/2
:epsilon, :energy1/√2-log(2)/2
:free, :sigma10

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).

source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
fetch(::ChernSimons3D, ::PartitionFunction, ::Infinite; N=m.N, k=m.k) -> Float64

Closed-form partition function of 3-D SU(N)_k Chern-Simons on the three-sphere (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() 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.7071067811865476
  • SU(2)_2: Z = 1/2 = 0.5
  • SU(2)_3: Z = √(2/5) · sin(π/5) ≈ 0.3717480344601845
  • SU(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).
source
QAtlas.fetchMethod
fetch(::Cluster1D, ::Energy{:per_site}, ::Infinite; J=m.J) -> Float64

Ground-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.

source
QAtlas.fetchMethod
fetch(::Cluster1D, ::MassGap, ::Infinite; J=m.J) -> Float64

Spectral 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.

source
QAtlas.fetchMethod
fetch(model::Compass1D, ::MassGap, ::Infinite) -> Float64

Bulk 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).
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTuple

Mean-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).
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::CriticalTemperature, ::Infinite; J=m.J) -> Float64

Mean-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.
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::Energy{:per_site}, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Internal 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.
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::FreeEnergy, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Saddle-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.
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::SpecificHeat, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Specific 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.
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::SpontaneousMagnetization, ::Infinite;
      beta::Real, J=m.J) -> Float64

Spontaneous 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.
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::SusceptibilityZZ, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Longitudinal 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.
source
QAtlas.fetchMethod
fetch(::CurieWeissIsing, ::ThermalEntropy, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Per-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.
source
QAtlas.fetchMethod
fetch(::DMIHeisenberg1D, ::Energy{:per_site}, ::Infinite;
      J=m.J, D=m.D) -> Float64

Ground-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 to fetch(Heisenberg1D(), GroundStateEnergyDensity(), Infinite(); J=J).

  • D ≠ 0DomainError: 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).
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::ExtendedHubbard1D, ::ChargeGap, ::Infinite) -> Float64

Charge (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).
source
QAtlas.fetchMethod
fetch(::FibonacciAnyons, ::TopologicalEntanglementEntropy, ::Infinite; kwargs...) -> Float64

Topological entanglement entropy of the Fibonacci-anyon non-Abelian topological order:

γ = log 𝒟 = (1/2) log(2 + φ)  ≈  0.6429653906

where 𝒟 = √(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).
source
QAtlas.fetchMethod
fetch(::GrossNeveu, ::CentralCharge, ::Infinite; N=m.N, g=m.g) -> Int

Free-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).
source
QAtlas.fetchMethod
fetch(::GrossNeveu, ::MassGap, ::Infinite; Λ::Real, N=m.N, g=m.g) -> Float64

Dynamically 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.0432139
  • fetch(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).
source
QAtlas.fetchMethod
fetch(::Heisenberg1D, ::Energy{:total}, ::OBC; beta, J=1.0) -> Float64

Total 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.

source
QAtlas.fetchMethod
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 sites
  • J::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).
source
QAtlas.fetchMethod
fetch(::Heisenberg1D, ::GroundStateEnergyDensity, ::Infinite; J=1.0) -> Float64

BC-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.

source
QAtlas.fetchMethod
fetch(::Heisenberg1D, ::GroundStateEnergyDensity; J=1.0) -> Float64

Exact 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 J

This 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.
source
QAtlas.fetchMethod
fetch(::Heisenberg1D, ::LuttingerParameter, ::Infinite; J=1.0) -> Float64

Luttinger-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).
source
QAtlas.fetchMethod
fetch(model::Heisenberg1D, ::ZZStructureFactor, ::Infinite;
      q::Real, ω::Real, method::Symbol = :muller, J::Real = 1.0,
      kwargs...) -> Float64

Longitudinal 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 with J).
  • method::Symbol = :muller: ansatz selector; only :muller is implemented in Phase 1. Reserved future values: :caux_hagemans for 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).
source
QAtlas.fetchMethod
fetch(m::HeisenbergXYZ, ::Energy{:per_site}, ::Infinite;
      Jx=m.Jx, Jy=m.Jy, Jz=m.Jz, kwargs...) -> Float64

Ground-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).
source
QAtlas.fetchMethod
fetch(m::HeisenbergXYZ, ::LuttingerParameter, ::Infinite;
      Jx=m.Jx, Jy=m.Jy, Jz=m.Jz) -> Float64

Luttinger-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.
source
QAtlas.fetchMethod
fetch(model::Hubbard1D, ::ChargeGap, ::Infinite) -> Float64

Lieb–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).
source
QAtlas.fetchMethod
fetch(model::Hubbard1D, ::GroundStateEnergyDensity, ::Infinite) -> Float64

Lieb–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).
source
QAtlas.fetchMethod
fetch(::Hubbard1D, ::LuttingerParameter, ::Infinite; t=m.t, U=m.U, μ=m.μ) -> Float64

Luttinger-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.
source
QAtlas.fetchMethod
fetch(model::Hubbard1D, ::SpinGap, ::Infinite) -> Float64

Spin 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).
source
QAtlas.fetchMethod
fetch(::Ising2D, ::CriticalExponents) -> NamedTuple

Backward-compatible alias for fetch(Universality(:Ising), CriticalExponents(); d=2).

source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::CorrelationLength, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Spin-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).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::CriticalTemperature, ::Infinite; kwargs...) -> Float64

Critical 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).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::Energy{:per_site}, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Internal energy per site at zero field (Ising 1925):

u(β, h=0) = ⟨H⟩/N = -J tanh(β J).

References

  • E. Ising, Z. Phys. 31, 253 (1925).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::FreeEnergy, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Helmholtz 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).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::SpecificHeat, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Specific heat per site at zero field (Ising 1925):

c_v(β, h=0) = (β J)² sech²(β J).

References

  • E. Ising, Z. Phys. 31, 253 (1925).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::SpontaneousMagnetization, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Spontaneous 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).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::SusceptibilityZZ, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Zero-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).
source
QAtlas.fetchMethod
fetch(::IsingChain1D, ::ThermalEntropy, ::Infinite;
      beta::Real, J=m.J, h=m.h) -> Float64

Entropy 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).
source
QAtlas.fetchMethod
fetch(::IsingSquare, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTuple

Onsager 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.
source
QAtlas.fetchMethod
fetch(::IsingSquare, ::CriticalTemperature; J=1.0) -> Float64

Exact critical temperature of the 2D Ising model on the square lattice:

T_c = 2J / ln(1 + √2) ≈ 2.269 J

Equivalently, 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).
source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::Energy{:per_site}, ::Infinite; beta, J=m.J) -> Float64

Per-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.

source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::Energy{:per_site}, ::PBC; beta, Lx, Ly, J) -> Float64

Per-site thermal energy ε(β) = -∂(log Z)/∂β / (Lx · Ly) for the finite torus, via ForwardDiff over the transfer-matrix log Z.

source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::FreeEnergy, ::Infinite; beta, J=m.J) -> Float64

Per-site Helmholtz free energy f(β) = -β⁻¹ · log Z / N of the classical 2D Ising model on the infinite square lattice (Onsager 1944).

source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::FreeEnergy, ::PBC; beta, Lx=m.Lx, Ly=m.Ly, J=m.J) -> Float64

Per-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.

source
QAtlas.fetchMethod
fetch(::IsingSquare, ::PartitionFunction; Lx, Ly, β, J=1.0) -> Real

Exact 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).
source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::SpecificHeat, ::Infinite; beta, J=m.J) -> Float64

Per-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.

source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::SpecificHeat, ::PBC; beta, Lx, Ly, J) -> Float64

Per-site specific heat c_v(β) = β² · Var(H) / (Lx · Ly) for the finite torus, via ForwardDiff (twice) on log Z.

source
QAtlas.fetchMethod
fetch(::IsingSquare, ::SpontaneousMagnetization; β, J=1.0) -> Float64

Exact 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_c

The 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).
source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::ThermalEntropy, ::Infinite; beta, J=m.J) -> Float64

Per-site Gibbs entropy s(β) = β · (ε − f) from the Onsager free-energy and energy paths.

source
QAtlas.fetchMethod
fetch(m::IsingSquare, ::ThermalEntropy, ::PBC; beta, Lx, Ly, J) -> Float64

Per-site Gibbs entropy s(β) = β · (ε − f) for the finite torus.

source
QAtlas.fetchMethod
fetch(::IsingTriangular, ::CriticalExponents, ::Infinite; kwargs...) -> NamedTuple

2D 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.
source
QAtlas.fetchMethod
fetch(::IsingTriangular, ::CriticalTemperature, ::Infinite; J=m.J) -> Float64

Exact 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 = 0T_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).
source
QAtlas.fetchMethod
fetch(::IsingTriangular, ::ResidualEntropy, ::Infinite; J=m.J) -> Float64

Zero-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 form

    S/(N k_B) = (2/π) ∫₀^{π/3} ln(2 cos θ) dθ ≈ 0.32306594722…

    The integral is evaluated by QuadGK.quadgk to ~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, so S_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.
source
QAtlas.fetchMethod
fetch(::J1J2Heisenberg1D, ::Energy{:per_site}, ::Infinite;
      J1=m.J1, J2=m.J2) -> Float64

Ground-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 to fetch(Heisenberg1D(), GroundStateEnergyDensity(), Infinite(); J=J1).

  • j = 1/2 → Majumdar-Ghosh dimer GS: E/N = −3 J₁ / 8. Delegates to fetch(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).
source
QAtlas.fetchMethod
fetch(::KagomeHeisenbergAFM, ::Energy{:per_site}, ::Infinite; J=m.J)
    -> Float64

Ground-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).
source
QAtlas.fetchMethod
fetch(::KagomeHeisenbergAFM, ::MassGap, ::Infinite; J=m.J) -> Float64

Spin 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).
source
QAtlas.fetchMethod
fetch(::KagomeHeisenbergAFM, ::TopologicalEntanglementEntropy, ::Infinite; kwargs...)
    -> Float64

Topological 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).
source
QAtlas.fetchMethod
fetch(model::Kitaev1D, ::CorrelationLength, ::Infinite) -> Float64

T = 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).

source
QAtlas.fetchMethod
fetch(model::Kitaev1D, ::EdgeModeEnergy, bc::OBC; N::Int) -> Float64

Energy 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.

source
QAtlas.fetchMethod
fetch(model::Kitaev1D, ::Energy{:per_site}, ::Infinite) -> Float64

Ground-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.

source
QAtlas.fetchMethod
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 - μ|).

source
QAtlas.fetchMethod
fetch(model::Kitaev1D, ::MassGap, ::Infinite) -> Float64

Bulk 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 at k = 0 or k = π, giving Δ_gap = ||μ| - 2|t||.
  • |μ| < 2|t|: stationary point at cos k* = -μ t / (2(t² - Δ²)) when |t| ≠ |Δ| and |cos k*| ≤ 1; otherwise the minimum is at k = 0 or k = π.

Δ = 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).

source
QAtlas.fetchMethod
fetch(model::Kitaev1D, ::MassGap, bc::OBC; N::Int) -> Float64

Single-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 → ∞.

source
QAtlas.fetchMethod
fetch(model::Kitaev1D, ::TopologicalInvariant, ::Infinite) -> Int

Pfaffian 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.

source
QAtlas.fetchMethod
fetch(m::KitaevHeisenberg, ::MassGap, ::Infinite;
      K=m.K, J=m.J, Γ=m.Γ, kwargs...) -> Float64

Single-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).
source
QAtlas.fetchMethod
fetch(model::KitaevHoneycomb, ::Energy{:per_site}, bc::PBC; Lx, Ly) -> Float64

Per-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%).

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::KitaevHoneycomb, ::MassGap, ::Infinite) -> Float64

Single-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| )`.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::LiouvilleCFT, ::CentralCharge, ::Infinite; b=m.b) -> Float64

Central 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 = 1Q = 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).
source
QAtlas.fetchMethod
fetch(::LiouvilleCFT, ::ConformalWeights, ::Infinite; α::Real, b=m.b) -> Float64

Conformal (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 operator V_b; conformal spin 1)
  • α = 1/bΔ = (1/b)(Q − 1/b) = 1 (dual screening V_{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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
fetch(m::LongRangeIsing1D, ::MassGap, ::Infinite;
      J=m.J, h=m.h, α=m.α, kwargs...) -> Float64

Single-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.

source
QAtlas.fetchMethod
fetch(m::LongRangeXY1D, ::MassGap, ::Infinite;
      J=m.J, h=m.h, α=m.α, kwargs...) -> Float64

Mass 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).
source
QAtlas.fetchMethod
fetch(::MajumdarGhosh, ::GroundStateEnergyDensity, ::Infinite; kwargs...) -> Float64

Exact 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.375
source
QAtlas.fetchMethod
fetch(::MajumdarGhosh, ::GroundStateEnergyDensity, ::PBC; N::Int, kwargs...) -> Float64

Ground-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).
source
QAtlas.fetchMethod
fetch(::MajumdarGhosh, ::MassGap, ::Infinite; method::Symbol = :numerical) -> Float64

Spectral 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 bound J/4 = 0.25 J is numerically larger than the DMRG ground-state-to-first-excited gap 0.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_bound still 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.
source
QAtlas.fetchMethod
fetch(::MajumdarGhosh, ::SpinGap, ::Infinite; J=m.J) -> Float64

Ground-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.
source
QAtlas.fetchMethod
fetch(::MeanField, ::CriticalExponents) -> NamedTuple

Mean-field critical exponents (exact, Rational{Int}): α=0, β=1/2, γ=1, δ=3, ν=1/2, η=0.

Satisfies Rushbrooke, Widom, and Fisher scaling relations exactly.

source
QAtlas.fetchMethod
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}.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.
source
QAtlas.fetchMethod
fetch(m::MixedFieldIsing1D, ::MassGap, ::Infinite; J, h_x, h_z) -> Float64

Mass gap of the infinite mixed-field Ising chain.

  • At h_z = 0 (default): delegate to TFIM(; J=J, h=h_x) and return the closed-form Δ = 2|h_x − J| (Pfeuty 1970).
  • At h_z ≠ 0: throw DomainError — 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.

source
QAtlas.fetchMethod
fetch(::PXP1D, ::Energy{:per_site}, ::Infinite; Ω=m.Ω) -> Float64

Thermodynamic-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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
fetch(::PpIp2DSC, ::TopologicalInvariant, ::Infinite; kwargs...) -> Int

First 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).
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Honeycomb, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64

max(λᵢ) for the Lx × Ly honeycomb PBC tight-binding spectrum. Forwards through TightBindingSpectrum.

source
QAtlas.fetchMethod
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 direction
  • Ly::Int: number of unit cells in the second lattice direction
  • t::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).
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Kagome, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64

max(λᵢ) 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.

source
QAtlas.fetchMethod
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 direction
  • Ly::Int: number of unit cells in the second lattice direction
  • t::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).
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Lieb, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64

max(λᵢ) 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.

source
QAtlas.fetchMethod
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} = 0

for 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 direction
  • Ly::Int: number of unit cells in the second lattice direction
  • t::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).
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Triangular, ::TightBindingMaxEnergy, ::Infinite; Lx, Ly, t=1.0) -> Float64

max(λᵢ) 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.

source
QAtlas.fetchMethod
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 direction
  • Ly::Int: number of unit cells in the second lattice direction
  • t::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).
source
QAtlas.fetchMethod
fetch(::RFIM, ::CriticalTemperature, ::Infinite; d::Int, J=m.J, Δ=m.Δ)
    -> Float64

Critical 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).
source
QAtlas.fetchMethod
fetch(::RandomBondIsing2D, ::CentralCharge, ::Infinite; p=m.p) -> Rational

Central 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).
source
QAtlas.fetchMethod
fetch(m::S1AnisotropicD1D, ::Energy{:per_site}, ::Infinite;
      J = m.J, D = m.D, kwargs...) -> Float64

Ground-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).
source
QAtlas.fetchMethod
fetch(m::S1AnisotropicD1D, ::MassGap, ::Infinite;
      J = m.J, D = m.D, kwargs...) -> Float64

Bulk 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 J separating Haldane from the large-D phase (Chen-Roncaglia 2008), and
  • an Ising (c = 1/2) transition near D ≈ −0.31 J separating 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).
source
QAtlas.fetchMethod
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.
source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::Energy{:per_site}, ::Infinite) -> Float64

Ground-state energy per site of the spin-1 antiferromagnetic Heisenberg chain (Haldane chain) in the thermodynamic limit:

e₀ ≈ -1.40148403897 J

Numerical 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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::Energy{:total}, ::OBC; beta) -> Float64

Total 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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::FreeEnergy, ::OBC; beta) -> Float64

Per-site Helmholtz free energy f(β) = -log Z / (Nβ) for the spin-1 OBC chain.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::MagnetizationX, ::OBC; beta) -> Float64

Per-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).

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::MagnetizationY, ::OBC; beta) -> Float64

Per-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).

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::MagnetizationZ, ::OBC; beta) -> Float64

Per-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).

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::MassGap, ::Infinite) -> Float64

Bulk 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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::MassGap, ::OBC) -> Float64

Single-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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, q::RenyiEntropy, ::OBC;
      ℓ::Int, beta::Real = Inf) -> Float64

Rényi entropy S_α = log Tr ρ_A^α / (1 - α) for the OBC spin-1 Heisenberg chain. See VonNeumannEntropy for the partial-trace convention.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::SpecificHeat, ::OBC; beta) -> Float64

Per-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).

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::SusceptibilityXX, ::OBC; beta) -> Float64

Per-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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::SusceptibilityYY, ::OBC; beta) -> Float64

Per-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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::SusceptibilityZZ, ::OBC; beta) -> Float64

Per-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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::ThermalEntropy, ::OBC; beta) -> Float64

Per-site Gibbs entropy s(β) = β · (ε - f) for the spin-1 OBC chain.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::VonNeumannEntropy{:equilibrium}, ::OBC;
      ℓ::Int, beta::Real = Inf) -> Float64

Von 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.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::XXCorrelation{:connected}, ::OBC;
      beta, i::Int, j::Int) -> Float64

Connected (cumulant) correlator ⟨S^x_i S^x_j⟩ - ⟨S^x_i⟩·⟨S^x_j⟩ for the spin-1 OBC Heisenberg chain.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::XXCorrelation{:static}, ::OBC;
      beta, i::Int, j::Int) -> Float64

Static 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^α)²⟩_β.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::YYCorrelation{:connected}, ::OBC;
      beta, i::Int, j::Int) -> Float64

Connected (cumulant) correlator ⟨S^y_i S^y_j⟩ - ⟨S^y_i⟩·⟨S^y_j⟩ for the spin-1 OBC Heisenberg chain.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::YYCorrelation{:static}, ::OBC;
      beta, i::Int, j::Int) -> Float64

Static 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^α)²⟩_β.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::ZZCorrelation{:connected}, ::OBC;
      beta, i::Int, j::Int) -> Float64

Connected (cumulant) correlator ⟨S^z_i S^z_j⟩ - ⟨S^z_i⟩·⟨S^z_j⟩ for the spin-1 OBC Heisenberg chain.

source
QAtlas.fetchMethod
fetch(model::S1Heisenberg1D, ::ZZCorrelation{:static}, ::OBC;
      beta, i::Int, j::Int) -> Float64

Static 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^α)²⟩_β.

source
QAtlas.fetchMethod
fetch(model::S1XXZ1D, ::Energy{:per_site}, ::Infinite; J, Δ, kwargs...) -> Float64

Ground-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.

source
QAtlas.fetchMethod
fetch(model::S1XXZ1D, ::MassGap, ::Infinite; J, Δ, kwargs...) -> Float64

Bulk 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.

source
QAtlas.fetchMethod
fetch(::SLEkappa, ::CentralCharge, ::Infinite; κ=m.κ) -> Float64

Central 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).
source
QAtlas.fetchMethod
fetch(::SLEkappa, ::FractalDimension, ::Infinite; κ=m.κ) -> Float64

Hausdorff 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).
source
QAtlas.fetchMethod
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 raises DomainError, 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).
source
QAtlas.fetchMethod
fetch(::SchwingerModel, ::ChiralCondensate, ::Infinite; e=model.e) -> Float64

Anomaly-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).
source
QAtlas.fetchMethod
fetch(::SchwingerModel, ::MassGap, ::Infinite; e=m.e, m=m.m) -> Float64

Mass 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).
source
QAtlas.fetchMethod
fetch(::ShastrySutherland, ::Energy{:per_site}, ::Infinite;
      J=m.J, Jp=m.Jp) -> Float64

Ground-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).
source
QAtlas.fetchMethod
fetch(::SherringtonKirkpatrick, ::CriticalTemperature, ::Infinite; J=m.J)
    -> Float64

Spin-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).
source
QAtlas.fetchMethod
fetch(::SherringtonKirkpatrick, ::Energy{:per_site}, ::Infinite; J=m.J)
    -> Float64

Zero-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).
source
QAtlas.fetchMethod
fetch(::SixVertex, ::FreeEnergy, ::Infinite; beta::Real = Inf, kwargs...) -> Float64

Free-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.
source
QAtlas.fetchMethod
fetch(::SixVertex, ::ResidualEntropy, ::Infinite; kwargs...) -> Float64

Zero-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.
source
QAtlas.fetchMethod
fetch(::SpinIce, ::ResidualEntropy, ::Infinite; kwargs...) -> Float64

Zero-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).
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::TASEP, ::SteadyStateCurrent, ::Infinite; p=m.p, ρ=m.ρ) -> Float64

Mean-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/2j_max = p/4 (maximal current, half-filling)
  • ρ = 0 or ρ = 1j = 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).
source
QAtlas.fetchMethod
fetch(model::TFIM, ::CentralCharge, ::Infinite) -> Float64

Central charge of the TFIM:

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

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

Example

julia> QAtlas.fetch(TFIM(), CentralCharge(), Infinite())
0.5
source
QAtlas.fetchMethod
fetch(model::TFIM, ::CorrelationLength, ::Infinite; kwargs...) -> Float64

T = 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).

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

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

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

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

References

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

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

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

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

source
QAtlas.fetchMethod
fetch(model::TFIM, ::Energy{:per_site}, ::Infinite; beta, betas) -> Float64 or Vector{Float64}

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

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

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

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

Uses adaptive Gauss-Kronrod quadrature (QuadGK).

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

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

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

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

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

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

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

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

Closed-form values (h ≠ J):

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

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

References: Gu, Int. J. Mod. Phys. B 24, 4371 (2010); Damski, PRB 87, 165101 (2013).

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

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

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

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

per_site=true returns χ_F / N.

References: Gu, Int. J. Mod. Phys. B 24, 4371 (2010); Damski, PRB 87, 165101 (2013).

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

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

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

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

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

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

The closed form

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

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

Required kwarg

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

Example

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

References

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

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

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

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

Required kwarg

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

References

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

source
QAtlas.fetchMethod
fetch(model_f::TFIM, ::LoschmidtEcho{:amplitude}, bc::OBC;
      initial::TFIM, t::Real, kwargs...) -> Float64

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

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

References: Heyl-Polkovnikov-Kehrein, PRL 110, 135704 (2013); Heyl, Rep. Prog. Phys. 81, 054001 (2018).

source
QAtlas.fetchMethod
fetch(model_f::TFIM, ::LoschmidtEcho{:rate}, ::Infinite;
      initial::TFIM, t::Real, atol::Real=1e-10, rtol::Real=1e-8, kwargs...)
    -> Float64

Loschmidt rate function in the thermodynamic limit:

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

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

References: Heyl-Polkovnikov-Kehrein, PRL 110, 135704 (2013); Heyl, Rep. Prog. Phys. 81, 054001 (2018).

source
QAtlas.fetchMethod
fetch(model_f::TFIM, ::LoschmidtEcho{:rate}, bc::OBC;
      initial::TFIM, t::Real, kwargs...) -> Float64

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

source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model_f::TFIM, ::MagnetizationXLocal{:quench}, ::Infinite;
      initial::TFIM, t::Real, kwargs...) -> Float64

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

source
QAtlas.fetchMethod
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.

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

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

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

Closed form:

Δ = 2 |h − J|.

Canonical values:

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

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

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

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

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

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

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

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

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

The non-universal S_0 offset is dropped.

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

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

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

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

Cost is O(ℓ³) from the Hermitian eigendecomposition of i Σ_A, identical to the von Neumann path.

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

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

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

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

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

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

source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
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.

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

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

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

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

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

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

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

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

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

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

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

FDT cross-check is not an independent physics anchor

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

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

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

χ_zz(β) = (β/N) Σ_{i,j} ⟨σᶻ_i σᶻ_j⟩_β.
source
QAtlas.fetchMethod
fetch(model::TFIM, ::ThermalEntropy, ::Infinite; beta::Real, kwargs...)

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

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

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

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

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

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

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

source
QAtlas.fetchMethod
fetch(model::TFIM, ::VonNeumannEntropy{:equilibrium}, bc::OBC;
      ℓ::Int, beta::Float64 = Inf, kwargs...) -> Float64

Von 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 from OBC(N) or legacy kwargs[:N]).
  • must satisfy 1 ≤ ℓ ≤ N - 1.
  • Cost is O(ℓ³); for typical N = 200, ℓ = 100 this runs in a few milliseconds, whereas the full-ED SVD baseline scales as O(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.

source
QAtlas.fetchMethod
fetch(model_f::TFIM, ::VonNeumannEntropy{:quench}, bc::OBC;
      initial::TFIM, ℓ::Int, t::Real, kwargs...) -> Float64

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

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

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

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

Required keyword arguments

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

N is read from OBC(N) (or legacy kwargs[:N]). At t = 0 the result coincides with the equilibrium VonNeumannEntropy{: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).

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

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

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

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

Unlike 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⟩_β.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

source
QAtlas.fetchMethod
fetch(model::TFIM, ::YYCorrelation{:connected}, bc::OBC;
      beta=Inf, i, j) -> Float64

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

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

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

source
QAtlas.fetchMethod
fetch(model::TFIM, ::YYCorrelation{:static}, bc::OBC;
      beta=Inf, i, j) -> Float64

Static 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).

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

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

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

Static σʸ structure factor for the OBC TFIM. Companion of XXStructureFactor.

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

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

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

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

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

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

source
QAtlas.fetchMethod
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.

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

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

source
QAtlas.fetchMethod
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...)
    -> Float64

Longitudinal structure factor S_zz(q, [ω,] β) of the infinite TFIM. This router dispatches on ω:

  • ω === nothing (default) → static S_zz(q, β), computed by the large-N OBC proxy _zz_static_structure_factor (default N_proxy = 80; same path as defined in TFIM_zaxis.jl).

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

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

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

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

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

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

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

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

source
QAtlas.fetchMethod
fetch(::TTbar, ::CentralCharge, ::Infinite; c=m.c, λ=m.λ) -> Float64

UV 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).
source
QAtlas.fetchMethod
fetch(m::TightBinding1D, ::Energy{:per_site}, ::Infinite;
      t=m.t, μ=m.μ, kwargs...) -> Float64

Ground-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).

source
QAtlas.fetchMethod
fetch(m::TightBinding1D, ::FermiVelocity, ::Infinite;
      t=m.t, μ=m.μ, kwargs...) -> Float64

Fermi 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).

source
QAtlas.fetchMethod
fetch(m::TightBinding1D, ::FreeEnergy, ::Infinite;
      beta::Real, t=m.t, μ=m.μ, kwargs...) -> Float64

Per-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.
source
QAtlas.fetchMethod
fetch(m::TightBinding1D, ::MassGap, ::Infinite;
      t=m.t, μ=m.μ, kwargs...) -> Float64

Single-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.

source
QAtlas.fetchMethod
fetch(m::TightBinding1D, ::SpecificHeat, ::Infinite;
      beta::Real, t=m.t, μ=m.μ, kwargs...) -> Float64

Per-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.
source
QAtlas.fetchMethod
fetch(m::TightBinding1D, ::ThermalEntropy, ::Infinite;
      beta::Real, t=m.t, μ=m.μ, kwargs...) -> Float64

Per-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.
source
QAtlas.fetchMethod
fetch(m::TightBindingV1D, ::Energy{:per_site}, ::Infinite;
      t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64

Ground-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.
source
QAtlas.fetchMethod
fetch(m::TightBindingV1D, ::FermiVelocity, ::Infinite;
      t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64

Fermi 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).

source
QAtlas.fetchMethod
fetch(m::TightBindingV1D, ::FreeEnergy, ::Infinite;
      beta::Real, t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64

Per-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).

source
QAtlas.fetchMethod
fetch(m::TightBindingV1D, ::MassGap, ::Infinite;
      t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64

Single-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).

source
QAtlas.fetchMethod
fetch(m::TightBindingV1D, ::SpecificHeat, ::Infinite;
      beta::Real, t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64

Per-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).

source
QAtlas.fetchMethod
fetch(m::TightBindingV1D, ::ThermalEntropy, ::Infinite;
      beta::Real, t=m.t, V=m.V, μ=m.μ, kwargs...) -> Float64

Per-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).

source
QAtlas.fetchMethod
fetch(::TodaLattice, ::MassGap, ::Infinite; kwargs...) -> Float64

Small-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).
source
QAtlas.fetchMethod
fetch(::ToricCode, ::AnyonStatistics; type::Symbol) -> NamedTuple

Topological data of one of the four toric-code anyons or the e/m mutual braiding. The returned NamedTuple shape depends on type:

typeNamedTuple 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.

source
QAtlas.fetchMethod
fetch(::ToricCode, ::GroundStateDegeneracy, ::PBC; genus::Int = 1) -> Int

Ground-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.

source
QAtlas.fetchMethod
fetch(::ToricCode, ::GroundStateEnergyDensity, ::Infinite) -> Float64

Ground-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.

source
QAtlas.fetchMethod
fetch(::ToricCode, ::MassGap, ::Infinite) -> Float64

Single-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.

source
QAtlas.fetchMethod
fetch(::ToricCode, ::TopologicalEntanglementEntropy, ::Infinite) -> Float64

Topological 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.6931471805599453
source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
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):

fieldlit. (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
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
fetch(::Universality{:Heisenberg}, ::CriticalExponents; d) -> NamedTuple

Critical 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.
source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
fetch(::Universality{:Ising}, ::CriticalExponents; d) -> NamedTuple

Critical 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).
source
QAtlas.fetchMethod
fetch(::Universality{:KPZ}, ::GrowthExponents; d) -> NamedTuple

Scaling 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 _err companions: β_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 _err companions: β_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.

source
QAtlas.fetchMethod
fetch(::Universality{:Percolation}, ::CriticalExponents; d) -> NamedTuple

Critical 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.
source
QAtlas.fetchMethod
fetch(::Universality{:Poisson}, ::MeanRatio) -> Float64

Mean 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.3862944

Atas-Bogomolny-Giraud-Roux, Phys. Rev. Lett. 110, 084101 (2013), Eq. (2).

source
QAtlas.fetchMethod
fetch(::Universality{:Poisson}, ::WignerSurmise; s::Real) -> Float64

Level-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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Universality{:Potts3}, ::CriticalExponents; d=2) -> NamedTuple

Exact critical exponents of the 3-state Potts model in d=2 (S₃ symmetry).

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Universality{:Potts4}, ::CriticalExponents; d=2) -> NamedTuple

Exact 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.

source
QAtlas.fetchMethod
fetch(::Universality{:RMT}, ::MeanRatio; β::Int) -> Float64

Mean 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⟩
10.5307
20.5996
40.6744
source
QAtlas.fetchMethod
fetch(::Universality{:RMT}, ::SpectralFormFactor; ensemble::Symbol=:GUE, τ::Real=Inf) -> Float64

Disorder-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

  • DomainError if ensemble ≠ :GUE (GOE / GSE Phase 2).
  • DomainError if τ < 2π (ramp regime, Phase 2).
source
QAtlas.fetchMethod
fetch(::Universality{:RMT}, ::TracyWidom; β::Int, x::Real) -> Float64

Tracy-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.8319
  • F_2(0) ≈ 0.9694
  • F_4(0) ≈ 0.99966

A direct Painlevé-II integrator (DifferentialEquations.jl based) is deferred to Phase 2; see issue #151.

source
QAtlas.fetchMethod
fetch(::Universality{:RMT}, ::WignerSurmise; β::Int, s::Real) -> Float64

Wigner 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) GOE
  • P_2(s) = (32 s² / π²) exp(-4 s² / π) GUE
  • P_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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(::Universality{:XY}, ::CriticalExponents; d) -> NamedTuple

Critical 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.
source
QAtlas.fetchMethod
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}.

source
QAtlas.fetchMethod
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//2
source
QAtlas.fetchMethod
fetch(::XCube, ::GroundStateDegeneracy, ::PBC;
      Lx::Int, Ly::Int, Lz::Int) -> BigInt

Subextensive 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).
source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::CentralCharge, ::Infinite) -> Float64

Central charge of the XXZ chain:

  • -1 < Δ < 1c = 1 (Luttinger liquid)
  • otherwise → NaN (non-critical)
source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::Energy{:per_site}, ::Infinite; [beta]) -> Float64

Per-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 returns NaN otherwise (general-Δ Bethe ansatz is a follow-up).

  • With beta: thermal energy density ⟨H⟩_β / N. At Δ = 0 evaluated by Gauss-Kronrod quadrature of the free-fermion integral

    e(β) = -(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 and NaN returned.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::Energy{:total}, ::OBC; beta) -> Float64

Total 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).

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::FreeEnergy, ::OBC; beta) -> Float64

Per-site Helmholtz free energy f(β) = -log Z / (Nβ) of the spin-½ OBC XXZ chain at finite N ≤ 12, computed by dense ED.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::GroundStateEnergyDensity, ::Infinite) -> Float64

Alias for fetch(::XXZ1D, ::Energy, ::Infinite) kept so that the GroundStateEnergyDensity quantity — already exported by Heisenberg.jl — works uniformly across 1D Bethe-ansatz chains.

source
QAtlas.fetchMethod
fetch(model_f::XXZ1D, ::LoschmidtEcho{:rate}, ::Infinite;
      initial::XXZ1D, t::Real) -> Float64

Loschmidt 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 (otherwise DomainError); 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.0

References

  • 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.
source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::LuttingerParameter, ::Infinite) -> Float64

Luttinger-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 → ∞
source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::LuttingerVelocity, ::Infinite) -> Float64
fetch(model::XXZ1D, ::SpinWaveVelocity,   ::Infinite) -> Float64

Sound 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).

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::MagnetizationX, ::OBC; beta) -> Float64

Per-site bulk magnetisation ⟨Σᵢ σˣᵢ⟩_β / N of the OBC XXZ chain.

source
QAtlas.fetchMethod
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ᶻ.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::MagnetizationY, ::OBC; beta) -> Float64

Per-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.

source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::MagnetizationZ, ::OBC; beta) -> Float64

Per-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.

source
QAtlas.fetchMethod
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).

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::MassGap, ::Infinite) -> Float64

Mass gap of the spin-½ XXZ chain in the thermodynamic limit:

  • Critical regime -1 < Δ ≤ 1: gapless Luttinger liquid, returns 0.0.
  • Gapped regimes (Δ > 1 antiferromagnetic Ising-like, Δ < -1 ferromagnetic Ising-like): closed-form gap is non-trivial (Bethe ansatz integrals), not yet implemented; returns NaN with a warning.
source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::MassGap, ::OBC) -> Float64

Energy gap E₁ - E₀ between the two lowest eigenvalues of the OBC XXZ Hamiltonian at finite N ≤ 12.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, q::RenyiEntropy, ::OBC; ℓ, beta=Inf) -> Float64

Ré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.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::SpecificHeat, ::OBC; beta) -> Float64

Per-site heat capacity c(β) = β² · Var(H) / N, computed exactly from the energy variance in the eigenbasis (no numerical differentiation).

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::SusceptibilityXX, ::OBC; beta) -> Float64

Static transverse susceptibility per site χ_xx(β) = (β/N) · (⟨M_x²⟩ - ⟨M_x⟩²), with M_x = Σᵢ σˣᵢ.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::SusceptibilityYY, ::OBC; beta) -> Float64

Static 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.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::SusceptibilityZZ, ::OBC; beta) -> Float64

Static longitudinal susceptibility per site, χ_zz(β) = (β/N) Var(M_z). At Δ = 1 (Heisenberg) this equals χ_xx = χ_yy by SU(2) symmetry.

source
QAtlas.fetchMethod
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.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::ThermalEntropy, ::OBC; beta) -> Float64

Per-site Gibbs entropy s(β) = β · (ε - f) of the OBC XXZ chain.

source
QAtlas.fetchMethod
fetch(model::XXZ1D, ::VonNeumannEntropy, ::OBC; ℓ, beta=Inf) -> Float64

Von 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.

source
QAtlas.fetchMethod
fetch(m::XYh1D, ::Energy{:per_site}, ::Infinite;
      Jx=m.Jx, Jy=m.Jy, h=m.h, kwargs...) -> Float64

Ground-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 = −h

  • h ≤ −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).
source
QAtlas.fetchMethod
fetch(m::XYh1D, ::MassGap, ::Infinite;
      Jx=m.Jx, Jy=m.Jy, h=m.h, kwargs...) -> Float64

Single-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).
source
QAtlas.fetchMethod
fetch(::YangLee, ::CentralCharge, ::Infinite; kwargs...) -> Rational{Int}

Central charge of the Yang-Lee CFT (non-unitary M(5, 2)):

c = -22/5

delegated 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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
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).
source
QAtlas.fetchMethod
fetch(::Universality{C}, ::RenyiEntropy, ::Infinite; ℓ::Real, kwargs...)
    -> Float64

Calabrese–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.

source
QAtlas.fetchMethod
fetch(::Universality{C}, ::RenyiEntropy, ::OBC; ℓ::Real, L::Real, kwargs...)
    -> Float64

Calabrese–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).

source
QAtlas.fetchMethod
fetch(::Universality{C}, ::RenyiEntropy, ::PBC; ℓ::Real, L::Real, kwargs...)
    -> Float64

Calabrese–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).

source
QAtlas.fetchMethod
fetch(::Universality{C}, ::VonNeumannEntropy, ::Infinite; ℓ::Real, kwargs...)
    -> Float64

Calabrese–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).

source
QAtlas.fetchMethod
fetch(::Universality{C}, ::VonNeumannEntropy, ::OBC; ℓ::Real, L::Real, kwargs...)
    -> Float64

Calabrese–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).

source
QAtlas.fetchMethod
fetch(::Universality{C}, ::VonNeumannEntropy, ::PBC; ℓ::Real, L::Real, kwargs...)
    -> Float64

Calabrese–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:

  • ℓ → 0 or ℓ → 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).

source
QAtlas.get_e8_mass_ratiosMethod
E8_MASS_RATIOS

Analytical 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.
source
QAtlas.has_native_fetchMethod
has_native_fetch(impl::Implementation) -> Bool

true 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.

source
QAtlas.heisenberg_spinon_dispersionMethod
heisenberg_spinon_dispersion(model::Heisenberg1D, k::Real; J::Real = 1.0)
    -> Float64

Single-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).
source
QAtlas.heisenberg_two_spinon_lower_edgeMethod
heisenberg_two_spinon_lower_edge(model::Heisenberg1D, q::Real;
                                 J::Real = 1.0) -> Float64

Lower 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).
source
QAtlas.heisenberg_two_spinon_upper_edgeMethod
heisenberg_two_spinon_upper_edge(model::Heisenberg1D, q::Real;
                                 J::Real = 1.0) -> Float64

Upper 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).
source
QAtlas.implementation_statusMethod
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.

source
QAtlas.kdp_modelMethod
kdp_model(a::Real) -> SixVertex

KDP 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).
source
QAtlas.native_energy_granularityFunction
native_energy_granularity(model, bc) -> :total | :per_site

Trait 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_site

A 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.

source
QAtlas.native_energy_granularityMethod
native_energy_granularity(::S1Heisenberg1D, ::Infinite) -> :per_site

The 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.

source
QAtlas.pfaffianMethod
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³).

source
QAtlas.square_iceMethod
square_ice() -> SixVertex

Square-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).
source
QAtlas.tfim_quasiparticle_dispersionMethod
tfim_quasiparticle_dispersion(model::TFIM, k::Real) -> Float64

Single-quasiparticle Bogoliubov dispersion of the infinite TFIM,

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

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

Special values:

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

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

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

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

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

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

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

source
QAtlas.@registerMacro
@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!.

source