Ising model

We study the Hamiltonian of the transverse-field Ising model with periodic boundary conditions and transverse field g set to 1.

using CondensedMatterSOS
@spin σ[1:2]
ising_hamiltonian(σ, 1, true)

\[ -σᶻ_{2} + -σᶻ_{1} + (2 + 0im)σˣ_{1}σˣ_{2} \]

Let's pick a solver from this list.

using CSDP
solver = optimizer_with_attributes(
    () -> MOIU.CachingOptimizer(MOIU.UniversalFallback(MOIU.Model{Float64}()), CSDP.Optimizer()),
    MOI.Silent() => true
)
MathOptInterface.OptimizerWithAttributes(Main.var"#1#2"(), Pair{MathOptInterface.AbstractOptimizerAttribute, Any}[MathOptInterface.Silent() => true])

We can compute a lower bound -2√2 to the ground state energy as follow:

function hamiltonian_energy(N, maxdegree, solver; kws...)
    @spin σ[1:N]
    H = ising_hamiltonian(σ, 1, true)
    energy(H, maxdegree, solver; kws...)
end
bound, gram, ν = hamiltonian_energy(2, 2, solver, sparsity = NoSparsity())
bound
-2.8284271451374794

We can see that the moment matrix uses all monomials:

ν.basis.monomials
7-element Vector{CondensedMatterSOS.SpinMonomial}:
 1
 σᶻ₂
 σʸ₂
 σˣ₂
 σᶻ₁
 σʸ₁
 σˣ₁

Using term sparsity with block/cluster completion, we get the same bound:

bound, gram, ν = hamiltonian_energy(2, 2, solver)
bound
-2.8284271414935103

But with a smaller basis:

[M.basis.monomials for M in ν.blocks]
2-element Vector{Vector{CondensedMatterSOS.SpinMonomial}}:
 [1, σᶻ₂, σᶻ₁]
 [σʸ₂, σˣ₂, σʸ₁, σˣ₁]

Using term sparsity with chordal completion, we get a smaller bound:

bound, gram, ν = hamiltonian_energy(2, 2, solver, sparsity = MonomialSparsity(ChordalCompletion()))
bound
-4.000000003029696

But with an even smaller basis:

[M.basis.monomials for M in ν.blocks]
5-element Vector{Vector{CondensedMatterSOS.SpinMonomial}}:
 [σʸ₁, σˣ₁]
 [σˣ₂, σˣ₁]
 [σʸ₂, σˣ₂]
 [1, σᶻ₁]
 [1, σᶻ₂]

This page was generated using Literate.jl.