HPhiを使った有限温度計算
Last Update:2021/12/09
-
はじめに
HPhiは量子スピン系や遍歴電子系を取り扱える厳密対角化ソルバーです。基底状態や動的グリーン関数が計算できるだけでなく、熱的純粋量子状態
(Thermal Pure Quantum state, TPQ)の定式化に基づいた有限温度計算も実行することが可能になっています。TPQによる定式化では、有限温度における物理量がエラーバー付きで評価されてしまう一方、統計力学の教科書で出てくるカノニカル平均を用いる計算法よりも大きなシステムサイズを取り扱うことができます。
ここではMateriApps LIVE! を用いて、TPQを用いた蜂の巣格子上のKitaev模型における比熱の温度依存性に関する計算例を紹介します。使用したMateriApps LIVE!のバージョンはver. 2.3です。Kitaev模型とはボンド方向に依存するIsing型の相互作用で構成される量子スピン系となっております。この系ではスピン自由度が二つの自由度に”分裂”する現象がみられることが知られています。この”分裂”は比熱の温度依存性においてダブルピークという形で現れるので、今回の計算例ではこのダブルピークの有無について確認していきたいと思います。
-
実行方法
それでは、実際にHPhiを動かしてみたいと思います。左下にあるSystem toolsからLXTerminalを起動し、HOMEディレクトリ下にサンプルディレクトリをコピーし移動します。
$ mkdir hphi_tpq $ cd hphi_tpq
続いて、実行用のサンプルファイルを用意します。
$ cp -r /usr/share/hphi/samples/TPQ/Kitaev ./ $ cd Kitaev
このディレクトリには、README.mdとインプットファイルであるstan.inが入っています。
README.mdにはチュートリアルの内容が書いてあります。このファイルに書いてある通り、まず
$ HPhi -s stan.in > log
を実行します。今回の計算では標準出力はlogに書き込むようにしています。だいたい1分程度でプログラムが終了すると思います。計算条件やハミルトニアンに関するファイルは実行ディレクトリに、計算結果に関するファイルはoutputディレクトリに入っています。
続いて後処理であるpythonスクリプト AveSSrand.pyを走らせます。このスクリプトはoutputディレクトリ内にあるSS_rand*.datというファイル(*には数字が入っている)にあるエネルギー<H>と<H^2>の温度依存性から比熱を計算するものになっています。これはMateriApps LIVE!上の
$ cp /usr/share/hphi/tool/AveSSrand.py ./
から手に入れることができるのですが、HPhiのバージョンが古いため(MateriApps LIVE! 2.3でのHPhiはver. 3.2.0)、正しく実行することができません。そのため、最新版のAveSSrand.pyを以下のコマンドを実行することによってコピーしてきます。
$ wget https://raw.githubusercontent.com/issp-center-dev/HPhi/c686595208f6137b4b42709330a77bdf2525e0c8/tool/AveSSrand.py
AveSSrand.pyを無事にコピーできたら
$ python AveSSrand.py -n 5
とターミナル上でコマンド実行します。するとave_TPQ.datというファイルが出力されます。ここに比熱の結果が格納されます。
-
実行結果
スクリプトを実行するとlogに結果が出力されます。コマンドライン上で
$ gnuplot
とうちgnuplotを起動させます。その後
gnuplot> set xlabel "Temperature" gnuplot> set ylabel "Specific heat" gnuplot> set log x gnuplot> p "ave_TPQ.dat" u 1:5:2:6 w xyerrorlines
とすると、以下ように比熱の温度依存性の図がエラーバー付きでプロットされます。図を見ていただければわかるように、比熱にはっきりとダブルピークの構造が見られます。
- 終わりに
ここではHPhiを用いたTPQ計算の例を紹介しました。CGや完全対角化を用いた計算方法については、HPhiの他のレビュー記事や公式サイトを参考にしてください。