Classical Six-Vertex (Ice-Rule) Model on the Square Lattice
Overview
The six-vertex model is the canonical exactly-solvable lattice model of constrained statistical mechanics. Each edge of the square lattice carries an arrow; at every vertex the ice rule (Pauling 1935; Lieb 1967a) demands two incoming and two outgoing arrows, leaving exactly six allowed local configurations. Lieb's three 1967 papers solved each of the named sub-models in closed form, and Sutherland 1967 followed up with the analytic continuation across the full disordered phase.
Each of the six vertex configurations is weighted in pairs:
\[\omega_1 = \omega_2 = a, \qquad \omega_3 = \omega_4 = b, \qquad \omega_5 = \omega_6 = c.\]
All thermodynamic information at fixed temperature is encoded in the single dimensionless invariant
\[\Delta = \frac{a^2 + b^2 - c^2}{2 a b}\]
which divides parameter space into three exactly solvable phases:
| Phase | Condition | Status in this version |
|---|---|---|
| Ferroelectric (FE, frozen) | $\Delta > 1$ | Closed form (Lieb 1967c) |
| Disordered | `` | \Delta |
| Antiferroelectric (AFE) | $\Delta < -1$ | Lieb 1967b elliptic form — deferred to phase 3 |
The square-ice point $a = b = c = 1$ (so $\Delta = 1/2$) sits inside the disordered phase and admits the celebrated Lieb 1967a residual entropy.
Square-Ice Residual Entropy (Lieb 1967a)
Statement
At the symmetric point $a = b = c = 1$ the zero-temperature configurational entropy per vertex is the closed form
\[\frac{S}{N} = \frac{3}{2} \log\frac{4}{3} \approx 0.4315231086776713\ldots\]
Physical Context
This is the per-vertex residual entropy of two-dimensional square ice — the ground-state ensemble of the ice-rule manifold without any energy bias. The number of admissible configurations grows exponentially with $N$ (the lattice volume) at exactly this rate. Lieb's derivation uses a Bethe-ansatz solution of the transfer matrix in the special unit-weight limit; the analogous Pauling 1935 mean-field estimate $S/N = \log(3/2)$ is not tight.
API
m = QAtlas.square_ice()
QAtlas.fetch(m, ResidualEntropy(), Infinite()) # → 0.4315231086776713The implementation returns the closed form (3/2) * log(4/3) directly.
Free-Energy Density: Ferroelectric Phase (Lieb 1967c)
Statement
For $\Delta > 1$ the ground state is the unique frozen configuration in which all arrows are parallel along the dominant axis, and
\[f_{\mathrm{FE}}(a, b, c) = -\log \max(a, b).\]
Physical Context
The partition function is dominated by a single configuration: $Z \sim \big(\max(a, b)\big)^N$, so $f = -\log\max(a, b)$. At the KDP point $a > 2$, $b = c = 1$ this reduces to the Lieb 1967c result $f = -\log a$. The phase boundary $\Delta = 1$ is the KDP critical point.
API
m = QAtlas.kdp_model(2.0) # a = 2, b = c = 1, Δ > 1 ⇒ FE
QAtlas.fetch(m, FreeEnergy(), Infinite()) # → -log(2)
QAtlas.fetch(m, ResidualEntropy(), Infinite()) # → 0.0 (frozen)Free-Energy Density: Disordered Phase (Lieb / Sutherland 1967)
Statement
For $|\Delta| \le 1$, parameterise $\Delta = -\cos\mu$ with $0 \le \mu \le \pi$. The free-energy density is the trigonometric integral
\[-f(a, b, c) = \log c + \frac{1}{\pi} \int_0^\infty \frac{\sinh\big((\pi - \mu) x\big)\, \tanh(\mu x)}{x \cosh(\mu x)} \, dx\]
(Lieb 1967a, Sutherland 1967; cf. Baxter 1982 §8.8). The integrand decays exponentially at large $x$ and its small-$x$ Taylor expansion is $\mu (\pi - \mu) x + \mathcal{O}(x^3)$, so the integral is well-conditioned.
Physical Context
Inside the disordered phase the system has algebraic correlations and a continuously varying critical exponent set as a function of $\mu$. The square-ice point is the high-symmetry interior point $\mu = \pi/3$ (so $\Delta = 1/2$), and at that special value the integral evaluates to the closed-form Lieb 1967a result, which we use as a machine-precision cross-check on the numerical quadrature.
API
m = SixVertex(; a=1.0, b=1.0, c=0.5) # Δ = 0.875, disordered
QAtlas.fetch(m, FreeEnergy(), Infinite()) # finite, evaluated by QuadGK to ~1e-12
# Square-ice cross-check
m = QAtlas.square_ice()
QAtlas.fetch(m, FreeEnergy(), Infinite()) # ≈ -(3/2) log(4/3)The implementation evaluates the integral with QuadGK.quadgk on $(0, \infty)$ with rtol = 1e-12, atol = 1e-14, using a small-$x$ Taylor expansion for $|x| < 10^{-8}$ to suppress floating-point cancellation.
Free-Energy Density: Antiferroelectric Phase (Lieb 1967b) — Deferred
For $\Delta < -1$, parameterise $\Delta = -\cosh\lambda$ with $\lambda > 0$. The closed form is the Lieb 1967b elliptic-function expression involving Jacobi theta functions; it is heavier than the disordered branch and is deferred to phase 3 of issue #163. Calls to fetch(::SixVertex, ::FreeEnergy, ::Infinite) in the AFE phase currently raise an informative ArgumentError. The phase boundary at $\Delta = -1$ (e.g. f-model with $c = 2$) is already covered by the disordered-branch limit $\mu \to \pi$.
Convenience constructors
QAtlas.square_ice() # a = b = c = 1 (Δ = 1/2)
QAtlas.f_model(c::Real) # a = b = 1, c free; AFE for c > 2 (Δ = 1 − c²/2)
QAtlas.kdp_model(a::Real) # b = c = 1, a free; FE for a > 2 (Δ = a/2)These are thin wrappers around SixVertex(; a, b, c).
Verification
The standalone test test/standalone/test_six_vertex.jl covers:
- Square ice $S/N = (3/2) \log(4/3) pprox 0.4315231087$ at
atol = 1e-14. - Phase classification on $\Delta = \pm 1$ boundaries (KDP at $a = 2$, F-model at $c = 2$).
- FE plateau $f = -\log \max(a, b)$ at the KDP point ($a = 3$, $b = c = 1$) and at a $b$-dominated point ($a = 1$, $b = 3$, $c = 1$).
- Square-ice FreeEnergy closed form $f = -(3/2) \log(4/3)$.
- AFE deferral and generic-disordered deferral both asserted via
@test_throws ArgumentError.
Run it as
julia --project=test test/standalone/test_six_vertex.jlReferences
- E. H. Lieb, Residual entropy of square ice, Phys. Rev. 162, 162 (1967a). Closed form for the square-ice residual entropy.
- E. H. Lieb, Exact solution of the F model of an antiferroelectric, Phys. Rev. Lett. 18, 1046 (1967b). AFE elliptic free energy.
- E. H. Lieb, Exact solution of the two-dimensional Slater KDP model of a ferroelectric, Phys. Rev. Lett. 19, 108 (1967c). KDP / FE.
- B. Sutherland, Exact solution of a two-dimensional model for hydrogen-bonded crystals, Phys. Rev. Lett. 19, 103 (1967). Disordered-phase trigonometric integral.
- R. J. Baxter, Exactly Solved Models in Statistical Mechanics (Academic Press, 1982), ch. 8 — textbook treatment.
<!– ATLAS:HUBS:START – auto-generated by docs/atlas/generate.jl. Do not edit by hand; edits between these markers are overwritten on next regen. –>
Verified hubs
In the Verified Atlas, this model registers 5 hubs (quantity / BC pair). The badge column shows the R1 assurance level; click a hub link to see the exact verify(...) calls, references, and corroboration mechanism.
| Quantity | BC | Assurance | Cards |
|---|---|---|---|
Energy | Infinite | 🟠 uncorroborated-but-feasible | 0 |
FreeEnergy | Infinite | 🟢 corroborated-at-p | 6 |
Polarization | Infinite | 🔵 coherent | 2 |
ResidualEntropy | Infinite | 🟢 corroborated-at-p | 2 |
UniversalityClass | Infinite | 🟠 uncorroborated-but-feasible | 0 |
<!– ATLAS:HUBS:END –>
<!– ATLAS:DOCS:START – auto-generated by docs/atlas/generate.jl. Do not edit by hand; edits between these markers are overwritten on next regen. –>
API
Every fetch(::Model, …) method registered for this model — together with the model struct(s) and exported helpers — generated directly from the source (in lock-step with @register):
QAtlas.SixVertex — Type
SixVertex(; a::Real = 1.0, b::Real = 1.0, c::Real = 1.0) <: AbstractQAtlasModelClassical six-vertex model on the infinite square lattice in the standard (a, b, c) parameterisation (Lieb 1967, Baxter 1982 ch. 8):
ω₁ = ω₂ = a, ω₃ = ω₄ = b, ω₅ = ω₆ = cwith the ice rule (each vertex has two incoming and two outgoing arrows). The single dimensionless invariant
Δ = (a² + b² − c²) / (2 a b)selects the phase: Δ > 1 ferroelectric (FE, frozen), |Δ| < 1 disordered (Lieb / Sutherland 1967), Δ < −1 antiferroelectric (AFE / F-model, Lieb 1967b).
Convenience constructors for the three classical sub-models (square_ice, f_model, kdp_model) are also provided.
Currently registered fetches:
| Quantity | BC | Coverage |
|---|---|---|
ResidualEntropy | Infinite | All phases (via E - f thermodynamic relation) |
FreeEnergy | Infinite | All phases (FE, AFE, disordered) |
Energy | Infinite | All phases (via finite difference of FreeEnergy) |
Polarization | Infinite | All phases |
UniversalityClass | Infinite | :XY universality class in disordered phase abs(Δ) < 1 |
See also: IsingSquare for the closest classical analog.
QAtlas.fetch — Method
fetch(::SixVertex, ::FreeEnergy, ::Infinite; beta::Real = Inf, kwargs...) -> Float64Free-energy density per vertex of the six-vertex model in the thermodynamic limit, dispatched on the Lieb phase parameter Δ = (a² + b² − c²) / (2 a b).
Ferroelectric (Δ > 1) — frozen ground state, closed form
f = −log max(a, b) (Lieb 1967c)Implemented exactly.
Square-ice point (a = b = c) — Lieb 1967a closed form, f = −(3/2) log(4/3). Implemented exactly.
Generic disordered (|Δ| ≤ 1, off the square-ice diagonal) — Lieb / Sutherland 1967 trigonometric integral. Deferred in this commit (Phase 2 of issue #163); the precise normalisation across the full disordered region needs the careful Baxter §8.8 bookkeeping that we have not yet validated robustly. Calls in this region throw an informative
ArgumentError.Antiferroelectric (Δ < −1) — Lieb 1967b elliptic-function form, deferred in this commit (Phase 3 of issue #163). Calls throw an informative
ArgumentError.
The beta kwarg is accepted for API symmetry with other classical fetches but does not enter the closed forms: the temperature scale is already absorbed into the weights (a, b, c).
References
- E. H. Lieb, Phys. Rev. 162, 162 (1967a) — square ice / disordered.
- E. H. Lieb, Phys. Rev. Lett. 18, 1046 (1967b) — antiferroelectric.
- E. H. Lieb, Phys. Rev. Lett. 19, 108 (1967c) — KDP / ferroelectric.
- B. Sutherland, Phys. Rev. Lett. 19, 103 (1967) — disordered phase trigonometric integral.
- R. J. Baxter, Exactly Solved Models in Statistical Mechanics (Academic Press, 1982), §§8.8–8.10.
QAtlas.fetch — Method
fetch(::SixVertex, ::ResidualEntropy, ::Infinite; kwargs...) -> Float64Zero-temperature configurational entropy per vertex of the six-vertex model on the infinite square lattice.
Square ice (a = b = c, equivalently Δ = 1/2) — Lieb 1967a closed form
S/N = (3/2) log(4/3) ≈ 0.4315231087…Ferroelectric phase (Δ > 1) — frozen ground state, a single ordered configuration up to global symmetry, so S_residual = 0.
Disordered phase off the square-ice point and antiferroelectric phase (Δ < −1) — the residual entropy is not yet implemented by this method and the call throws an informative
ArgumentError. The disordered-phase formula is the Lieb / Sutherland 1967 trigonometric integral evaluated at zero temperature; the AFE branch is the Lieb 1967b elliptic-function form. Both are tracked as follow-up scope.
References
- E. H. Lieb, Phys. Rev. 162, 162 (1967a) — square ice.
- E. H. Lieb, Phys. Rev. Lett. 18, 1046 (1967b) — F-model / AFE.
- B. Sutherland, Phys. Rev. Lett. 19, 103 (1967) — disordered phase trigonometric integral.
- R. J. Baxter, Exactly Solved Models in Statistical Mechanics (Academic Press, 1982), §8.8.
<!– ATLAS:DOCS:END –>