見出し画像

JuliaでS=1/2 反強磁性Heisenberg鎖厳密対角化

Qiitaに同内容を載せています。

先だってJuliaでS=1反強磁性Heisenberg鎖のHaldane gapを厳密対角化により計算しています。

S=1/2はHaldane gapの計算から一瞬で書き換えられるので、一瞬で書き換えました。すべてはJupyter notebookに載せてあります。

ダウンロードが嫌な人に向けてコードくらいは置いておきます。

using LinearAlgebra
using Plots
using Arpack

const ⊗ = kron

L = 8
@time eigenvalues = eigs(hamiltonian(L), nev=2^L, which=:SR)[1]
@show eigenvalues

# energy spectrum
plt = plot(yshowaxis=false)
xlabel!("energy")
title!("Spin-1/2 AF Heisenberg chain energy spectrum")

for j in 1:2^L-5
    plot!(fill(abs(eigenvalues[j]), 2), [0, 0.5], label="", lc=:black)
end

display(plt)
savefig("spin-halfHeisenberg-spectrum.pdf")
savefig("spin-halfHeisenberg-spectrum.png")

いいなと思ったら応援しよう!