DSQSSを使った二次元反強磁性spin-1/2 Heisenberg模型の計算
Last Update:2023/05/11
spin-1/2 Heisenberg模型は二次元量子系は基礎的な模型の一つですが、厳密な基底状態は未だに知られていません。数値計算で得られる熱力学極限での最良な基底エネルギーの結果は量子モンテカルロ法による[1]、\(E = -0.669437\)となっています(2023年1月現在)。ここでは、この結果をDSQSSを使って確かめていきます。DSQSSはワーム更新法による量子モンテカルロ法で、厳密対角化より非常に大きいシステムサイズでスピン系やボゾン系を計算することができます。
DSQSSはインストール済みだとして、DSQSSを実行するには以下を読み込みます。
source share/dsqss/dsqssvar-VERSION.sh
今回は、正方格子のスピン系なのでDSQSSのスタンダードモードで対応することができます。お好みのエディタで次のファイルを用意します。
(std.toml) [hamiltonian] model = "spin" M = 1 # S=1/2 Jz = -1.0 # coupling constant, negative for AF Jxy = -1.0 # coupling constant, negative for AF h = 0.0 # magnetic field [lattice] lattice = "hypercubic" dim = 2 L = [16,16] bc = [true, true] #Periodic boundary condtion basis = [[1,0], [0,1]] [parameter] beta = 128 # inverse temperature: beta = 8*L nset = 5 # set of Monte Carlo sweeps npre = 10 # MCSteps to estimate hyperparameter ntherm = 10 # MCSweeps for thermalization nmcs = 100 # MCSweeps for measurement seed = 31415 # seed of RNG wvfile = "wv.xml"
用意でき次第、以下のコマンドで入力ファイルが生成されます。
dla_pre std.toml
続いて、以下のコマンドで計算が始まります。
mpiexec -np プロセスの数 dla param.in
結果はsample.logに出力されます。プロセスの数はユーザー側で指定することができ、多ければ多いほど統計誤差が減衰していきます。L=16の場合、計算が終了するまでに20~30分程度時間がかかります。
例えば、次のコマンドでエネルギーとstaggered 構造因子を確認すると、
grep ene sample.log
R ene = -6.69961266e-01 9.77177064e-05
$ grep smzs3 sample.log
R smzs3 = 1.13734344e+01 1.88324276e-01
参考文献[1] L=16の結果によると、\(E= -0.669976(7)\), \(S(\pi,\pi)= 11.352(2)\)とある程度一致していることが確認できます。
参考文献[1]
“Finite-size caling of the ground-state parameters of the two-dimensional Heisenberg model”, Anders W. Sandvik
Phys. Rev. B 56, 11678 1997