/PottsGauge

Invariant Potts gauge for pairwise models

Primary LanguageJuliaOtherNOASSERTION

PottsGauge

Documentation Build Status Coverage
Build Status Build status codecov

Gauge transforms over the pair of Hamiltonian Potts parameters (J,h). Assuming we have a vector x of length N, and x[i] ∈ 1:q (q state Potts variable), a gauge transform is a change (J,h)→(J',h') such that for all Potts configurations x E(x,J,h)-E(x,J',h')=const.

The module defines the gauge-transforms gauge of pair J,h. J,h are arrays of size q×q×N×N, q×N respectively. J should be symmetric: J[a,b,i,j] == J[b,a,j,i]; if this is not the case it throws an error. Allowed gauge are: ZeroSumGauge,LatticeGas,WildType,ExternalGauge.

    Usage:

        gauge(J,h,ZeroSumGauge())
        gauge(J,h,ZeroFieldGauge())
        gauge(J,h,Wildtype(x0))
        gauge(J,h,ExternalGauge(U,V,C))

    where:

        * For `WildType` `x0` is a `Vector{Int}` of size `N` whose values are in the interval `1,…,q`

        * For `ExternalGauge`, `U`,`V` are `q×N×N` arrays, and C is vector of length `N`.