ALPSを使ったDMRGの計算例
Last Update:2021/12/09
-
はじめに
ALPSは密度行列くりこみ群(DMRG)や厳密対角化(ED)、量子モンテカルロ(QMC)などの強相関系のための数値計算手法が実装されているライブラリ集です。チュートリアルが充実しているため、これらの手法に関わってこなかった方でも比較的簡単に実行できるようになっています。
ここではMateriApps LIVE! (MAL)を用いて、DMRGの正方格子上のSpin1/2 Heisenberg模型への適用を紹介します。MALとは様々な物性科学アプリがおさめられているLive Linux システムのことです。MALを使うことによってインストール作業を行わなくてもALPSを試してみることができます。詳細な使用法についてはMALのWikiが参考になります。使用したMALのバージョンはver. 2.0です。
-
実行方法
それでは、実際にALPSを動かしてみたいと思います。System toolsからLXTerminalを起動し、HOMEディレクトリ下にサンプルディレクトリをコピーし移動します。
mkdir alps_dmrg cd alps_dmrg
続いて、実行用のPythonスクリプトを用意します。wgetを使ってスクリプトheisenberg2D_dmrg.pyをダウンロードして、テストディレクトリalps_dmrgに持ってきてください。このスクリプトはチュートリアルサイトにあるtutorial8a.pyをもとに作っています。そのため、スクリプトの説明はチュートリアルサイトを参考にしてください。
wget https://ma.issp.u-tokyo.ac.jp/wp-content/uploads/sites/3/2019/07/heisenberg2D_dmrg.py
最後に下記のコマンドを打つと、先ほどダウンロードしたスクリプトを用いた計算が実行されます。
python heisenberg2D_dmrg.py > log
だいたい数分程度でプログラムが終了すると思います。
-
実行結果
スクリプトを実行するとlogに結果が出力されます。コマンドライン上で
tail log
と打つと
===================================================
Finished with everything.
dmrg parm_spin_one_half_heisenbergSquare.in.xml –write-xml
MAXSTATES: 50.0 Energy : -11.1759358521
MAXSTATES: 50.0 Truncation error : 0.0012853192745
MAXSTATES: 100.0 Energy : -11.2199404374
MAXSTATES: 100.0 Truncation error : 0.000698022447203
MAXSTATES: 150.0 Energy : -11.2284831995
MAXSTATES: 150.0 Truncation error : 0.000323024915189
MAXSTATES: 200.0 Energy : -11.2284832024
MAXSTATES: 200.0 Truncation error : 9.02230444447e-05
===================================================
と出力されます。ALPSのEDを用いたエネルギー結果は-11.2284832084です。掃引時に残しておく状態数の最大値である”MAXSTATES”が大きくなると、”Truncation error”が小さくなっていき、DMRGのエネルギーがEDの結果に近づいて行っていることがわかります。
-
終わりに
ここではALPSを用いたDMRG計算の例を紹介しました。QMCやEDを用いた計算方法や他のDMRGの計算例については、ALPSのレビュー記事やチュートリアルサイトを参考にしてください。
#修正履歴
19/7/11: uploadするファイルが間違っていたので、正しいものをアップロードし出力結果を修正。